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),转换为概率,分数大的概率大。

posted on 2016-04-13 19:00  xiaojyan  阅读(129)  评论(0)    收藏  举报