本文以Kaggle泰坦尼克号问题中的一个Kernel 以及李航博士的《统计学习方法》为基础来对逻辑斯谛回归进行描述
本文绝大大部分算法皆来自李航博士的《统计学习方法》第六章逻辑斯蒂回归模型与最大熵模型,只再此基础上增加了一点个人理解
Kaggle入门中一个经典的例子便是–泰坦尼克号问题,很多时候选择的第一个模型便是逻辑斯谛回归模型
二项逻辑斯谛回归模型
对于Kaggle中的泰坦尼克号问题,要预测的是乘客的生存问题,只有生存或者死亡两种结果,因此可以采用二项逻辑斯谛回归模型。
P(Y=1|x)=exp(w∗x+b)1+exp(w∗x+b)
P(Y=0|x)=11+exp(w∗x+b)
对于这两个公式而言:
x∈Rn
是输入,可以看一下输入的数据是什么样的
相对于输入,输出为
y∈{0,1}
即对于一个输入实例x可以通过二项逻辑斯谛回归模型的条件概率分布来计算x的生存或者死亡概率,取概率比较大的来作为预测值
可以观察一下二项逻辑斯谛回归模型,输入为x已知,未知量有
ω
以及
b
为了简化起见,可以舍去未知量b,这时候
二项逻辑斯谛回归模型为
P(Y=1|x)=exp(w∗x)1+exp(w∗x)
P(Y=0|x)=11+exp(w∗x)
这时候只有一个未知量
ω
,要做的事情很简单就是找到一个参数
ω
使得它对所有的输入x都能有一个合理的预测
实质上在整个学习过程中要做的事情很简单,就是找到一个合理的参数w使得对于给定的输入x有一个合理的预测y,判断是否合理,可以采用训练数据集里面的数据来进行判断
模型参数估计
对于给定的训练数据集
T={(x1,y1),(x2,y2)…}
注意
xi∈Rn
可以应用极大似然估计法估计模型参数
设:
P(Y=1|x)=π(x)
P(Y=0|x)=1−π(x)
似然函数为
∏i=1N[π(xi)]yi[1−π(xi)]1−yi
对数似然函数为
L(w)=∑i=1N[yilogπ(xi)−(1−yi)log(1−π(xi))]
=∑i=1N[yilogπ(xi)1−π(xi)+log(1−π(xi))]
=∑i=1N[yi(w∗xi)−log(1+exp(w∗xi)]
对L(w)求极大值,就可以得到w的估计值
问题就变成了以对数似然函数为目标函数的最优化问题,可以采用梯度下降法
极大似然估计
1.设总体x的概率分布为
f(x,θ1,θ2…θk)
其中
θ1,θ2,…θk
为参数
2.设X1,X2,…Xn为一组样本,它们的联合概率密度为
L(x1,x2,…xn;θ1,θ2…θk)=∏i=1hf(xi,θ1,θ2…θk)
3.设x1,x2,…xn是样本X1,X2,…Xn的一组观测值,使出现x1,x2,…xn最大可能的一组实数
θ∗1,θ∗2…θ∗k
引出了参数估计的一种方法
注:
L(x1,x2,…xn;θ1,θ2…θk)
实际上是概率的乘积,以二项逻辑斯谛回归模型为例
假设
w=θ1,θ2,…θk
f(x)={π(x)1−π(x)
P(Y=1|x)=π(x)
P(Y=0|x)=1−π(x)
则
L(x1,x2,…xn;θ1,θ2…θk)=∏i=1hf(xi,θ1,θ2…θk)
就可以转换为
∏i=1N[π(xi)]yi[1−π(xi)]1−yi
可以观察到此式实质上为概率的乘积
可以取两个值带入,假设yi为0
则
[π(xi)]yi=1
假设yi为1
则
[1−π(xi)]1−yi=1
进一步转换为
∑i=1N[yi(w∗xi)−log(1+exp(w∗xi)]
即要求出一个
w=θ∗1,θ∗2…θ∗k
使得
∏i=1N[π(xi)]yi[1−π(xi)]1−yi
最大,即对于所有的x对应的概率乘积最大,类似于通解的一种情况
梯度下降算法
假设f(x)是
Rn
上具有一阶连续偏导数的函数,要求解的无约束最优化问题是
minx∈Rnf(x)
x∗
表示目标函数f(x)的极小点
对于极大似然函数,要求的是极大值,可以增加一个负号,这样就等价于求极小值
minx∈Rn−L(ω)
梯度下降法是一种迭代算法,取适当的初值
x(0)
,不断迭代,更新
x
的值,进行目标函数的极小化,直至收敛
梯度下降法
输入:目标函数
f(x)
,梯度函数
g(x)=∇f(x)
,计算精度
ε
输出:
f(x)
的极小点
x∗
1.取初始值
x(0)∈Rn
,置
k=0
2.计算
f(x(k))
3.计算梯度
gk=g(x(k))
,当
∥gk∥<ε
时,停止迭代,令
X∗=X(k)
;否则,令
pk=−g(x(k))
,求
λk
,使
f(x(k)+λkpk)=minλ≥0f(x(k)+λpk)
4.置
x(k+1)=x(k)+λkpk
,计算
f(x(k+1))
当
∥∥f(x(k+1))−f(x(k))∥∥<ε
或
∥∥x(k+1)−x(k)∥∥<ε
时,停止迭代,令
x∗=x(k+1)
5.否则,置
k=k+1
转3
这样,经过梯度下降法就可以求得
wˆ
,那么学习到的逻辑斯谛回归模型为
P(Y=1|x)=exp(wˆx)1+exp(wˆx)
P(Y=1|x)=11+exp(wˆx)
这样对于测试的实例x就可以求得其生存或者死亡概率
参考资料
[1] 李航. 逻辑斯谛回归与最大熵模型. 统计学习方法. 2012
[2] Kaggle Kernels
[3] 概率论与数理统计(第四版)