Logistic Regression 本质论
发表于2016-07-08| 分类于机器学习|
注意:这不是一篇LR的入门文章,本文假定读者已经了解LR的推导和基本原理,建议有LR基础的同学阅读本文。
LR essential in one sentence
LR 本质上是对正例负例的对数几率做线性回归,因为对数几率叫做logit,做的操作是线性回归,所以该模型叫做Logistic Regression。
LR 的输出可以看做是一种可能性,输出越大则为正例的可能性越大,但是这个概率不是正例的概率,是正例负例的对数几率。
关于Logistic Regression
我们都知道Logistic Regression(LR)模型是工业界使用非常多的一个模型,它的优点非常明显:
模型非常简单。应用到线上时,prediction的计算非常容易做。在O(1)的时间复杂度之内就能够给出模型的预测值,这对于线上数据暴风雨般袭来的时候非常有用。
y^=11+e−(wx+b)(1)(1)y^=11+e−(wx+b)
模型可解释性强。对于LR模型,每个特征xixi的参数wiwi就是该特征的权重,wiwi越大,则特征权重越大;越小,则特征权重越小。因此LR的模型往往非常直观,而且容易debug,而且也容易手动修改。
模型的输出平滑。由于Logistic function的作用,LR的输出值是(0,1)之间的连续值,更重要的是,这个值能从某种角度上表示样本x是正例的可能性, 输出值越接近1,则样本是正例的可能性就越大,输出值越接近0,样本是负例的可能性就越大。注意这里的用词,是样本x是正例的可能性,而不是样本x是正例的概率。
总之,在LR能够用上的地方,它总是大放异彩。
很多人都说模型输出能代表样本是正例的概率,这种说法是错误的;
有人说模型的输出代表样本是正例的可能性是因为模型的输出正好映射到了(0,1)区间,和概率的取值范围相同,也完全没有道理。
LR为什么叫做LR?
Logistic Regression模型中文一般被叫做“逻辑斯蒂回归”或“逻辑回归”,然而这个名字并没有什么实质含义,实际上Logistic一词和“逻辑”一词并没有什么关系。周志华在其《机器学习》中,将LR翻译做“对数几率模型”,我认为是妥当的。
在解释之前,我们尝试对LR的label换一种理解方式。在LR模型中,我们给正例赋予1的label,负例赋予0的label。从另一个角度,label可以看做该样本属于正例的概率,label为1表示“该样本有1的概率属于正例”, label为0表示“该样本有0的概率属于正例”。
logistic 和 logit
LR的logistic 来源于 logit,是logit的形容词,logit function在中文叫做“对数几率”,是正例负例概率之比的自然对数。
logit(x)=logx1−x(2)(2)logit(x)=logx1−x
对数几率(注意不是对数概率),是某种意义的表达x是否属于正例的可能性,x为正例的可能性越高,则其对数几率就越高。反之,x的对数几率越高,其为正例的可能性就越大。
注意这种可能性,并不和概率完全等价,两者只是正相关的关系。
从LR模型的公式说开去
我们尝试把LR的公式推导成我们喜闻乐见的形式:
y=11+e−(wx+b)(3)(3)y=11+e−(wx+b)
1y=1+e−(wx+b)(4)(4)1y=1+e−(wx+b)
1−yy=e−(wx+b)(5)(5)1−yy=e−(wx+b)
logy1−y=wx+b(6)(6)logy1−y=wx+b
(6)的表述清晰而简单:左侧是logit,右侧是线性回归。
Logistic Regression 的本质
所以,LR模型就是通过线性回归对目标的对数几率进行拟合。这就是LR的本质。
所以为什么LR的结果能够在某种程度上代表目标属于正例的可能性,因为LR拟合的就是目标的对数几率,而对数几率能够代表目标属于正例的可能性。
所以这个模型叫做Logistic Regression。
引申
由此引申出去,LR的label并不一定非要是0和1,LR也不一定只能处理二分类问题,因为其label是其对数几率。
比如,有下面一个问题,对文章的相关性进行训练,label可以分成三类,相关,弱相关和不相关,其label分别为1,0.5,0,也完全可以拿到LR中进行训练—-因为这个label也可以代表样本属于正例的概率。
再引申出去,logistic function的同门师兄,sigmoid函数家族的一员,tanh,经过推导,其实也满足同样的条件。只不过为什么没有一个tanh regression, 我就不得而知了:-)