逻辑回归(Logistic Regression)是一个分类算法,既可以用来解决二分类问题也可以解决多分类问题。那么为什么名为“回归“的算法却是用来解决分类问题的呢?本文将对逻辑回归的由来及原理做出详细的总结。
1)线性回归(Linear Regression)
线性回归一般化的描述指通过计算输入变量的加权和,并加上一个常数偏置项(截距项)来得到一个预测值。线性回归预测模型如下(向量形式):
y ^ = h Θ ( X ) = Θ T X \hat{y} =h_\Theta (X)=\Theta ^TX y^=hΘ(X)=ΘTX
线性回归是求出输出特征向量 y ^ \hat{y} y^和输入样本矩阵 X X X之间的线性关系系数 θ θ θ,然后给定一个特征向量 X X X,输出一个预测值 y ^ \hat{y} y^。由于 y ^ \hat{y} y^的值是一个连续的数值,因此线性回归是一个回归模型。
2)分类问题(Classification Problem)
对于一个二分类问题,假如给定一个样本x,我们需要估计该样本属于特定的一个类别的概率(比如是否是垃圾短信?)。假如我们估计样本 x x x是垃圾概率的概率大于50%,则我们认为他是正类( l a b e l = 1 label=1 label=1),否则我们认为它是负类( l a b e l = 0 o r l a b e l = − 1 label=0 or label = -1 label=0orlabel=−1)。这就是一个二分类问题。
那么对于多分类问题,我们可以其转换成多个二分类问题,比如最简单的OVA(One-vs-all)方法,也可以直接用多元逻辑回归的方法解决,比如Many-vs-Many(MvM)。
3)回归问题到分类问题(Linear Regression To Classification Problem)
那么如何用连续的数值去预测离散的标签值?我们能否将线性回归输出的一个连续的数值变成一个标签呢?一个比较直观的想法是设定一个阈值,比如回归模型输出的y大于0时,属于正类,y小于0时属于负类,这种方法叫做感知机(Perceptron)。
感知机的方法可以很好的将一个连续的数值变成一个标签,但它有一个问题,即将y等于1时,和y等于100时,视为完全一样,都归为正类。那我们是否有更好的一个方法,将y等于1和y等于100都归为正类的同时,也考虑它们各自属于正类的置信度呢?
这种方法就是逻辑回归(Logistic Regression),我们不直接去预测类别,而是预测类别为正的概率。如果样本类别为正的概率大于0.5,则认为样本为正类,否则为负类。
4 )逻辑函数(Logistic Function)
那么如何将线性回归的输出值y,y属于(-∞, +∞),转换成[0,1]的概率的呢?
y ^ = h Θ ( X ) = σ ( Θ T X ) \hat{y} =h_\Theta (X)=\sigma(\Theta ^TX) y^=hΘ(X)=σ(ΘTX)
正好,有一个Sigmoid函数,表达式和函数图像如下:
σ ( t ) = 1 1 + e − t \sigma(t)=\frac{1}{1+e^{-t}} σ(t)=1+e−t1
一旦逻辑回归能够估计样本X属于正类的概率 p ^ = h θ ( x ) \hat{p}=h_\theta(\mathbf{x}) p^=hθ(x),那么很容易通
过以下公式去判断样本x属于哪个类别:
y ^ = { 1 p ^ > 0.5 0 p ^ < 0.5 \hat{y} = \begin{cases} 1\qquad\hat{p}>0.5 \\ 0\qquad\hat{p}<0.5\\ \end{cases} y^={
1p^>0.50p^<0.5
注意: Θ T X \Theta ^TX ΘTX 为正数, y ^ \hat{y} y^为1, Θ T X \Theta ^TX ΘTX为负数, y ^ \hat{y} y^为0。
因此,逻辑回归的函数为:
p ( y / x ) = 1 1 + e − ( w T X + b ) = σ ( w T X + b ) p(y/x)=\frac{1}{1+e^{-(w^TX+b)}}=\sigma(w^TX+b) p(y/x)=1+e−(wTX+b)1=σ(wTX+b)
对于二分类问题,逻辑回归函数可以写成:
p ( y = 1 / x , w ) = 1 1 + e − ( w T X + b ) = σ ( w T X + b ) p(y=1/x,w)=\frac{1}{1+e^{-(w^TX+b)}}=\sigma(w^TX+b) p(y=1/x,w)=1+e−(wTX+b)1=σ(wTX+b)
p ( y = 0 / x , w ) = e − ( w T X + b ) 1 + e − ( w T X + b ) = 1 − σ ( w T X + b ) p(y=0/x,w)=\frac{e^{-(w^TX+b)}}{1+e^{-(w^TX+b)}}=1-\sigma(w^TX+b) p(y=0/x,w)=1+e−(wTX+b)e−(wTX+b)=1−σ(wTX+b)
将两式合并,可写成:
p ( y / x , w ) = p ( y = 1 / x , w ) y [ 1 − p ( y = 1 / x , w ) y ] 1 − y p(y/x,w)=p(y=1/x,w)^y[1- p(y=1/x,w)^y]^{1-y} p(y/x,w)=p(y=1/x,w)y[1−p(y=1/x,w)y]1−y
5)决策边界(Decision Boundaries)
对于二分类问题,逻辑回归函数为:
p ( y = 1 / x , w ) = 1 1 + e − ( w T X + b ) = σ ( w T X + b ) p(y=1/x,w)=\frac{1}{1+e^{-(w^TX+b)}}=\sigma(w^TX+b) p(y=1/x,w)=1+e−(wTX+b)1=σ(wTX+b)
p ( y = 0 / x , w ) = e − ( w T X + b ) 1 + e − ( w T X + b ) = 1 − σ ( w T X + b ) p(y=0/x,w)=\frac{e^{-(w^TX+b)}}{1+e^{-(w^TX+b)}}=1-\sigma(w^TX+b) p(y=0/x,w)=1+e−(wTX+b)