Skip to content

逻辑回归 (Logistic Regression)

核心思想

逻辑回归是一种广义线性模型,通过 Sigmoid 函数将线性组合映射到概率空间 (0,1),用于二分类或多分类任务。虽名为"回归",实则是一个分类器。

模型定义

线性部分

给定输入 xRd ,线性得分为:

z=wTx+b=j=1dwjxj+b

Sigmoid 函数

Sigmoid(逻辑函数)将任意实数映射到 (0,1)

σ(z)=11+ez

其导数具有优雅的自引用形式:

σ(z)=σ(z)(1σ(z))

概率输出

正类后验概率:

P(y=1x)=σ(wTx+b)

负类后验概率:

P(y=0x)=1σ(wTx+b)

对数几率 (Log-Odds)

逻辑回归对对数几率(logit)建模为线性函数:

lnP(y=1x)P(y=0x)=wTx+b

这意味着决策边界 wTx+b=0 是一个超平面。

极大似然估计 (MLE)

似然函数

对于训练集 {(xi,yi)}i=1N,假设样本独立同分布,似然函数为:

L(w,b)=i=1NP(yixi)=i=1Np^iyi(1p^i)1yi

其中 p^i=σ(wTxi+b)

对数似然 → 交叉熵损失

取对数并加负号,得到要最小化的交叉熵损失:

L(w,b)=1Ni=1N[yilnp^i+(1yi)ln(1p^i)]

梯度推导

交叉熵对参数 wj 的偏导数:

Lwj=1Ni=1N(p^iyi)xij

向量形式:

wL=1NXT(p^y)

推导过程

Lwj=1Ni=1N[yiσ(zi)σ(zi)xij+(1yi)σ(zi)1σ(zi)xij]

利用 σ(z)=σ(z)(1σ(z))

=1Ni=1N[yi(1p^i)(1yi)p^i]xij=1Ni=1N(p^iyi)xij

梯度下降更新

wwηwL

其中 η 为学习率。

多分类扩展:Softmax 回归

对于 K 个类别,使用 Softmax 函数:

P(y=kx)=ewkTx+bkj=1KewjTx+bj

损失函数变为多类交叉熵:

L=1Ni=1Nk=1K1(yi=k)lnP(yi=kxi)

代码对应

bash
python -m pipelines.classification.logistic_regression