逻辑回归算法,虽说名字有回归,实则是一个分类模型,而且是二分类。
Logistic本质上是一个基于条件概率的判别模型(Discriminative Model)
g(z) =
11+e−z
通过这个图像sigma函数,通常以0.5为分界,大于0.5为正样本,反之为负样本,是一个二分类的方法。
那么将这个函数扩展到多维空间,就是说不只是二分类,而是多分类问题,那么原始的函数
g(z) =
11+e−z
(二分类)
就要变成
hθ(x)=g(θTx)=11+e−θTx
(多分类)
现在需要解决的一个问题是求
θ
,如何得到合适的参数向量
θ
根据sigma函数的特性,我们可以这样假设一下:
P(y=1|x;θ)=hθ(x)
(根据当前的参数,提供样本x,该样本属于y=1的概率)
P(y=0|x;θ)=1−hθ(x)
上两式为已知样本X和参数
θ
的前提下,样本X属于正样本(y = 1) 负样本 (y = 0)的条件概率
然后将以上两个公式进行合并
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(θ)=log L(θ)=∑mi=1log h(x(i))+(1−y(i))log(1−h(x(i)))
满足似然函数
(θ)
的最大的
θ
值即是我们需要求解的模型。
梯度上升算法
Xi+1=Xi+α∗∂f(Xi)Xi
其中,
α
为步长。
回到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
对以上公式的详细过程:
∂∂θjl(θ)=∂l(θ)∂g(θTx)∗∂g(θTx)∂θTx∗∂θTx∂θj
其中:
l(θ)=y∗log g(θTx)+(1−y)log(1−g(θTx))
∂l(θ)∂g(θTx)=y∗1g(θTx)+(1−y)∗11−g(θTx)∗(−1)
令
z=θTx
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(θTx)∂θTx=g(θTx)∗(1−g(θTx))
接下来就剩下第三部分:
∂θTx∂θj=∂(θ1x1+θ2x2+...+θmxm)∂θj=xj
(这个公式应该很容易理解,简单的偏导公式,只有第j项进行计算)
再有就是:
hθ(x)=g(θTx)=11+e−θTx
综合第三部分即得到:
∂∂θjl(θ)=(y−hθ(x))xj
因此,梯度迭代公式为:
θj:=θj+α(y(i)−hθ(x(i)))x(i)j
本篇文章参考了http://www.cnblogs.com/bonelee/p/7253508.html,并对齐进行了整理,思路更清晰直观。