打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
机器学习之详解Logistic回归

之前的几篇博客文章里,我们已经向读者介绍了机器学习中Logistic回归的具体应用(主要是在微博Sentiment Analysis中的分类应用)以及在Python中利用Scikit-Learn提供的函数进行基于Logistic回归的数据挖掘的一般方法。而本文旨在从源头上解释一下Logistic回归的原理到底是什么。

什么是回归?

英文单词Regression翻译成中文“回归”,那什么是回归呢?事实上,在Logistic回归出现以前,人们最先引入的是线性回归。了解二者之间的来龙去脉将帮助你更深刻地认识Logistic回归。

回归一词最早由英国科学家弗朗西斯·高尔顿(Francis Galton)提出,他还是著名的生物学家、进化论奠基人查尔斯·达尔文(Charles Darwin)的表弟。高尔顿深受进化论思想的影响,并把该思想引入到人类研究,从遗传的角度解释个体差异形成的原因。

高尔顿发现,虽然有一个趋势——父母高,儿女也高;父母矮,儿女也矮,但给定父母的身高,儿女辈的平均身高却趋向于或者“回归”到全体人口的平均身高。换句话说,即使父母双方都异常高或者异常矮,儿女的身高还是会趋向于人口总体的平均身高。这也就是所谓的普遍回归规律。

高尔顿的这一结论被他的朋友,英国数学家、数理统计学的创立者卡尔·皮尔逊(Karl Pearson)所证实。皮尔逊收集了一些家庭的1000多名成员的身高记录,发现对于一个父亲高的群体,儿辈的平均身高低于他们父辈的身高;而对于一个父亲矮的群体,儿辈的平均身高则高于其父辈的身高。这样就把高的和矮的儿辈一同“回归”到所有男子的平均身高,用高尔顿的话说,这是“回归到中等”。

回归分析是被用来研究一个被解释变量(Explained Variable)与一个或多个解释变量(Explanatory Variable)之间关系的统计技术。被解释变量有时也被称为因变量(Dependent Variable),与之相对应地,解释变量也被称为自变量(Independent Variable)。回归分析的意义在于通过重复抽样获得的解释变量的已知或设定值来估计或者预测被解释变量的总体均值。

如果你对上面这段话感到困惑,不妨来看看下面这张图。图上有一些观测到的样本点,线性回归的任务就在于通过一条线来最大程度地拟合这些点。例如,我们已经得到了一些父辈与儿辈身高的数据,而且我们认为儿辈的身高在很大程度上依赖于父辈的身高。那么,我们就可以把儿辈身高看成是被解释变量(即图中的纵轴),把父辈身高看成是解释变量(即图中的衡轴)。然后通过一条回归线来拟合这些数据,如此一来,当我们已知一个父亲的身高时,就可以通过回归线所表现出来的线性关系推测出儿子身高的大概水平。




在线性回归中,我们假设被解释变量 y 与解释变量 x1,x2,,xn之间具有线性相关的关系,那么用公式就可以将线性回归模型表示为
y=w0+w1x1+w2x2++wnxn

其中 w0 表示常数项,上图中因为自变量只有一个,所以一元线性回归的公式表示应该是 y=w0+w1x1,显然它是多元线性回归模型中最简单的情况。


Logistic回归的引入

你已经掌握了线性回归的基本内容。现在我们来看一个稍微有点变化的例子。

为研究与急性心肌梗塞急诊治疗情况有关的因素,现收集了200个急性心肌梗塞的病例,如下表所示。其中,X1 用于指示救治前是否休克,X1=1 表示救治前已休克,X1=0 表示救治前未休克;X2 用于指示救治前是否心衰,X2=1 表示救治前已发生心衰,X2=0 表示救治前未发生心衰;X3用于指示12小时内有无治疗措施,X3=1表示没有,否则X3=0。最后给出了病患的最终结局,当 P=0 时,表示患者生存;否则当 P=1 时,表示患者死亡。




如果要建立回归模型,进而来预测不同情况下病患生存的概率,考虑用多重回归来做,(注意我们将大写换成了小写)即
P=w0+w1x1+w2x2+w3x3

