【机器学习】逻辑回归(Linear Regression)模型推导
LR中文翻译作逻辑斯蒂回归,用于二分类。为什么回归和分类搅在一起了呢。因为可以这样想:线性回归 y=θTx 得到的结果是一个实数。如果我们将这个结果“压缩”到 [0,1] 之间,那么就可以表示概率接近1的程度,进而可以用来二分类。
最简单的“压缩”可以是单位阶跃函数:
σ(x)=11+e−x
hθ(xi)=p(yi=1|xi)=σ(θTxi)=11+e−θTxi
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)
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))]
∂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
但单位阶跃函数是不连续的,在求导的过程中会产生问题。所以,我们用sigmoid函数来近似单位阶跃函数:
可以看到,在0附近其函数值变化较快。
从而我们得到:
- 样本
xi 属于1的概率:
- 样本
xi 属于0的概率:
将两式合并:
对所有样本取最大似然:
记
取对数得:
sigmoid函数导数形式为:
参数第 j 个分量的梯度:
由于要求最大似然,所以用梯度上升法: