逻辑斯谛回归

本文以Kaggle泰坦尼克号问题中的一个Kernel 以及李航博士的《统计学习方法》为基础来对逻辑斯谛回归进行描述

本文绝大大部分算法皆来自李航博士的《统计学习方法》第六章逻辑斯蒂回归模型与最大熵模型,只再次基础上增加了一点东西

Kaggle入门中一个经典的例子便是–泰坦尼克号问题,很多时候选择的第一个模型便是逻辑斯谛回归模型

二项逻辑斯谛回归模型

对于Kaggle中的泰坦尼克号问题,要预测的是乘客的生存问题,只有生存或者死亡两种结果,因此可以采用二项逻辑斯谛回归模型

P ( Y = 1 | x ) = exp ( w x + b ) 1 + e x p ( w x + b )

P ( Y = 0 | x ) = 1 1 + e x p ( w x + b )

对于这两个公式而言:
x R n

是输入,可以看一下输入的数据是什么样的
这里写图片描述
相对于输入,输出为
y { 0 , 1 }

即对于一个输入实例x可以通过二项逻辑斯谛回归模型的条件概率分布来计算x的生存或者死亡概率,取概率比较大的来作为预测值
可以观察一下二项逻辑斯谛回归模型,输入为x已知,未知量有 ω 以及 b
为了简化起见,可以舍去未知量b,这时候 二项逻辑斯谛回归模型
P ( Y = 1 | x ) = exp ( w x ) 1 + e x p ( w x )

P ( Y = 0 | x ) = 1 1 + e x p ( w x )

这时候只有一个未知量 ω ,要做的事情很简单就是找到一个参数 ω 使得它对所有的输入x都能有一个合理的预测

实质上在整个学习过程中要做的事情很简单,就是找到一个合理的参数w使得对于给定的输入x有一个合理的预测y,判断是否合理,可以采用训练数据集里面的数据来进行判断

模型参数估计

对于给定的训练数据集

T = { ( x 1 , y 1 ) , ( x 2 , y 2 ) }

注意
x i R n

可以应用极大似然估计法估计模型参数
设:
P ( Y = 1 | x ) = π ( x )

P ( Y = 0 | x ) = 1 π ( x )

似然函数为
i = 1 N [ π ( x i ) ] y i [ 1 π ( x i ) ] 1 y i

对数似然函数为
L ( w ) = i = 1 N [ y i l o g π ( x i ) ( 1 y i ) l o g ( 1 π ( x i ) ) ]

= i = 1 N [ y i log π ( x i ) 1 π ( x i ) + l o g ( 1 π ( x i ) ) ]

= i = 1 N [ y i ( w x i ) l o g ( 1 + e x p ( w x i ) ]

对L(w)求极大值,就可以得到w的估计值
问题就变成了以对数似然函数为目标函数的最优化问题,可以采用梯度下降法

极大似然估计的定义

1.设总体x的概率分布为

f ( x , θ 1 , θ 2 θ k )

其中
θ 1 , θ 2 , θ k

为参数
2.设X1,X2,…Xn为一组样本,它们的联合概率密度为
L ( x 1 , x 2 , x n ; θ 1 , θ 2 θ k ) = i = 1 h f ( x i , θ 1 , θ 2 θ k )

3.设x1,x2,…xn是样本X1,X2,…Xn的一组观测值,使出现x1,x2,…xn最大可能的一组实数
θ 1 , θ 2 θ k

引出了参数估计的一种方法

注:

L ( x 1 , x 2 , x n ; θ 1 , θ 2 θ k )

实际上是概率的乘积,以二项逻辑斯谛回归模型为例
假设
w = θ 1 , θ 2 , θ k

f ( x ) = { π ( x ) 1 π ( x )

P ( Y = 1 | x ) = π ( x )

P ( Y = 0 | x ) = 1 π ( x )


L ( x 1 , x 2 , x n ; θ 1 , θ 2 θ k ) = i = 1 h f ( x i , θ 1 , θ 2 θ k )

就可以转换为
i = 1 N [ π ( x i ) ] y i [ 1 π ( x i ) ] 1 y i

可以观察到此式实质上为概率的乘积
可以取两个值带入,假设yi为0

[ π ( x i ) ] y i = 1

假设yi为1

[ 1 π ( x i ) ] 1 y i = 1

进一步转换为

i = 1 N [ y i ( w x i ) l o g ( 1 + e x p ( w x i ) ]

即要求出一个
w = θ 1 , θ 2 θ k

使得
i = 1 N [ π ( x i ) ] y i [ 1 π ( x i ) ] 1 y i

最大,即对于所有的x对应的概率乘积最大,类似于通解的一种情况

梯度下降算法

假设f(x)是 R n 上具有一阶连续偏导数的函数,要求解的无约束最优化问题是

min x R n f ( x )

x 表示目标函数f(x)的极小点
对于极大似然函数,要求的是极大值,可以增加一个负号,这样就等价于求极小值
min x R n L ( ω )

梯度下降法是一种迭代算法,取适当的初值 x ( 0 ) ,不断迭代,更新 x 的值,进行目标函数的极小化,直至收敛

梯度下降法

输入:目标函数 f ( x ) ,梯度函数 g ( x ) = f ( x ) ,计算精度 ε
输出: f ( x ) 的极小点 x
1.取初始值 x ( 0 ) R n ,置 k = 0
2.计算 f ( x ( k ) )
3.计算梯度 g k = g ( x ( k ) ) ,当 g k < ε 时,停止迭代,令 X = X ( k ) ;否则,令 p k = g ( x ( k ) ) ,求 λ k ,使

f ( x ( k ) + λ k p k ) = min λ 0 f ( x ( k ) + λ p k )

4.置 x ( k + 1 ) = x ( k ) + λ k p k ,计算 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 ) = 1 1 + exp ( w ^ x )

这样对于测试的实例x就可以求得其生存或者死亡概率

参考资料

[1] 李航. 逻辑斯谛回归与最大熵模型. 统计学习方法. 2012
[2] Kaggle Kernels
[3] 概率论与数理统计(第四版)

猜你喜欢

转载自blog.csdn.net/eye_water/article/details/80212100