逻辑斯蒂回归是一个非常经典的二项分类模型,也可以扩展为多项分类模型。其在应用于分类时的过程一般如下,对于给定的数据集,首先根据训练样本点学习到参数w,b;再对预测点分别计算两类的条件概率,将预测点判为概率值较大的一类。
1、线性模型
逻辑斯蒂回归属于对数线性模型,那什么是对数线性模型?首先我们介绍下线性模型。
给定包含d个属性的变量x=(x1,x2,...,xd" role="presentation">x1,x2,...,xdx1,x2,...,xd),xi" role="presentation">xixi表示在第i个属性上的取值,线性模型通过学得一个对属性分量的线性组合来进行预测的函数,即:
f(x)=w1x1+w2x2+⋯+wdxd+b" role="presentation">f(x)=w1x1+w2x2+⋯+wdxd+bf(x)=w1x1+w2x2+⋯+wdxd+b
写成向量形式为:
f(x)=wTx+b" role="presentation">f(x)=wTx+bf(x)=wTx+b
线性模型形式简单,易于建模,很多不错的非线性模型都是以线性模型为基础,通过层次组合或高维映射形成。此外,向量w作为各分量的权值,可以很直观地解释各属性在模型分类中的重要性,例如:
f好瓜=0.2⋅x色泽+0.5⋅x根蒂+0.3⋅x敲声" role="presentation">f好瓜=0.2⋅x色泽+0.5⋅x根蒂+0.3⋅x敲声f好瓜=0.2⋅x色泽+0.5⋅x根蒂+0.3⋅x敲声 +1
显然,根蒂对判断是否为好瓜的影响最大。
当我们给定样例点(x,y)" role="presentation" style="position: relative;">(x,y)(x,y), 若线性模型对给定样本点的预测值f(x)" role="presentation" style="position: relative;">f(x)f(x)逼近真实值y时,就形成了线性回归模型,记为:
y=wTx+b" role="presentation" style="position: relative;">y=wTx+by=wTx+b
线性回归模型表征了输入x与输出y的一种线性关系,我们还可以定义输入x与输出y的函数g(y)的一种线性关系,如:
lny=wTx+b" role="presentation" style="position: relative;">lny=wTx+blny=wTx+b
就是一种对数线性回归,使x与输出的对数形成线性关系,实际上使用w^Tx+b的指数ewTx+b" role="presentation" style="position: relative;">ewTx+bewTx+b来逼近输出。
考虑一般性,我们记:
g(y)=wTx+b" role="presentation" style="position: relative;">g(y)=wTx+bg(y)=wTx+b
其中,g(y)应满足单调可微的性质。我们将这样的模型称为“广义线性模型”,对数线性模型即g函数取对数函数的情况。
2、逻辑斯蒂回归模型
开始提到了逻辑斯蒂回归是一种对数线性模型,也就是说其输入与输出的对数函数成线性关系,实际上,它们满足如下关系:
logP(Y=1|x)P(Y=0|x)=wTx+b" role="presentation" style="position: relative;">logP(Y=1|x)P(Y=0|x)=wTx+blogP(Y=1|x)P(Y=0|x)=wTx+b
关系如何得来的?
根据上面提到的广义线性模型,对预测值的对数函数,需要满足单调可微的性质,且方便进行二项分类,于是选取了S形曲线Sigmoid函数作为g−(⋅)" role="presentation" style="position: relative;">g−(⋅)g−(⋅)函数,如下:
y=11+e−z" role="presentation" style="position: relative;">y=11+e−zy=11+e−z
图形如下:
我们将输入的线性组合代替Sigmoid函数中的输入,得到逻辑斯蒂回归模型。
逻辑斯蒂回归模型是如下的条件概率分布:
P(Y=1|x)=11+e−(w⋅x+b)=e(w⋅x+b)1+e(w⋅x+b)" role="presentation" style="position: relative;">P(Y=1|x)=11+e−(w⋅x+b)=e(w⋅x+b)1+e(w⋅x+b)P(Y=1|x)=11+e−(w⋅x+b)=e(w⋅x+b)1+e(w⋅x+b)
P(Y=0|x)=1−P(Y=1|X)=11+e(w⋅x+b)" role="presentation" style="position: relative;">P(Y=0|x)=1−P(Y=1|X)=11+e(w⋅x+b)P(Y=0|x)=1−P(Y=1|X)=11+e(w⋅x+b)
显然,条件概率分布与曲线是一致的,即当输入越小时,取正例的概率趋近于0,取反例的概率趋近于1;当输入越大时,取正例的概率则趋近于1,取反例的概率趋近于0.
记:
y=P(Y=1|x)" role="presentation" style="position: relative;">y=P(Y=1|x)y=P(Y=1|x)
1−y=P(Y=0|x)" role="presentation" style="position: relative;">1−y=P(Y=0|x)1−y=P(Y=0|x)
则有:
y1−y=P(Y=1|x)P(Y=0|x)=ew⋅x+b" role="presentation" style="position: relative;">y1−y=P(Y=1|x)P(Y=0|x)=ew⋅x+by1−y=P(Y=1|x)P(Y=0|x)=ew⋅x+b
即:
logy1−y=w⋅x+b" role="presentation" style="position: relative;">logy1−y=w⋅x+blogy1−y=w⋅x+b
从而得出关系。这里我们把logy1−y=w⋅x+b" role="presentation" style="position: relative;">logy1−y=w⋅x+blogy1−y=w⋅x+b 称作对数几率,表示一个事件预测为正例与反例的比值的对数。
3、模型参数估计
我们得到逻辑斯蒂回归模型的表示,也即条件概率分布后,需要得到参数w,b的值才能对未知输入点进行预测。
对于逻辑斯蒂回归模型,一般使用极大似然估计的方法估计模型参数。转化为对数似然函数后,问题就变成了带有参数的求似然函数值最大值的最有问题。因为这是属于无约束优化问题,一般采用梯度下降法、牛顿法、拟牛顿法等方法来进行求解,得到参数估计值w^,b^" role="presentation" style="position: relative;">w^,b^w^,b^ 后,代入条件概率分布公式:
P(Y=1|X)=e(w^⋅x+b^)1+e(w^⋅x+b^)" role="presentation" style="position: relative;">P(Y=1|X)=e(w^⋅x+b^)1+e(w^⋅x+b^)P(Y=1|X)=e(w^⋅x+b^)1+e(w^⋅x+b^)
P(Y=0|X)=11+e(w^⋅x+b^)" role="presentation" style="position: relative;">P(Y=0|X)=11+e(w^⋅x+b^)P(Y=0|X)=11+e(w^⋅x+b^)
即可实现对二项分类的预测。
4、多项逻辑斯蒂回归
二项逻辑斯蒂回归也可以推广到多项逻辑斯蒂回归,从而应用到多类分类问题中。
假设类别集合为{1,2,…,K},多项逻辑斯蒂回归模型可以写作:
P(Y=k)=exp(wk⋅x)1+∑k=1K−1exp(wk⋅x)" role="presentation" style="position: relative;">P(Y=k)=exp(wk⋅x)1+∑K−1k=1exp(wk⋅x)P(Y=k)=exp(wk⋅x)1+∑k=1K−1exp(wk⋅x)
P(Y=K|x)=11+∑k=1K−1exp(wk⋅x)" role="presentation" style="position: relative;">P(Y=K|x)=11+∑K−1k=1exp(wk⋅x)P(Y=K|x)=11+∑k=1K−1exp(wk⋅x)
可以满足
∑k=1KP(Y=k|x)=1" role="presentation" style="position: relative;">∑Kk=1P(Y=k|x)=1∑k=1KP(Y=k|x)=1