正则逻辑回归

在介绍正则逻辑回归之前,先来介绍一下普通的逻辑回归。

1.逻辑回归

逻辑回归虽然叫回归,但其实是分类模型,同时也是一种判别式模型。(不理解概念的同学可以查看:判别式模型和生成式模型的区别 )。

假设现在有 w 1 , w 2 , . . . , w k w_1,w_2,...,w_k w1,w2,...,wk一共 K K K种类别,X为描述样本个体的特征向量, X = ( X 1 , X 2 , . . . , X p ) T X=(X_1,X_2,...,X_p)^T X=(X1,X2,...,Xp)T。观测到一组带标签的样本为: ( x 1 , z 1 ) , ( x 2 , z 2 ) . . . ( x n , z n ) {(x_1,z_1),(x_2,z_2)...(x_n,z_n)} (x1,z1),(x2,z2)...(xn,zn),每一个 x i x_i xi都包含p个特征值,并且:
z i k = { 1 , 如 果 x i ∈ w k 0 , 如 果 x i ∉ w k \begin{aligned} z_{ik}= \left\{ \begin{array}{lr} 1, 如果x_i\in w_k&\\ &\\ 0,如果x_i\notin w_k \end{array} \right. \end{aligned} zik=1,xiwk0,xi/wk

那么 Z i Z_i Zi满足多项式分布: Z i Z_i Zi~ M ( p 1 ( x i ) , . . . , p k ( x i ) ) M(p_1(x_i),...,p_k(x_i)) M(p1(xi),...,pk(xi))
p l ( x i ) = p ( w l ∣ x i ) = p ( w l ∣ x i ; β ) , ∀ l = 1 , . . . , K \begin{aligned} p_l(x_i)=p(w_l|x_i)=p(w_l|x_i;\beta), \forall l=1,...,K \end{aligned} pl(xi)=p(wlxi)=p(wlxi;β),l=1,...,K

2.参数估计

我们的目标就是估算后验概率 P ( w k ∣ x ) P(w_k|x) P(wkx)。使用到的模型是:
P ( w k ∣ x ) = e x p ( β k T x ) 1 + ∑ l = 1 K − 1 e x p ( β l T x ) , ∀ k = 1 , . . . , K − 1 P ( w k ∣ x ) = 1 1 + ∑ l = 1 K − 1 e x p ( β l T x ) , ∀ k = K \begin{aligned} &P(w_k|x)=\frac{exp(\beta_k^Tx)}{1+\sum_{l=1}^{K-1}exp(\beta_l^Tx)}, \forall k=1,...,K-1 \\ &P(w_k|x)=\frac{1}{1+\sum_{l=1}^{K-1}exp(\beta_l^Tx)} , \forall k=K \end{aligned} P(wkx)=1+l=1K1exp(βlTx)exp(βkTx),k=1,...,K1P(wkx)=1+l=1K1exp(βlTx)1,k=K

我们的目标变成对于每一个类别 w k w_k wk,计算它的参数 β k T \beta_k^T βkT。令 β = ( β 1 , . . . , β K ) T \beta =(\beta_1,...,\beta_K)^T β=(β1,...,βK)T,我们可以通过最大似然估计法来估计 β \beta β的值。

L ( β ∣ ( x i , z i ) i = 1 , 2 , . . . , n ) = ∏ i = 1 n ∏ k = 1 K ( p k ( x i ) ) z i k \begin{aligned} L(\beta|(x_i,z_i)_{i=1,2,...,n})=\prod_{i=1}^{n}\prod_{k=1}^{K}(p_k(x_i))^{z_{ik}} \end{aligned} L(β(xi,zi)i=1,2,...,n)=i=1nk=1K(pk(xi))zik

3.二分类问题

从简单的二分类问题入手。

假设现在有 w 1 , w 2 w_1,w_2 w1,w2一共 2 2 2种类别,X为描述样本个体的特征向量, X = ( X 1 , X 2 , . . . , X p ) T X=(X_1,X_2,...,X_p)^T X=(X1,X2,...,Xp)T。观测到一组带标签的样本为: ( x 1 , z 1 ) , ( x 2 , z 2 ) . . . ( x n , z n ) {(x_1,z_1),(x_2,z_2)...(x_n,z_n)} (x1,z1),(x2,z2)...(xn,zn),每一个 x i x_i xi都包含p个特征值,并且:
z i k = { 1 , 如 果 x i ∈ w 1 0 , 如 果 x i ∈ w 2 \begin{aligned} z_{ik}= \left\{ \begin{array}{lr} 1, 如果x_i\in w_1&\\ &\\ 0,如果x_i\in w_2 \end{array} \right. \end{aligned} zik=1,xiw10,xiw2

扫描二维码关注公众号,回复: 11945790 查看本文章

那么 Z i Z_i Zi满足二项分布: Z i Z_i Zi~ B ( p 1 ( x i ) ) B(p_1(x_i)) B(p1(xi))
p 1 ( x i ) = p ( w 1 ∣ x i ) = p ( w 1 ∣ x i ; β ) = e x p ( β T x ) 1 + e x p ( β T x ) p 2 ( x i ) = p ( w 2 ∣ x i ) = 1 − p 1 ( x i ) = 1 1 + e x p ( β T x ) \begin{aligned} &p_{1}(x_i)=p(w_1|x_i)=p(w_1|x_i;\beta)=\frac{exp(\beta^Tx)}{1+exp(\beta^Tx)} \\ &p_2(x_i)=p(w_2|x_i)=1-p_1(x_i)=\frac{1}{1+exp(\beta^Tx)} \end{aligned} p1(xi)=p(w1xi)=p(w1xi;β)=1+exp(βTx)exp(βTx)p2(xi)=p(w2xi)=1p1(xi)=1+exp(βTx)1
因此,我们只有一个参数向量 β \beta β需要估计,使用最大似然估计法:
( p 1 ( x i ) p_{1}(x_i) p1(xi)简写为 p ( x i ) p(x_i) p(xi))

L ( β ∣ d a t a ) = ∏ i = 1 n p ( x i ) z i ∗ ( 1 − p ( x i ) ) 1 − z i l n L ( β ∣ d a t a ) = ∑ i = 1 n ( z i ∗ l n p ( x i ) + ( 1 − z i ) ∗ l n ( 1 − p ( x i ) ) ) ∵ p ( x i ) = e x p ( β T x ) 1 + e x p ( β T x ) ∴ ∂ p ( x i ) ∂ β = x i e x p ( β T x i ) ( 1 + e x p ( β T x ) ) 2 = x i p ( x i ) ( 1 − p ( x i ) ) ∴ ∂ l n L ( β ∣ d a t a ) ∂ β = ∑ i = 1 n ( z i ∗ p ′ ( x i ) p ( x i ) + ( 1 − z i ) ∗ − p ′ ( x i ) 1 − p ( x i ) ) = ∑ i = 1 n ( z i ∗ x i ( 1 − p ( x i ) ) − ( 1 − z i ) ∗ x i p ( x i ) ) = ∑ i = 1 n x i ( z i − p ( x i ) ) = X T ( Z − P ) w i t h   X = [ x 11 x 12 . . . x 1 p . . . . . . . . . . . . x n 1 x n 2 . . . x n p ] , Z = [ z 1 . . . z n ] , P = [ p ( x 1 ) . . . p ( x n ) ] \begin{aligned} L(\beta|data)&=\prod_{i=1}^{n}p(x_i)^{z_i}*(1-p(x_i))^{1-z_i} \\ lnL(\beta|data)&=\sum_{i=1}^n(z_i*lnp(x_i)+(1-z_i)*ln(1-p(x_i))) \\ \because p(x_i)&=\frac{exp(\beta^Tx)}{1+exp(\beta^Tx)} \\ \therefore \frac{\partial p(x_i)}{\partial \beta}&=\frac{x_iexp(\beta^Tx_i)}{(1+exp(\beta^Tx))^2}=x_ip(x_i)(1-p(x_i)) \\ \therefore \frac{\partial lnL(\beta|data)}{\partial \beta}&=\sum_{i=1}^n(z_i *\frac{p'(x_i)}{p(x_i)}+(1-z_i)*\frac{-p'(x_i)}{1-p(x_i)}) \\ &=\sum_{i=1}^n(z_i*x_i(1-p(x_i))-(1-z_i)*x_ip(x_i)) \\ &=\sum_{i=1}^nx_i(z_i-p(x_i)) \\ &= X^T(Z-P) \quad with \ X= \begin{bmatrix} x_{11} & x_{12} & ... & x_{1p} \\ ... & ... & ...& ... \\ x_{n1} & x_{n2} & ...& x_{np} \end{bmatrix} , Z= \begin{bmatrix} z_1 \\ ... & \\ z_n \end{bmatrix} , P=\begin{bmatrix} p(x_1) \\ ... & \\ p(x_n) \end{bmatrix} \\ \end{aligned} L(βdata)lnL(βdata)p(xi)βp(xi)βlnL(βdata)=i=1np(xi)zi(1p(xi))1zi=i=1n(zilnp(xi)+(1zi)ln(1p(xi)))=1+exp(βTx)exp(βTx)=(1+exp(βTx))2xiexp(βTxi)=xip(xi)(1p(xi))=i=1n(zip(xi)p(xi)+(1zi)1p(xi)p(xi))=i=1n(zixi(1p(xi))(1zi)xip(xi))=i=1nxi(zip(xi))=XT(ZP)with X=x11...xn1x12...xn2.........x1p...xnp,Z=z1...zn,P=p(x1)...p(xn)
因为 β ^ = arg ⁡ max ⁡ β l n L ( β ∣ d a t a ) \hat{\beta}=\mathop{\arg\max}_{\beta}lnL(\beta|data) β^=argmaxβlnL(βdata),要使 ∂ l n L ( β ∣ d a t a ) ∂ β = 0 \frac{\partial lnL(\beta|data)}{\partial \beta}=0 βlnL(βdata)=0,则 Z − P = 0 Z-P=0 ZP=0,但是由于 p ( x i ) p(x_i) p(xi)的公式是非线性的,因此我们无法直接求出 β \beta β的值。因此使用梯度上升的数值优化方法。-梯度和梯度上升/下降法

β 0 \beta_0 β0开始,对于 t = 0 , 1 , 2... t=0,1,2... t=0,1,2...,计算
P t = [ p ( x 1 ∣ β t ) . . . p ( x n ∣ β t ) ] P_t=\begin{bmatrix} p(x_1|\beta_t) \\ ... & \\ p(x_n|\beta_t) \end{bmatrix} Pt=p(x1βt)...p(xnβt) ∇ l n L t = X T ( Z − P t ) \nabla lnL_t=X^T(Z-P_t) lnLt=XT(ZPt) H t = − X T W t X w i t h W t = d i a g ( P t ( 1 − P t ) ) H_t=-X^TW_tX \quad with \quad W_t=diag(P_t(1-P_t)) Ht=XTWtXwithWt=diag(Pt(1Pt)) β t + 1 = β t − ( H t ) − 1 ∇ l n L t = β t + ( X T W t X ) − 1 X T ( Z − P t ) \beta_{t+1}=\beta_t-(H_t)^{-1}\nabla lnL_t=\beta_t+(X^TW_tX)^{-1}X^T(Z-P_t) βt+1=βt(Ht)1lnLt=βt+(XTWtX)1XT(ZPt)
在计算出参数 β \beta β的取值后,对于另一给定的 x x x,如果算出 p ( w 1 ∣ x ) = 0.6 p(w_1|x)=0.6 p(w1x)=0.6,则表示有 60 % 60\% 60%的机率 x x x属于 w 1 w_1 w1类别,有 40 % 40\% 40%的机率 x x x属于 w 2 w_2 w2类别,那么将预测 x x x属于 w 1 w_1 w1类别。

4.正则化

正则化的目的是避免过拟合的情况。

方法一:给 β \beta β设置一个先验概率,例如正态分布 β \beta β ~ N ( 0 , λ − 1 I d p ) N(0,\lambda^{-1}I_{dp}) N(0,λ1Idp)
Π ( β ) = ( 2 π ) ( − p / 2 ) e x p ( − λ 2 β T β ) \Pi (\beta)=(2\pi)^{(-p/2)}exp(-\frac{\lambda}{2}\beta^T\beta) Π(β)=(2π)(p/2)exp(2λβTβ)
如果 λ \lambda λ的值很小,那么正态分布的方差会很大, β \beta β的取值会有很大的可能偏离0。

根据贝叶斯定理,我们可以得出:
Π ( β ∣ ( x i , z i ) , λ ) = l n L ( β ∣ − ) + l n Π ( β ) ∝ ∑ i = 1 n ( z i ∗ l n p ( x i ) + ( 1 − z i ) ∗ l n ( 1 − p ( x i ) ) ) − λ 2 ∣ ∣ β ∣ ∣ 2 \Pi (\beta|(x_i,z_i),\lambda)=lnL(\beta|-)+ln\Pi(\beta) \propto \sum_{i=1}^n(z_i*lnp(x_i)+(1-z_i)*ln(1-p(x_i))) -\frac{\lambda}{2}||\beta||^2 Π(β(xi,zi),λ)=lnL(β)+lnΠ(β)i=1n(zilnp(xi)+(1zi)ln(1p(xi)))2λβ2 和之前的式子比,最后一项 − λ 2 ∣ ∣ β ∣ ∣ 2 -\frac{\lambda}{2}||\beta||^2 2λβ2是一个惩罚项。

方法二:给 β \beta β设置一个Laplace先验概率,最后的结果会是: Π ( β ∣ ( x i , z i ) , λ ) = l n L ( β ∣ − ) − λ ∑ j = 0 p ∣ β j ∣ \Pi (\beta|(x_i,z_i),\lambda)=lnL(\beta|-)-\lambda\sum_{j=0}^p|\beta_j| Π(β(xi,zi),λ)=lnL(β)λj=0pβj
最后一项仍旧是一个惩罚项。

猜你喜欢

转载自blog.csdn.net/weixin_46148223/article/details/108802612