LR中文翻译作逻辑斯蒂回归,用于二分类。为什么回归和分类搅在一起了呢。因为可以这样想:线性回归
y=θTx
得到的结果是一个实数。如果我们将这个结果“压缩”到 [0,1] 之间,那么就可以表示概率接近1的程度,进而可以用来二分类。 最简单的“压缩”可以是单位阶跃函数:
![](https://upload.wikimedia.org/wikipedia/commons/thumb/d/d9/Dirac_distribution_CDF.svg/512px-Dirac_distribution_CDF.svg.png)
但单位阶跃函数是不连续的,在求导的过程中会产生问题。所以,我们用sigmoid函数来近似单位阶跃函数:
σ(x)=11+e−x
![](https://upload.wikimedia.org/wikipedia/commons/3/33/Sigmoid_function_01.png)
可以看到,在0附近其函数值变化较快。
从而我们得到:
- 样本 xi 属于1的概率:
hθ(xi)=p(yi=1|xi)=σ(θTxi)=11+e−θTxi
- 样本 xi 属于0的概率:
p(yi=0|xi)=1−σ(θTxi)=e−θTxi1+e−θTxi
将两式合并:
p(y|x)=(hθ(x))y(1−hθ(x))1−y
对所有样本取最大似然:
L(θ)=∏i=1mp(yi|xi)
记
hθ(x)=g(θTx)=11+e−θTx
取对数得:
l(θ)=logL(θ)=log∏i=1mp(yi|xi)=∑i=1mlogp(yi|xi)=∑i=1mlog[(hθ(xi))yi(1−hθ(xi))1−yi]=∑i=1m[yilog(hθ(xi))+(1−yi)log(1−hθ(xi))]=∑i=1m[yilog(g(θTxi))+(1−yi)log(1−g(θTxi))]
sigmoid函数导数形式为:
σ′(x)=σ(x)(1−σ(x))
参数第 j 个分量的梯度:
∂l(θ)∂θj=∑i=1m[yi1g∂g∂θj−(1−yi)11−g∂g∂θj]=∑i=1m[yi1gg′∂(θTxi)∂θj−(1−yi)11−gg′∂(θTxi)∂θj]=∑i=1m[yi1gg(1−g)xji−(1−yi)11−gg(1−g)xji]=∑i=1m(yi−g(θTxi))xji
由于要求最大似然,所以用梯度上升法:
θjk+1=θjk+η∑i=1m(yi−g(θTkxi))xji