逻辑回归Logistic Regression

本文深入解析逻辑回归模型,涵盖逻辑斯谛分布、模型参数估计、正则化策略、sklearn实现及常见解法。探讨了似然函数、梯度下降、牛顿法等优化算法,并对比了L1与L2正则化差异。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

逻辑斯谛分布

分布函数F(x)=P(X≤x)=11+e−(x−μ)/γF(x)=P(X\leq x)=\frac{1}{1+e^{-(x-\mu)/\gamma}}F(x)=P(Xx)=1+e(xμ)/γ1
累积密度函数f(x)=F′(x)=f(x)=F'(x)=f(x)=F(x)=

回归模型

假设数据服从伯努利分布
P(Y=1∣x)=exp(−ωx)1+exp(−ωx)P(Y=0∣x)=11+exp(−ωx)P(Y=1\mid x)=\frac{exp(-\omega x)}{1+exp(-\omega x )} \\ P(Y=0\mid x)=\frac{1}{1+exp(-\omega x ) }P(Y=1x)=1+exp(ωx)exp(ωx)P(Y=0x)=1+exp(ωx)1
一个事件发生的几率(odds)为p1−p\frac{p}{1-p}1pp,几率越大,事件越有可能发生。
对逻辑回归而言,有logit(p)=logp1−p=logP(Y=1∣x)1−P(Y=0∣x)=ωx+blogit(p)=log\frac{p}{1-p}=log\frac{P(Y=1\mid x)}{1-P(Y=0\mid x)}\\ =\omega x+b logit(p)=log1pp=log1P(Y=0x)P(Y=1x)=ωx+b
即,逻辑回归用线性模型估计几率的对数,逻辑回归本质上是类线性模型,属于广义线性模型(GLM)。

模型参数估计

训练数据集T={(x1,y1),(x2,y2),...,(xN,yN)}T=\{(x_1,y_1),(x_2,y_2),...,(x_N,y_N)\}T={(x1,y1),(x2,y2),...,(xN,yN)}可以用极大似然估计法求参数
P(Y=1∣x)=σ(x), P(Y=0∣x)=1−σ(x)P(Y=1\mid x)=\sigma(x), \ P(Y=0\mid x)=1-\sigma(x)P(Y=1x)=σ(x), P(Y=0x)=1σ(x)
似然函数为∏i=1N[σ(xi)]yi[1−σ(xi)]1−yi\prod_{i=1}^{N}[\sigma(x_i)]^{y_i}[1-\sigma(x_i)]^{1-y_i}i=1N[σ(xi)]yi[1σ(xi)]1yi
取对数不改变函数单调性,且便于计算L(ω)=∑i=1N[yilogσ(ωxi)+(1−yi)log(1−σ(ωxi))] =∑i=iN[yi(ωxi)−log(1+eωxi)]L(\omega)=\sum_{i=1}^N[y_ilog \sigma(\omega x_i)+(1-y_i)log(1-\sigma(\omega x_i))] \\\ =\sum_{i=i}^N[y_i(\omega x_i)-log(1+e^{\omega x_i})]L(ω)=i=1N[yilogσ(ωxi)+(1yi)log(1σ(ωxi))] =i=iN[yi(ωxi)log(1+eωxi)]
要求L(ω)L(\omega)L(ω)的极大值,等价于求−L(ω)-L(\omega)L(ω)的最小值
此时优化函数为凸函数,且约束条件没有限制,凸优化问题。
若采用梯度下降法

tips:最大似然估计此时等价于log损失函数(交叉熵)

损失函数梯度方向为
∂L∂ωj=∑i=1Nxj(i)(yi−σ(ωxi))\frac{\partial L}{\partial \omega_j}=\sum_{i=1}^Nx^{(i)}_j(y_i-\sigma (\omega x_i)) ωjL=i=1Nxj(i)(yiσ(ωxi))
其中yi−σ(ωxi)y_i-\sigma (\omega x_i)yiσ(ωxi)即为预测残差
∂L∂ω=(∂L∂ω1,∂L∂ω2,...,∂L∂ωm)\frac{\partial L}{\partial \omega}=(\frac{\partial L}{\partial \omega_1},\frac{\partial L}{\partial \omega_2},...,\frac{\partial L}{\partial \omega_m})ωL=(ω1L,ω2L,...,ωmL)
更新公式为w′=w−α∂L∂ωw' = w-\alpha \frac{\partial L}{\partial \omega}w=wαωL

正则化

正则化意义:防止过拟合,加快求解
L1范数:绝对值,抗干扰能力更强。L1正则项不可微
L2范数:绝对值的平方,L2正则项可微
区别:
L1正则化,假设变量服从Laplace分布,偏向于使一些权重变为零,产生稀疏的特征矩阵,有利于直观上的特征选择。减少模型特征数量,从而防止过拟合。
L2正则化,假设变量服从Gaussian分布,偏向于使所有权重尽量小。权重过大会导致对应的导数也过大,从而使得模型的波动性很强,容易产生过拟合,所以控制权重大小可以有效增加模型稳定性,减小模型复杂程度,从而防止过拟合。

sklearn实现

sklearn.linear_model.LogisticRegression
可选参数

参数含义
C正则项系数倒数
penaltyl1或l2正则,l1时对求解方法有限制
dual求解优化方法
fit_interceptbool型,是否需要截距项
class_weight类别权重,'balanced’自动计算,或规定的整数
random_state是否打乱数据
solver求解算法选择,注意正则项及数据规模
multi_class多分类时方法OVR,multinomial

lr.coef_ : 模型系数
lr.intercept_ : 模型截距

逻辑回归常用解法

当选用l2正则化时,loss为凸函数,各个解法均收敛。l1正则化时,loss非凸,最优解并不唯一(?),每次训练的模型参数不一定相同。

梯度下降法(SGD,SAG)

全部样本或随机选取样本,延梯度下降方向前进学习率步长。
速度慢,常数阶收敛,且收敛速度越来越慢,需要人为调整学习率参数。
适合大规模样时使用,标准化可加速收敛。

牛顿与各种拟牛顿法

二阶收敛,需计算二阶Hessian矩阵的逆,计算量大。
找Hessian矩阵的近似可加快迭代速度,如lbfgs(limited memory bfgs),bfgs,Trust Region(表现较好)。

conjugate gradient共轭梯度法

运用一阶梯度信息,每次下降的方向与之前方向共轭,每次都取当前方向上的极小值,不需要设定迭代步长,若迭代n次之后,还不满足精确条件,需重新调整方向,再产生一组共轭方向。

坐标轴下降法

当损失函数在各个坐标轴都取极值时,损失函数本身也取极值。
coordinate descent,能处理l1,l2正则,小数据集时速度快。
coordinate descent可拓展到分布式计算中

小细节

  1. 特征标准化后的回归系数即为特征的权重,逻辑回归可解释性极强
  2. 若要提供可解释性,应在训练模型之前筛选特征,相关性强的特征只保留一个
  3. 重复的高相关特征对模型精度不会产生太大影响,但会减慢模型训练速度,若追求精度,可以不筛选特征,全部带入
  4. 特征标准化后可加速sgd的收敛速度
  5. 逻辑回归可作为总模型最后的融合模型使用
  6. 由于形式简单,逻辑回归通常对特征的需求很高,需提前进行处理,如评分卡模型
  7. 逻辑回归是一种广义线性模型GLM(generalized linear model)
  8. sgd时batchsize大于1时,样本应横向排列,X=x1Tx2T⋮xnT(1) X=\begin{matrix} x_1^T\\ x_2^T \\ \vdots \\ x_n^T \end{matrix} \tag{1} X=x1Tx2TxnT(1)
    此时的一阶梯度为XT(σ(Xω)−y)X^T(\sigma(X \omega)-y)XT(σ(Xω)y)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值