逻辑回归算法,虽说名字有回归,实则是一个分类模型,而且是二分类。

Logistic本质上是一个基于条件概率的判别模型(Discriminative Model)

g(z) = 11+e−z

1 1 + e − z

LogisticRegression结果 logistic regression原理_逻辑回归

通过这个图像sigma函数,通常以0.5为分界,大于0.5为正样本,反之为负样本,是一个二分类的方法。
那么将这个函数扩展到多维空间,就是说不只是二分类,而是多分类问题,那么原始的函数
g(z) = 11+e−z 1 1 + e − z

就要变成

hθ(x)=g(θTx)=11+e−θTx h θ ( x ) = g ( θ T x ) = 1 1 + e − θ T x (多分类)
现在需要解决的一个问题是求θ θ ,如何得到合适的参数向量θ θ
根据sigma函数的特性,我们可以这样假设一下:
P(y=1|x;θ)=hθ(x) P ( y = 1 | x ; θ ) = h θ ( x ) (根据当前的参数,提供样本x,该样本属于y=1的概率)
P(y=0|x;θ)=1−hθ(x) P ( y = 0 | x ; θ ) = 1 − h θ ( x )
上两式为已知样本X和参数θ θ 的前提下,样本X属于正样本(y = 1) 负样本 (y = 0)的条件概率

然后将以上两个公式进行合并

P(y|x;θ)=(hθ(x))y(1−hθ(x))1−y P ( y | x ; θ ) = ( h θ ( x ) ) y ( 1 − h θ ( x ) ) 1 − y
这个公式也就是对二分类综合的公式,能分别求出属于正样本、负样本的概率

此时会用到最大似然估计的知识。最大似然估计的目的是:利用已知的样本结果,反推最有可能(最大概率)导致这样结果的参数值。

既然概率出来了,那么最大似然估计也该使用了。假定样本与样本之间相互独立,那么整个样本集生成的概率即为所有样本生成概率的乘积:

L(θ)=p(y⃗ |X;θ)=∏mi=1(hθ(x(i)))y(i)(1−hθ(x(i)))1−y(i) L ( θ ) = p ( y → | X ; θ ) = ∏ i = 1 m ( h θ ( x ( i ) ) ) y ( i ) ( 1 − h θ ( x ( i ) ) ) 1 − y ( i )

为了简化问题,我们对整个表达式求对数(将指数问题对数化是处理数学问题常见的方法):

l(θ)=log L(θ)=∑mi=1log h(x(i))+(1−y(i))log(1−h(x(i))) l ( θ ) = l o g   L ( θ ) = ∑ i = 1 m l o g   h ( x ( i ) ) + ( 1 − y ( i ) ) l o g ( 1 − h ( x ( i ) ) )

满足似然函数(θ) ( θ ) 的最大的θ θ 值即是我们需要求解的模型。

梯度上升算法
Xi+1=Xi+α∗∂f(Xi)Xi X i + 1 = X i + α ∗ ∂ f ( X i ) X i

其中,α α 为步长。
回到Logistic Regression问题,我们同样对函数求偏导。
∂∂θjl(θ)=(y1g(θTx)−(1−y)11−g(θTx))∂∂θjg(θTx)=(y1g(θTx)−(1−y)11−g(θTx))g(θTx)(1−g(θTx))∂∂θjθTx=(y(1−g(θTx))−(1−y)g(θTx))xj=(y−hθ(x))xj ∂ ∂ θ j l ( θ ) = ( y 1 g ( θ T x ) − ( 1 − y ) 1 1 − g ( θ T x ) ) ∂ ∂ θ j g ( θ T x ) = ( y 1 g ( θ T x ) − ( 1 − y ) 1 1 − g ( θ T x ) ) g ( θ T x ) ( 1 − g ( θ T x ) ) ∂ ∂ θ j θ T x = ( y ( 1 − g ( θ T x ) ) − ( 1 − y ) g ( θ T x ) ) x j = ( y − h θ ( x ) ) x j

对以上公式的详细过程:

∂∂θjl(θ)=∂l(θ)∂g(θTx)∗∂g(θTx)∂θTx∗∂θTx∂θj ∂ ∂ θ j l ( θ ) = ∂ l ( θ ) ∂ g ( θ T x ) ∗ ∂ g ( θ T x ) ∂ θ T x ∗ ∂ θ T x ∂ θ j

其中:

l(θ)=y∗log g(θTx)+(1−y)log(1−g(θTx)) l ( θ ) = y ∗ l o g   g ( θ T x ) + ( 1 − y ) l o g ( 1 − g ( θ T x ) )
∂l(θ)∂g(θTx)=y∗1g(θTx)+(1−y)∗11−g(θTx)∗(−1) ∂ l ( θ ) ∂ g ( θ T x ) = y ∗ 1 g ( θ T x ) + ( 1 − y ) ∗ 1 1 − g ( θ T x ) ∗ ( − 1 )

令z=θTx z = θ T x

g(z)′=ddz11+e−z=1(1+e−z)2(e−z)=1(1+e−z)∗(1−1(1+e−z))=g(z)(1−g(z)) g ( z ) ′ = d d z 1 1 + e − z = 1 ( 1 + e − z ) 2 ( e − z ) = 1 ( 1 + e − z ) ∗ ( 1 − 1 ( 1 + e − z ) ) = g ( z ) ( 1 − g ( z ) )

可得:

∂g(θTx)∂θTx=g(θTx)∗(1−g(θTx)) ∂ g ( θ T x ) ∂ θ T x = g ( θ T x ) ∗ ( 1 − g ( θ T x ) )

接下来就剩下第三部分:
∂θTx∂θj=∂(θ1x1+θ2x2+...+θmxm)∂θj=xj ∂ θ T x ∂ θ j = ∂ ( θ 1 x 1 + θ 2 x 2 + . . . + θ m x m ) ∂ θ j = x j

(这个公式应该很容易理解,简单的偏导公式,只有第j项进行计算)

再有就是:

hθ(x)=g(θTx)=11+e−θTx h θ ( x ) = g ( θ T x ) = 1 1 + e − θ T x

综合第三部分即得到:
∂∂θjl(θ)=(y−hθ(x))xj ∂ ∂ θ j l ( θ ) = ( y − h θ ( x ) ) x j

因此,梯度迭代公式为:
θj:=θj+α(y(i)−hθ(x(i)))x(i)j θ j := θ j + α ( y ( i ) − h θ ( x ( i ) ) ) x j ( i )