则显然将自变量带入上述回归方程,不能保证概率 P 一定位于0~1。于是想到用Logistic函数将自变量映射至0~1。Logistic函数的定义如下:
P=ey1+ey


y=lnP1P

其函数的图像如图下所示。



然后上面的函数定义式将多元线性回归中的因变量替换得到
P(x)=11+ex

其中 x=w0+w1x1++wnxn,而且在我们当前所讨论的例子中 n=3
上式中的 w0,w1,,wn正是我们要求的参数,通常采用极大似然估计法对参数进行求解。对于本题而言则有
P(y=0)=11+ex,P(y=1)=11+ex

进而有(由于下面的计算过程使用了截图,无法修改,请读者注意其中的 β 就是我们所讨论的参数 w



当我们得到上面最后一个公式的时候,如果再有一组观察样本,将其带入公式,就可以算得病人生存与否的概率。

以上我们就通过了一个例子向读者演示了如何从原始的线性回归演化出Logistic回归。而且,不难发现,Logistic回归可以用作机器学习中的分类器。当我们得到一个事件发生与否的概率时,自然就已经得出结论,其到底应该属于“发生”的那一类别,还是属于“不发生”的那一类别。

接下来我们要从整个具体的例子中抽象出Logistic回归的一般化过程。并为后续一些文章的讨论埋下伏笔。

所谓机器学习,最终是让机器自己学到一个可以用于问题解决的模型。而这个模型本质上是由一组参数定义的,也就是前面讨论的 w0,w1,,wn。在得到测试数据时,将这组参数(在Logistic回归中也可以认为是权值)与测试数据线性加和得到

x=w0+w1x1+w2x2++wnxn

这里 x1,x2,,xn 是每个样本的 n 个特征。之后再按照Logistic函数的形式求出
P(x)=11+ex

在给定特征向量 x=(x1,x2,,xn)时,条件概率P(y=1|x) 为根据观测量某事件 y 发生的概率。那么Logistic回归模型可以表示为
P(y=1|x)=π(x)=11+ex

相对应地,在给定条件 x 时,事件 y 不发生的概率为
P(y=0|x)=1π(x)=11+ex

而且还可以得到事件发生与不发生的概率之比为
odds=P(y=1|x)P(y=0|x)=ex

这个比值称为事件的发生比。

概率论的知识告诉我们参数估计时可以采用最大似然法。假设有 m 个观测样本,观测值分别为 y1,y2,,ym,设 pi=P(yi=1|xi) 为给定条件下得到 yi=1 的概率。同样地,yi=0 的概率为 1pi=P(yi=0|xi),所以得到一个观测值的概率为 P(yi)=pyii(1pi)1yi

各个观测样本之间相互独立,那么它们的联合分布为各边缘分布的乘积。得到似然函数为

L(w)=i=1m[π(xi)]yi[1π(xi)]1yi

然后我们的目标是求出使这一似然函数值最大的参数估计,于是对函数取对数得到
lnL(w)=i=1m{yiln[π(xi)]+(1yi)ln[1π(xi)]}=i=1mln[1π(xi)]+i=1myilnπ(xi)1π(xi)=i=1mln[1π(xi)]+i=1myi(w0+xiw)=i=1mln[1+ew0+xiw]+i=1myi(w0+xiw)

根据多元函数求极值的方法,为了求出使得 lnL(w) 最大的向量 w=(w0,w1,,wn),对上述的似然函数求偏导后得到
lnL(w)wk=i=1m11+ew0+xiwew0+xiwxik+i=1myixik=i=1mxik[yiπ(xi)]

现在,我们所要做的就是通过上面已经得到的结论来求解使得似然函数最大化的参数向量。在实际中有很多方法可供选择,其中比较常用的包括梯度下降法、牛顿法和拟牛顿法等,这部分内容我们留待后续文章中再来详谈。

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
logistic回归、probit回归与poission回归
逻辑回归算法的原理及实现(LR)
【典藏】Logistic 回归:从入门到进阶
医学研究中的Logistic回归分析及R实现
因变量是定性变量的回归分析—Logistic回归分析
你以为线性回归和逻辑回归是一回事吗?
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服