MachineLearning:三、聊聊逻辑回归

来源:互联网 发布:域名被通信局撤销 编辑:程序博客网 时间:2024/06/14 05:22

在Machine Learning中,逻辑斯蒂回归(Logistic Regression)是十分经典的方法,简称LR,虽然名字叫回归,但是这是线性分类模型而不是回归模型。这里面涉及到一些知识点,包括极大似然估计,损失函数,梯度下降,正则化等
这篇文章的主要目的,就是通过理论与实践相结合的方式讲解LR模型,在讲解的过程中,加深对LR的理解、相关概念的梳理和应用。这篇文章中需要一些基础的数学知识,如果我没有讲到的请自行百度。这篇文章以《统计学习方法》和AndrewNg的视频为基础,加上《PR&MR》以及网上的资料、论文整理而成。本人能力有限,细节处理上难免有不严谨的地方或者叙述不清的地方,请留言或者发邮件wang_qian010@163.com

逻辑斯蒂(logistic)函数

逻辑斯蒂函数

在数学界有各种各样的分布,比如Gamma分布,二项分布,高斯分布等。利用这些分布的性质,可以解决很多的问题。这里将介绍一种函数,叫逻辑斯蒂函数或逻辑斯蒂曲线,这是一种是一种S型曲线。

定义X是连续随机变量,X服从逻辑斯蒂分布是指X具有下列分布函数和密度函数

F(x)=P(Xx)=11+e(xu/γ)

f(x)=F(x)=e(xu)/γγ(1+e(xu)/γ)2

式中,μ为位置参数,γ为形状参数。看到这是不是想到,高斯、二项等其他分布。均值控制位置,方差控制形状。
逻辑斯蒂分布的密度函数f(x)F(x)$的图形如下图

看了逻辑斯蒂分布,我有两个疑问:

  1. 这个分布是怎么发现?
  2. 在机器学习中什么用?

上网查了一下,并没有找到这个分布是怎么发现的。最早的记录是1833年,菲尔许尔斯特使用逻辑斯蒂曲线描述了人口增长速度与人口密度的关系,把数学方法引入生态学。我大一的时候参加一个数学建模入门赛的时候,就是拟合了逻辑斯特函数,模型太简单,所以就很傻很天真的看着别人载比赛喽。
到了十九世纪末,法国的社会学家塔尔德观察到,一种新思想(就比如和谐社会)的采纳率随着时间的变化遵循一种S型曲线,也有人说塔尔德实际是提出了经济增长的S型曲线。
随后的一段时间,S曲线在各个行业都大杀四方,从物种迁移数量增长到工程进展,从城市化进程到经济学的前景理论等等。
随后可能有一位天才,正在研究分类问题,猛然看到了S曲线,突然想到,咦,这个曲线(如上右图)左边随着x的变小F(x)趋近于0,右边随着想的增大F(x)趋近与一个定值,不是正好可以用来做做二分类嘛。(仅供娱乐,如有雷同纯属巧合)

二项逻辑斯蒂回归模型

现在我们仅仅考虑二分类问题。就拿AndrewNG的讲义里面的例子,如下图所示,x表示数据点的特征——肿瘤的大小,Y为观测值——是否是恶性肿瘤。通过构建线性回归模型,如h θ (x)所示,构建线性回归模型后,即可以根据肿瘤大小,预测是否为恶性肿瘤h θ (x)≥.05为恶性,h θ (x)<0.5为良性。

如果上述问题使用线性分类器,效果并不好(如上图),分类效果可以用差来形容。然后你再看着这个图,是不是感觉观测值类似第一幅图?
在解决上诉问题之前,接下来我们先看看逻辑回归模型:
将逻辑回归模型定义为:

logπ(X)1π(X)=w1x1++wnxp+b

=Xtβ

这里
W=(w1,w2,,wn,b)

X=(x1,x2,,xn,1)

P(Y=1|X)=π(X$π(X)

逻辑回归可以这么理解,考虑对输入X进行分类的线性函数WX,其至于为实数域,通过逻辑斯蒂函数,可以将线性函数WX转换为概率。
换一个角度,逻辑斯蒂回归模型的特点就是已经事情的发生概率是指该只见发生的概率与该事件不发生的概率的比值。一个事件的几率是p,那么该事件发生的几率是p1p,该事件可以理解为该事件的对数几率或logit函数是

logit(p)=log(p1p)

经过简单推导,就可以得到标准的逻辑回归模型。
定义(逻辑斯蒂回归模型) 二项逻辑斯蒂回归模型是如下的条件概率分布:

P(Y=1|X)=exp(WX)1+exp(WX)

P(Y=0|X)=11+exp(WX)

逻辑斯特回归模型也可以说是建立在条件概率密度p(x|Ck)和先验概率P(Ck)的基础上,使用贝叶斯理论计算后验概率密度$P(C_k|x)的模型。利用贝叶斯后验概率求解该问题,则

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

=11+eln(P(x|Y=0)P(Y=0))P(x|Y=1)P(Y=1)

到这里是不是感觉后验概率P(Y=1|x)与逻辑斯蒂函数很像?其实从(1)式可以推导到逻辑斯蒂函数的,《PR&ML》这本书中借助高斯分布有一点介绍,这里就不说了。

模型参数估计

对于上面患病问题,对给定的数据集T=(x1,y1),(x2,y2),..,xN,yN)$,可以应用极大私人估计模型参数,从而得到逻辑回归模型。
这里使用极大似然估计求解,极大似然估计的理解是根据现有数据,选择使模型得到现有训练集可能性最大的参数。参数估计我就直接贴出《统计学习方法》中的原文。

上面列出了将逻辑回归问题通过极大似然的方法转换成了最优化的问题,最优化问题有多种解决方案,这里给出使用梯度下降的完整的逻辑回归算法如下,关于最优化问题的求解请链接到最优化问题(待更新))

正则化

在模型参数估计这,已经将问题变为目标函数的最优化问题。为了让降低模型的复杂度,更好的泛化,可以在使用梯度下降的时候,添加一个正则项。二分类问题的L2乘法回归最小化如下(正则化链接-等待更新):

同样,L1正则化逻辑回归解决的优化问题如下:

多分类问题

在实际应用中,我们常常碰见多分类问题,我们如何将逻辑回归应用到上面呢?其实这里可以这样想,N分类问题,对于每一类都可以将他转换为二分类问题:是该类和非该类,每一类的逻辑模型是:

在进行分类的时候,对每一个输入的特征向量求的该类的该类,取概率最大的分类。


逻辑回归实现

请看逻辑回归实现


参考资料

[1]《统计学习方法》
[2] AngrewNG 《机器学习》
[3] Christopher M. Bishop: Pattern Recognition and Machine Learning, chapter4.3
[4] 听课笔记(第十讲): 逻辑斯蒂回归 (台大机器学习)
[5] 逻辑回归模型(Logistic Regression, LR)基础
[6] logistic regression

0 0
原创粉丝点击