logistic回归
1)定义
分类:
y∈{0,1}
线性回归算法应用于分类问题,有的时候效果还好,有的时候效果并不好。
hθ(x)∈[0,1]
hθ(x)=11+e−θTx
2)说明
p(y=1|x;θ)=hθ(x)
p(y=0|x;θ)=1−hθ(x)
总结:
p(y|x;θ)=hθ(x)y(1−hθ(x))1−y
3)参数拟合
L(θ)=p(y⃗ |X;θ)
注:独立性
=∏mi=1p(y(i)|x(i);θ)
=∏mi=1hθ(x(i))y(i)(1−hθ(x(i)))1−y(i)
l(θ)=logL(θ)
=∑mi=1[y(i)loghθ(x(i))+(1−y(i))log(1−hθ(x(i)))]
使 l(θ) 最大,可以使用梯度上升法
θ:=θ+α▽θl(θ)
∂∂θjl(θ)=∑mi=1(y(i)−hθ(x(i)))x(i)j (此处需要推导)
θj:=θj+α∑mi=1(y(i)−hθ(x(i)))x(i)j
以上是书中结论,推导结果:符号有所简化,令m=1
h=11+e−(a+b∗x1+c∗x2)
l=[y∗logh+(1−y)log(1−h)]
∂∂bl=(y−h)x1
用matlab求偏导
1.syms h a b c x1 x2 y l
2.h=(1+exp(-(a+b*x1+c*x2)))^-1
h =
1/(exp(- a - b*x1 - c*x2) + 1)
3.l = y*log(h) + (1 - y)*log(1 - h)
l =
y*log(1/(exp(- a - b*x1 - c*x2) + 1)) - log(1 - 1/(exp(- a - b*x1 - c*x2) + 1))*(y - 1)
4.diff(l,b)
ans =
(x1*y*exp(- a - b*x1 - c*x2))/(exp(- a - b*x1 - c*x2) + 1) - (x1*exp(- a - b*x1 - c*x2)(y - 1))/((1/(exp(- a - b*x1 - c*x2) + 1) - 1)(exp(- a - b*x1 - c*x2) + 1)^2)
手工化简之后是 x1(y−h)