Logistic Regression也叫Logit Regression,在机器学习中属于参数估计的模型。逻辑回归与普通线性回归(Linear Regression)有很大的关系。在应用上,它们有所区别:
- 普通线性回归主要用于连续变量的预测,即,线性回归的输出 y y y的取值范围是整个实数区间( y ∈ R y \in R y∈R)
- 逻辑回归用于离散变量的分类,即,它的输出 y y y的取值范围是一个离散的集合,主要用于类的判别,而且其输出值 y y y表示属于某一类的概率
一个单独的逻辑回归函数只能判别两个类,这里用0和1表示. 逻辑回归的结果会给出一个概率 p p p,表示属于类别1的概率。既然是两类问题,那么属于类别0的概率自然就是 1 − p 1-p 1−p。有没有发现一点二项分布(Binomial Distribution)的影子?
逻辑回归应用广泛,而且因为给出的结果是一个概率,比单纯的“是”或“不是”包含更多的信息,因此大受人们喜爱(误)。我们之前参加Kaggle广告点击率预测竞赛时使用的就是逻辑回归。因为用户要么点了广告,要么没点,我们给出一个概率,就可以判断用户的点击广告的可能性。这个预测看起来很简单,的确是,模型很简单的,难的地方在于features的分析,选取,综合等,也就是常说的pre-processing。
文章内容
很多文章介绍逻辑回归时会直接给出一个叫sigmoid的函数,该函数的值域范围是 ( 0 , 1 ) (0,1) (0,1),刚好是概率的取值范围(也不完全是,因为是开区间)。本文会再稍微往前一点点,从引入sigmoid函数之前介绍一下Logistic Regression。文章只做简单介绍(真的很简单),不涉及参数估计的内容。
Odds与Logit函数
逻辑回归的输入是一个线性组合,与线性回归一样,但输出变成了概率。而且逻辑回归用于预测两类问题,类似一个伯努利试验。假设在一个伯努利试验中,成功的概率是 p p p,失败的概率是 1 − p 1-p 1−p,我们设逻辑回归的输出是成功的概率 p p p,那么需要一个函数将逻辑回归的输入(一个线性组合)与 p p p联系起来。下面介绍这个函数,它的名字叫Logit.
我们定义:
(1) O d d s = p 1 − p Odds = \frac{p}{1-p} \tag1 Odds=1−pp(1)
上式很直观,表示成功的概率是失败概率的多少倍,中文叫做发生比。
在赌博中,发生比大概描述了赢的概率是输的概率的几倍。
对Odds取自然对数:
(2) ln ( O d d s ) = ln ( p 1 − p ) = ln ( p ) − ln ( 1 − p ) \ln(Odds) = \ln(\frac{p}{1-p}) = \ln(p) - \ln(1-p) \tag2 ln(Odds)=ln(1−pp)=ln(p)−ln(1−p)(2)
上式即为logit函数的定义,参数为 p p p,记为:
(3) l o g i t ( p ) = ln ( O d d s ) logit(p) = \ln(Odds) \tag3 logit(p)=ln(Odds)(3)
l o g i t ( p ) logit(p) logit(p)的图像如下所示,可以看到它的定义域是 [ 0 , 1 ] [0,1] [0,1]