Logistic Regression (LR) 详解
最近忙着准备面试,偶然发现同学Q君在很认真地看LR(Logistics Regression),不由得心生蔑视,这么简单的模型有什么好研究的?结果Q君扔出几个问题给我,一时竟回答不出,殊不知LR也有那么深的学问,本不想深究,直到我看到了这个:
LR跟最大熵模型还有关系的吗?LR比线性回归好不是理所当然吗?LR还能并行?看完这些问题,一脸懵逼的窝,还想着去腾讯呢,碰到rickjin面试我不是死定了?感觉自己弱爆了,不得已四处搜刮资料,最终整理了这么一份关于LR的资料,有自己的见解和推导,也有别人的成果(我会在最后给出链接),作为机器学习从业者(伪)的自我修养。
目录
一、Logistic 分布
1.1 逻辑斯蒂分布
F(x)=P(X⩽x)=11+e−(x−μ)/γ F ( x ) = P ( X ⩽ x ) = 1 1 + e − ( x − μ ) / γ
f(x)=1γe−(x−μ)/γ(1+e−(x−μ)/γ)2 f ( x ) = 1 γ e − ( x − μ ) / γ ( 1 + e − ( x − μ ) / γ ) 2
二、LR 原理
2.1 二项逻辑斯蒂回归
P(y=0|x)=11+ew⋅x P ( y = 0 | x ) = 1 1 + e w ⋅ x
P(y=1|x)=ew⋅x1+ew⋅x P ( y = 1 | x ) = e w ⋅ x 1 + e w ⋅ x
2.2 多项逻辑斯蒂回归
P(y=k|x)=ewk⋅x1+∑K−1k=1ewk⋅x P ( y = k | x ) = e w k ⋅ x 1 + ∑ k = 1 K − 1 e w k ⋅ x
P(y=K|x)=11+∑K−1k=1ewk⋅x P ( y = K | x ) = 1 1 + ∑ k = 1 K − 1 e w k ⋅ x
三、LR loss函数求解
3.1 基于对数似然损失函数
对数似然损失函数为 L(Y,P(Y|X))=−logP(Y|X) L ( Y , P ( Y | X ) ) = − log P ( Y | X ) 。
对于LR来说,单个样本的对数似然损失函数可以写成如下形式:
L(yi,p(yi|xi))=⎧⎩⎨⎪⎪−logexp(w⋅x)1+exp(w⋅x)=log(1+e−w⋅x)=log(1+e−y^i),−log11+exp(w⋅x)=log(1+ew⋅x)=log(1+ey^i),yi=1yi=0 L ( y i , p ( y i | x i ) ) = { − log exp ( w ⋅ x ) 1 + exp ( w ⋅ x ) = log ( 1 + e − w ⋅ x ) = log ( 1 + e − y ^ i ) , y i = 1 − log 1 1 + exp ( w ⋅ x ) = log ( 1 + e w ⋅ x ) = log ( 1 + e y ^ i ) , y i = 0
综合起来,写成同一个式子:
L(yi,p(yi|xi))=yilog(1+e−w⋅x)+(1−yi)log(1+ew⋅x) L ( y i , p ( y i | x i ) ) = y i log ( 1 + e − w ⋅ x ) + ( 1 − y i ) log ( 1 + e w ⋅ x )
于是对整个训练样本集而言,对数似然损失函数是:
J(w)=1N∑i=1N{
yilog(1+e−w⋅x)+(1−yi)log(1+ew⋅x)} J ( w ) = 1 N ∑ i = 1 N { y i log ( 1 + e − w ⋅ x ) + ( 1 − y i ) log ( 1 + e w ⋅ x ) }
除此以外,还有下面这种形式,它也是logloss,只不过 y y 取 。分析一下它的构成,对于 (xi,yi=1) ( x i , y i = 1 ) ,若预测 f(xi)≈1 f ( x i ) ≈ 1 ,则loss接近于0,对于 (xi,yi=−1) ( x i , y i = − 1 ) ,若 f(xi)≈−1 f ( x i ) ≈ − 1 ,loss也接近于0。
J(w)=1N∑i=1Nlog(1+e−yi⋅f(xi)) J ( w ) = 1 N ∑ i = 1 N log ( 1 + e − y i ⋅ f ( x i ) )
3.2 基于极大似然估计
设 p(y=1|x)=p(x) p ( y = 1 | x ) = p ( x ) , p(y=0|x)=1−p(x) p ( y = 0 | x ) = 1 − p ( x ) ,假设样本是独立同分布生成的,它们的似然函数就是各样本后验概率连乘:
L(w)=P(y|w,x)=∏i=1N