1 开宗名义:逻辑回归是一个分类算法而不是回归算法,但是因为逻辑回归采用了回归算法,所以该算法的名字叫做逻辑回归。
2 逻辑回归模型的定义:
2.1 预先的定义:
X -> n维实变量 Y->{1,0} (Y->{1,-1} 类似)
P(Y=1|x)=p P(Y=0|x)=1-p
<w,x> 表示w与x的内积,x->(1,X)是n+1维,w也是n+1维。
2.2 回归方程:
按照线性回归的方法,表达式应该是:
Y=<w,x>
由于Y的取值只能是0,1,线性方程不可能做到,所以需要改进。
P(Y)=<w,x>
由于P(Y)的取值范围在0,1之间,线性方程也不可能做到,需要继续改进。
我们需要引入一个函数可以将P(Y)映射到实数集,我们选用 logit(x)=log(x/(1-x)) , x->[0,1]
最终得回归表达式为:
logit(p)=<w,x> 或 p=exp(<w,x>)/(1+exp(<w,x>))
3 逻辑回归参数的确定:
我们使用log损失函数 -logP(Y|X) 来确定逻辑回归的参数,即找出w使得-logP(Y|X)最小。
P(Y=1|x,w)=exp(<w,x>)/(1+exp(<w,x>))=exp(y*<w,x>)/(1+exp(<w,x>))
P(Y=0|x,w)=1/(1+exp(<w,x>))=exp(y*<w,x>)/(1+exp(<w,x>))
综上,P(Y|x,w)=exp(y*<w,x>)/(1+exp(<w,x>))
w=min-logP(Y1|X1)*...P(Yn|Xn)=-min(log(exp(y1*<w,x1>)/(1+exp(<w,x1>))+...+log(exp(yn*<w,xn>)/(1+exp(<w,xn>))))
=min(log(1+exp(<w,x1>))-y1*<w,x1>+log(1+exp(<w,xn>))-y1*<w,xn>)
log损失函数的背后原理是最大似然估计。
L(w)=P(Y1=1|X1)^Y1*P(Y1=0|X1)^(1-Y1)*...*P(Yn=1|Xn)^Yn*P(Yn=0|Xn)^(1-Yn)
l(w)=logL(w)=Y1*logP(Y1=1|X1)+(1-Y1)logP(Y1=0|X1)+...+Yn*logP(Yn=1|Xn)+(1-Yn)logP(Yn=0|Xn)
=Y1*log(exp(<w,x1>)/1+exp(<w,x1>))+(1-Y1)log(1/1+exp(<w,x1>))+...+Yn*log(exp(<w,xn>)/1+exp(<w,xn>))+(1-Yn)log(1/1+exp(<w,xn>))
=Y1*<w,x1>-log(1+exp(<w,x1>))+...+Yn*<w,xn>-log(1+exp(<w,xn>))
w=max(Y1*<w,x1>-log(1+exp(<w,x1>))+...+Yn*<w,xn>-log(1+exp(<w,xn>)))
4 多维扩展:
softmax
softmax(y) = exp(yi)/sum(exp(yi))
将输出y的scores(一般被叫做logits),转换为概率,分数大的概率大。
浙公网安备 33010602011771号