LR 是 Logistic Regression Classifier,本质上是线性回归,特殊之处在于特征到结果的映射中加入了一层逻辑函数 g(z) 是 sigmoid 函数。因此逻辑回归 = 线性回归 + sigmoid。
线性回归公式:
y = w T x + b y = w^Tx + b y=wTx+b
有时候为了方便,将权值向量和输入向量加以扩充,仍记作 w , x w, x w,x 即 w = ( w ( 1 ) , w ( 2 ) , . . . , w ( n ) , b ) , x = ( x ( 1 ) , x ( 2 ) , . . . , x ( w ) , 1 ) w = (w^{(1)}, w^{(2)}, ... , w^{(n)}, b), x = (x^{(1)}, x^{(2)}, ... , x^{(w)}, 1) w=(w(1),w(2),...,w(n),b),x=(x(1),x(2),...,x(w),1)
即:
y = w x y = wx y=wx
sigmoid 公式:
σ ( x ) = 1 1 + e − x \sigma(x) = \frac{1}{1+e^{-x}} σ(x)=1+e−x1
因此,逻辑回归的公式:
π ( x ) = 1 1 + e − w T x \pi(x) = \frac{1}{1+e^{-w^Tx}} π(x)=1+e−wTx1
逻辑回归的优点:
假设数据集为:
D a t a : ( x i , y i ) i = 1 N Data:({{x}_{i}},{{y}_{i}})_{i=1}^{N} Data:(xi,yi)i=1N
其中: x i ∈ R p , y ∈ 0 , 1 {{x}_{i}}\in {{\mathbb{R}}^{p}},y\in 0,1 xi∈Rp,y∈0,1
线性回归是将向量 x x x 映射为具体的数值 y (连续),而逻辑回归是用来解决分类问题(通常为二分类问题),希望得到0或1的概率(概率区间为[0, 1]),即通过某种方式将数值 y 映射到区间 [0, 1] 范围内。逻辑回归采用 sigmoid 函数来完成这样的映射,从而建立 y 与 x 之间的概率判别模型
P ( Y ∣ X ) P(Y|X) P(Y∣X)
有
p 1 = P ( y = 1 ∣ x ) = 1 1 + e − w T x p1=P(y=1|x)=\frac{1}{1+e^{-w^Tx}} p1=P(y=1∣x)=1+e−wTx1
p 0 = p ( y = 0 ∣ x ) = 1 − P ( y = 1 ∣ x ) = e − w T x 1 + e − w T x p0 = p(y=0|x) = 1 - P(y=1|x) = \frac{e^{-w^Tx}}{1+e^{-w^Tx}} p0=p(y=0∣x)=1−P(y=1∣x)=1+e−wTxe−wTx
得到
P ( Y ∣ X ) = p 1 Y p 0 1 − Y , Y ∈ 0 , 1 P(Y|X) = p_1^Yp_0^{1-Y}, Y∈0,1 P(Y∣X)=p1Yp01−Y,Y∈0,1
对应的似然函数为
∏ i = 1 N P ( y i ∣ x i ) \prod\limits_{i=1}^{N}{P({{y}_{i}}|{{x}_{i}})} i=1∏NP(yi∣xi)
取对数,得到对数似然函数:
L ( w ) = ∏ i = 1 N log P ( y i ∣ x i ) = ∑ i = 1 N ( y i log p 1 + ( 1 − y i ) log p 0 ) = ∑ i = 1 N ( y i ( log p 1 − log ( 1 − p 1 ) ) + log ( 1 − p 1 ) ) = ∑ i = 1 N ( y i log p 1 1 − p 1 + log ( 1 − p 1 ) ) = ∑ i = 1 N ( y i ( w T x i ) + log e − w T x i 1 + e − w T x i ) = ∑ i = 1 N ( y i ( w T x i ) + log 1 1 + e w T x i ) = ∑ i = 1 N ( y i ( w T x i ) − log ( 1 + e w T x i ) \begin{aligned} L(w) & =\prod\limits_{i=1}^{N}{\log P({{y}_{i}}|{{x}_{i}})} \\ & =\sum\limits_{i=1}^{N}{({{y}_{i}}\log {{p}_{1}}+(1-{{y}_{i}})\log {{p}_{0}})} \\ & =\sum\limits_{i=1}^{N}{({{y}_{i}}(\log {{p}_{1}}-\log (1-{{p}_{1}}))+\log (1-{{p}_{1}}))} \\ & =\sum\limits_{i=1}^{N}{({{y}_{i}}\log \frac{{{p}_{1}}}{1-{{p}_{1}}}+\log (1-{{p}_{1}}))} \\ & =\sum\limits_{i=1}^{N}{({{y}_{i}}({{w}^{T}}{{x}_{i}})+\log \frac{{{e}^{-{{w}^{T}}{{x}_{i}}}}}{1+{{e}^{-{{w}^{T}}{{x}_{i}}}}})} \\ & =\sum\limits_{i=1}^{N}{({{y}_{i}}({{w}^{T}}{{x}_{i}})+\log \frac{1}{1+{{e}^{{{w}^{T}}{{x}_{i}}}}})} \\ & =\sum\limits_{i=1}^{N}{({{y}_{i}}({{w}^{T}}{{x}_{i}})-\log (1+{{e}^{{{w}^{T}}{{x}_{i}}}})} \\ \end{aligned} L(w)=i=1∏NlogP(yi∣xi)=i=1∑N(yilogp1+(1−yi)logp0)=i=1∑N(yi(logp1−log(1−p1))+log(1−p1))=i=1∑N(yilog1−p1p1+log(1−p1))=i=1∑N(yi(wTxi)+log1+e−wTxie−wTxi)=i=1∑N(yi(wTxi)+log1+ewTxi1)=i=1∑N(yi(wTxi)−log(1+ewTxi)
对 L ( w ) L(w) L(w) 求极大值(即极大似然估计值),即可得到 w w w 的估计值
w ^ = arg max w L ( w ) \hat{w}=\underset{w}{\mathop{\arg \max }}\,L(w) w^=wargmaxL(w)
这样,问题就变成了以对数似然函数为目标的最优化问题,可采用梯度下降法或拟牛顿法。
令
π ( w T x i ) = 1 1 + e − w T x \pi(w^Tx_i) = \frac{1}{1+e^{-w^Tx}} π(wTxi)=1+e−wTx1
此时梯度
∂ L ( w ) ∂ w = ∂ ∂ w [ ∑ i = 1 N ( y i ( w T x i ) − log ( 1 + e w T x i ) ) ] = ∑ i = 1 N ( y i x i − x i e w T x i 1 + e w T x i ) = ∑ i = 1 N ( y i − e w T x i 1 + e w T x i ) x i = ∑ i = 1 N ( y i − 1 1 + e − w T x i ) x i = ∑ i = 1 N ( y i − π ( w T x i ) ) x i \begin{aligned} \frac{\partial L(w)}{\partial w} & =\frac{\partial }{\partial w}[\sum\limits_{i=1}^{N}{({{y}_{i}}({{w}^{T}}{{x}_{i}})-\log (1+{{e}^{{{w}^{T}}{{x}_{i}}}}))}] \\ & =\sum\limits_{i=1}^{N}{({{y}_{i}}{{x}_{i}}-\frac{{{x}_{i}}{{e}^{{{w}^{T}}{{x}_{i}}}}}{1+{{e}^{{{w}^{T}}{{x}_{i}}}}})} \\ & =\sum\limits_{i=1}^{N}{({{y}_{i}}-\frac{{{e}^{{{w}^{T}}{{x}_{i}}}}}{1+{{e}^{{{w}^{T}}{{x}_{i}}}}})}{{x}_{i}} \\ & =\sum\limits_{i=1}^{N}{({{y}_{i}}-\frac{1}{1+{{e}^{-{{w}^{T}}{{x}_{i}}}}})}{{x}_{i}} \\ & =\sum\limits_{i=1}^{N}{({{y}_{i}}-\pi ({{w}^{T}}{{x}_{i}}))}{{x}_{i}} \\ \end{aligned} ∂w∂L(w)=∂w∂[i=1∑N(yi(wTxi)−log(1+ewTxi))]=i=1∑N(yixi−1+ewTxixiewTxi)=i=1∑N(yi−1+ewTxiewTxi)xi=i=1∑N(yi−1+e−wTxi1)xi=i=1∑N(yi−π(wTxi))xi
因为求的是最大似然估计值,所以采用梯度上升法:
w j : = w j + α ∑ i = 1 N ( y i − π ( w T x i ) ) x i j {{w}_{j}}:={{w}_{j}}+\alpha \sum\limits_{i=1}^{N}{({{y}_{i}}-\pi ({{w}^{T}}{{x}_{i}}))}x_{i}^{j} wj:=wj+αi=1∑N(yi−π(wTxi))xij
[1]【关于 逻辑回归】那些你不知道的事
[2]《统计学习方法第二版》