统计学习之逻辑回归
版权声明在:此文系博主原创,转载请注明出处
如果要说逻辑回归,我们必须需要先了解一下线性回归,因为逻辑回归其实是一种广义上的线性回归,不同的是线性回归用来处理回归问题,而逻辑回归则是用来处理分类问题。
线性回归
线性回归的思想:通过历史数据拟合出一条直线,并用这条直线对数据进行预测。
线性回归的公式为:
z=θ0+θ1x1θ2x2+θ3x3...+θnxn=θTx z = θ 0 + θ 1 x 1 θ 2 x 2 + θ 3 x 3 . . . + θ n x n = θ T x
对于逻辑回归,其思想也是基于线性回归:
hθ(x)=11+e−z=11+e−θTx h θ ( x ) = 1 1 + e − z = 1 1 + e − θ T x
逻辑回归算法可以看成将线性回归的的结果映射到sigmoid函数中。
根据图可以知道,该式在于将离散值映射为概率,利用sigmoid将值压缩到0-1逻辑回归是一种分类模型,由条件概率表示 P(Y|X) P ( Y | X ) 表示(ps:与条件概率也叫后验概率,还有先验概率: P(Y) P ( Y ) 表示某种类别的概率, P(X|Y) P ( X | Y ) 表示类条件概率,表示在类别确定的情况下,某事发生的概率)。那么逻辑回归的条件概率如下(二分类),随机变量X取任一实数,随机变量Y取1或者0
P(Y=1|x)=exp(wx+b)1+exp(wx+b) P ( Y = 1 | x ) = e x p ( w x + b ) 1 + e x p ( w x + b )
P(Y=0|x)=11+exp(wx+b) P ( Y = 0 | x ) = 1 1 + e x p ( w x + b )
逻辑回归比较两个概率值得大小,将实例x分到概率值较大的那一类。现在我们的问题就在于如何估计参数w,我们可以用极大似然法来估计模型参数:
def:事件几率(odds):是指该事件发生的概率与不发生的概率的比值。
该事件的对数几率(log odds)或者(logit函数):
logit(p)=logp1−p l o g i t ( p ) = l o g p 1 − p
对于逻辑回归而言: logP(Y=1|x)1−P(Y=1|x)=wx l o g P ( Y = 1 | x ) 1 − P ( Y = 1 | x ) = w x
设: P(Y=1|x)=π(x) P ( Y = 1 | x ) = π ( x ) P(Y=0|x)=1−π(x) P ( Y = 0 | x ) = 1 − π ( x )
似然函数: ∏Ni=1[π(xi)]yi[1−π(xi)]1−yi ∏ i = 1 N [ π ( x i ) ] y i [ 1 − π ( x i ) ] 1 − y i
对数似然函数: L(w)=∑Ni=1[yilogπ(xi)+(1−yi)log(1−π(xi))] L ( w ) = ∑ i = 1 N [ y i l o g π ( x i ) + ( 1 − y i ) l o g ( 1 − π ( x i ) ) ]
L(w)=∑Ni=1[yilogπ(xi)1−π(xi)+log(1−π(xi)] L ( w ) = ∑ i = 1 N [ y i l o g π ( x i ) 1 − π ( x i ) + l o g ( 1 − π ( x i ) ]
L(x)=∑Ni=1[yi(wxi)−log(1+exp(wxi))] L ( x ) = ∑ i = 1 N [ y i ( w x i ) − l o g ( 1 + e x p ( w x i ) ) ] (logistic 交叉熵损失)
求 L(x) L ( x ) 的极大值,便可以得到w的估计值,这样一来,求解参数的过程就变成了以对数似然函数为目标函数的最优化过程,一般采用梯度下降法和牛顿法求解。