本文以Kaggle泰坦尼克号问题中的一个Kernel 以及李航博士的《统计学习方法》为基础来对逻辑斯谛回归进行描述
本文绝大大部分算法皆来自李航博士的《统计学习方法》第六章逻辑斯蒂回归模型与最大熵模型,只再此基础上增加了一点个人理解
Kaggle入门中一个经典的例子便是–泰坦尼克号问题,很多时候选择的第一个模型便是逻辑斯谛回归模型
二项逻辑斯谛回归模型
对于Kaggle中的泰坦尼克号问题,要预测的是乘客的生存问题,只有生存或者死亡两种结果,因此可以采用二项逻辑斯谛回归模型。
对于这两个公式而言:
是输入,可以看一下输入的数据是什么样的

相对于输入,输出为
即对于一个输入实例x可以通过二项逻辑斯谛回归模型的条件概率分布来计算x的生存或者死亡概率,取概率比较大的来作为预测值
可以观察一下二项逻辑斯谛回归模型,输入为x已知,未知量有 ω ω 以及 b b
为了简化起见,可以舍去未知量b,这时候 二项逻辑斯谛回归模型为
这时候只有一个未知量 ω ω ,要做的事情很简单就是找到一个参数 ω ω 使得它对所有的输入x都能有一个合理的预测
实质上在整个学习过程中要做的事情很简单,就是找到一个合理的参数w使得对于给定的输入x有一个合理的预测y,判断是否合理,可以采用训练数据集里面的数据来进行判断
模型参数估计
对于给定的训练数据集
注意
可以应用极大似然估计法估计模型参数
设:
似然函数为
对数似然函数为
对L(w)求极大值,就可以得到w的估计值
问题就变成了以对数似然函数为目标函数的最优化问题,可以采用梯度下降法
极大似然估计
1.设总体x的概率分布为
其中
为参数
2.设X1,X2,…Xn为一组样本,它们的联合概率密度为
3.设x1,x2,…xn是样本X1,X2,…Xn的一组观测值,使出现x1,x2,…xn最大可能的一组实数
引出了参数估计的一种方法
注:
实际上是概率的乘积,以二项逻辑斯谛回归模型为例
假设
则
就可以转换为
可以观察到此式实质上为概率的乘积
可以取两个值带入,假设yi为0
则
假设yi为1
则
进一步转换为
即要求出一个
使得
最大,即对于所有的x对应的概率乘积最大,类似于通解的一种情况
梯度下降算法
假设f(x)是
Rn
R
n
上具有一阶连续偏导数的函数,要求解的无约束最优化问题是
x∗ x ∗ 表示目标函数f(x)的极小点
对于极大似然函数,要求的是极大值,可以增加一个负号,这样就等价于求极小值
梯度下降法是一种迭代算法,取适当的初值 x(0) x ( 0 ) ,不断迭代,更新 x x 的值,进行目标函数的极小化,直至收敛
梯度下降法
输入:目标函数
f(x)
f
(
x
)
,梯度函数
g(x)=∇f(x)
g
(
x
)
=
∇
f
(
x
)
,计算精度
ε
ε
输出:
f(x)
f
(
x
)
的极小点
x∗
x
∗
1.取初始值
x(0)∈Rn
x
(
0
)
∈
R
n
,置
k=0
k
=
0
2.计算
f(x(k))
f
(
x
(
k
)
)
3.计算梯度
gk=g(x(k))
g
k
=
g
(
x
(
k
)
)
,当
∥gk∥<ε
‖
g
k
‖
<
ε
时,停止迭代,令
X∗=X(k)
X
∗
=
X
(
k
)
;否则,令
pk=−g(x(k))
p
k
=
−
g
(
x
(
k
)
)
,求
λk
λ
k
,使
4.置 x(k+1)=x(k)+λkpk x ( k + 1 ) = x ( k ) + λ k p k ,计算 f(x(k+1)) f ( x ( k + 1 ) )
当 ∥∥f(x(k+1))−f(x(k))∥∥<ε ‖ f ( x ( k + 1 ) ) − f ( x ( k ) ) ‖ < ε 或 ∥∥x(k+1)−x(k)∥∥<ε ‖ x ( k + 1 ) − x ( k ) ‖ < ε 时,停止迭代,令 x∗=x(k+1) x ∗ = x ( k + 1 )
5.否则,置 k=k+1 k = k + 1 转3
这样,经过梯度下降法就可以求得
wˆ
w
^
,那么学习到的逻辑斯谛回归模型为
这样对于测试的实例x就可以求得其生存或者死亡概率
参考资料
[1] 李航. 逻辑斯谛回归与最大熵模型. 统计学习方法. 2012
[2] Kaggle Kernels
[3] 概率论与数理统计(第四版)