Logistic回归
Posted stream886
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Logistic回归相关的知识,希望对你有一定的参考价值。
目录
参考资料
- 台湾大学《机器学习技法》视频
- 李航《统计学习方法》
- 深入浅出ML之Regression家族
- Logistic Regression Theory
什么是Logistic回归
回顾一下,一般化的广义线性回归形式是:
[
g(Y)=Xw^T 或者?Y=g^{?1}(Xw^T)
]
这个函数(g(.))我们通常称为联系函数。
现在我们使用sigmoid函数作为联系函数(g(.)) 推导出一个最常用的广义线性回归——Logistic回归
sigmoid函数:
[ { m{g}}(z) = {1 over {1 + {e^{ - z}}}} ]
它是一个可导函数,定义域为((?∞,+∞)),值域为([0, 1]),其导数为:
[ g′(z)=g(z)(1?g(z)) ]
线性回归基本模型(区别就在(w_0)和b)
[ h_{w}(x)=sum_{i=0}^{m}w_{i}x_{i}=w^{T}x=w_0+w_1x_1+?+w_nx_n h_{w}(x)=sum_{i=1}^{m}w_{i}x_{i}+b=w^{T}x+b=w_1x_1+w_2x_2+?+w_nx_n+b ]
Logistic回归模型:
[ {h_w}(x) = g(w^Tx)={1 over {1 + {e^{ - {w^T}x}}}} ]
其中x为样本输入,(h_w(x))为模型输出,可以理解为某一分类的概率大小。而(w)为分类模型的要求出的模型参数。对于模型输出(h_w(x)),我们让它和我们的二元样本输出(y)(假设为0和1)有这样的对应关系:
- 如果(h_w(x)>0.5),即(w^Tx>0), 则(y)为1
- 如果(h_w(x)<0.5),即(w^Tx<0), 则(y)为0
- (h_w(x)=0.5)是临界情况,此时(w^Tx=0), 从逻辑回归模型本身无法确定分类
为什么叫对数几率函数
假设我们的样本输出是0或者1两类。那么我们有:
[ P(y=1|x,w)=h_w(x)P(y=0|x,w)=1?h_w(x) ]
我们利用Logistic回归模型({h_w}(x) = {1 over {1 + {e^{ - {w^T}x}}}})求出的既是样本为正类的概率 !
什么是几率(odds)?
一个事件的几率是指该事件发生的概率与该事件不发生的概率的比值。
很显然Logistic回归可以轻易的转化出对数几率(又变回线性回归模型的值)
[
lnfrac{P(y=1|x)}{P(y=0|x)}=frac{h_w(x)}{1-h_w(x)}=w^Tx
]
损失函数/优化目标
首先,讲(P(y=1|x,w))和(P(y=0|x,w))合并:
[ P(y|x)=h_w(x)^y(1?h_w(x))^{1?y} ]
根据上面的式子,给定一定的样本之后,我们可以构造出似然函数,然后可以使用极大似然估计MLE的思想来求解参数。但是,为了满足最小化风险理论,我们可以将MLE的思想转化为最小化风险化理论,最大化似然函数其实就等价于最小化负的似然函数。
对于MLE,就是利用已知的样本分布,找到最有可能(即最大概率)导致这种分布的参数值;或者说是什么样的参数才能使我们观测到目前这组数据的概率最大。使用MLE推导LR的loss function的过程如下
首先,根据上面的假设,写出相应的极大似然函数(假定有m个样本):
[
L(w)=prod_{i=1}^{m}P(y^{(i)}|x^{(i)};w) =prod_{i=1}^{m}h_w(x^{(i)})^{y^{(i)}}(1-h_w(x^{(i)}))^{1-y^{(i)}}
]
直接对上面的式子求导会不方便,因此,为了便于计算,我们可以对似然函数取对数,经过化简可以得到下式的推导结果:
[
log L(w) =sum_{i=1}^{m}logleft [ h_wleft(x^{(i)}
ight)^{y^{(i)}}left(1-h_w(x^{(i)})
ight)^{1-y^{(i)}}
ight ] =sum_{i=1}^{m}left [{y^{(i)}} log{h_w(x^{(i)})}+{(1-y^{(i)})}logleft(1-h_w(x^{(i)})
ight)
ight ]
]
因此,损失函数可以通过最小化负的似然函数得到,即下式:
[
J(w)=-frac{1}{m}sum_{i=1}^{m}left [{y^{(i)}} log{h_w(x^{(i)})}+{(1-y^{(i)})}logleft(1-h_w(x^{(i)})
ight)
ight ]
]
最大似然法就是先建立似然函数(样本发生概率的连乘式),然后求这样函数的最大值(极值),对各个估计参数进行求偏导。这里有个小技巧对于有些似然函数很难求其最值,
观察到这个似然函数的结构,其实连乘式,故可以使用个log函数进行映射,变成连加式,而又不影响其极值点!
优化算法
梯度下降
梯度下降法又叫做最速下降法,为了求解使损失函数(J(w))最小时的参数(w),这里就以梯度下降为例进行求解,其迭代公式的推导过程如下:
[
frac{partial }{partial w_j}J(w)=-frac{1}{m}sum_{i=1}^{m}left [{y^{(i)}} left(1-h_w(x^{(i)})
ight)cdot (x^{(i)}_j)+{(1-y^{(i)})}h_w(x^{(i)})cdot (-x^{(i)}_j)
ight] =-frac{1}{m}sum_{i=1}^{m}({y^{(i)}} - h_w(x^{(i)})cdot (x^{(i)}_j) =frac{1}{m}sum_{i=1}^{m}(h_w(x^{(i)})-{y^{(i)}})cdot (x^{(i)}_j)
]
通过上面结果,可以得到最后的迭代式子(其中(α)是步长):
[
{w_j} = {w_j} - alpha cdot frac{1}{m}sum_{i=1}^{m}(h_w(x^{(i)})-{y^{(i)}})cdot (x^{(i)}_j)
]
该式子与线性回归模型的平方损失函数求导后非常相似,当两者是不同的,因为({h_w}({x^{(i)})}) 是完全不同的。
最优化算法并不限于梯度下降,还有:
- Newton Method(牛顿法)
- Conjugate gradient method(共轭梯度法)
- Quasi-Newton Method(拟牛顿法)
- BFGS Method
- L-BFGS(Limited-memory BFGS)
参考:http://www.52caml.com/head_first_ml/ml-chapter1-regression-family/
正则化
线性回归可以通过加正则项避免过拟合,Logistic回归属于广义线性回归,同样可以加上相同的正则项,加入正则项相当于对参数加入了一个先验分布,常用的有L1和L2正则。
正则化项本质上是一种先验信息,整个最优化问题从贝叶斯观点来看是一种贝叶斯最大后验估计,其中正则化项对应后验估计中的先验信息,损失函数对应后验估计中的似然函数,两者的乘积即对应贝叶斯最大后验估计的形式,如果将这个贝叶斯最大后验估计的形式取对数,即进行极大似然估计,你就会发现问题立马变成了损失函数+正则化项的最优化问题形式。
以上是关于Logistic回归的主要内容,如果未能解决你的问题,请参考以下文章