跳到内容

5.2 逻辑回归、Log Loss 与阈值:概率模型和行动规则是两层

现在工坊要预测任务是否请求紧急补给。直接用线性回归会给出小于 0 或大于 1 的值。逻辑回归把线性 predictor 映射为条件概率,再由决策层根据成本和容量选择阈值。

本课目标

  • 从 Bernoulli likelihood 推导 binary cross-entropy;
  • 用 log-odds 解释系数与线性边界;
  • 处理 separation、类别失衡和数值稳定;
  • 分开 discrimination、calibration 与 threshold utility。

1. 从 log-odds 建模

令 $p(x)=P(Y=1\mid X=x)$:

$$ \log\frac{p(x)}{1-p(x)}=x^T\beta, $$

因此:

$$ p(x)=\sigma(x^T\beta)=\frac1{1+e^{-x^T\beta}}. $$

对特征 $x_j$ 增加 1(其他设计列保持),odds 乘以 $e^{\beta_j}$。这不是概率增加 $\beta_j$;概率变化依赖当前 $p$。

交互和非线性 basis 会让原始输入空间边界变复杂,但在 design features 上 log-odds 仍线性。

2. Bernoulli likelihood 与 log loss

对 $y_i\in{0,1}$:

$$ P(y_i\mid x_i)=p_i^{y_i}(1-p_i)^{1-y_i}. $$

负平均 log-likelihood:

$$ \mathcal L=-\frac1n\sum_i[y_i\log p_i+(1-y_i)\log(1-p_i)]. $$

它对自信但错误的概率惩罚很大,是 proper scoring rule。训练 accuracy 不可微且忽略置信程度,不适合作为标准 logistic objective。

数值实现直接算 log(sigmoid(z)) 会 overflow/underflow,应使用 stable logaddexp/softplus 或库的 logits loss。

3. 逻辑回归不要求线性可分

数据不可线性分时,模型仍可找到最大 likelihood/正则化解,只是边界无法完美分类。真正的特殊问题是 perfect/quasi separation:某方向能把训练类别完全隔开时,无正则 MLE 系数可能趋向无穷,有限数值解不稳定。

可采用:

  • L2/L1 正则;
  • 收集边界附近样本;
  • 合并稀疏类别;
  • Firth correction 等专门估计(推断场景);
  • 检查泄漏导致的“完美特征”。

训练 accuracy 100% 可能是 separation,也可能是泄漏。

4. 0.5 不是通用阈值

模型输出 $p$,行动规则选择 threshold $t$:

$$ \hat y=\mathbf1[p\ge t]. $$

若概率已校准,成本稳定且二元动作简单,可从 false-positive/false-negative 成本推导阈值;真实系统还有审核容量、群体约束和不确定性。

阈值必须在 validation 上选择,test 只评估冻结规则。上线后基准率变化会使最优阈值和 precision 改变。

5. 类别失衡改变怎样评估

类别少并不自动要求 resampling。先用:

  • log loss/Brier score 看概率;
  • precision-recall 与 recall at capacity;
  • confusion matrix 的分子分母;
  • 与 prevalence/业务规则 baseline 比较。

class_weight="balanced" 改变训练 objective,使少数类 loss 权重更大;它不凭空增加信息,输出概率也可能需要在原目标分布重新 calibration。Oversampling 同样会改变训练先验。

6. Discrimination 与 calibration

  • discrimination:正例通常是否排在负例前面;
  • calibration:预测 0.2 的样本长期约有 20% 为正;
  • decision utility:在具体阈值/行动下是否有价值。

AUC 高的模型可能概率过于自信;校准好的弱模型也可能排序不足。报告 reliability curve、Brier/log loss、分组/时间 calibration,并与基准率比较。

Calibration 方法(Platt/logistic、isotonic 等)必须用未训练 base model 的数据或交叉拟合,不能在训练拟合概率上再校准。

7. 多分类 Softmax

对互斥 $K$ 类:

$$ P(Y=k\mid x)=\frac{e^{z_k}}{\sum_{j=1}^Ke^{z_j}}. $$

logits 对共同常数不敏感,参数需要 reference 或约束避免不可识别。数值计算使用 log-sum-exp trick。

  • multinomial/softmax 共同训练类别;
  • one-vs-rest 训练 K 个二分类器,概率不天然和为 1;
  • multilabel 问题不应使用互斥 softmax。

8. 缺失、未知类别与截距漂移

类别词表、填充值和 scaling 必须进入 pipeline。部署 prevalence 变化时,即使 likelihood ratio 关系稳定,intercept/calibration 也会改变。监控:

  • score/logit 分布;
  • prevalence 与 label delay;
  • calibration-in-the-large(平均预测 vs 实际率);
  • calibration slope;
  • 群体/时间误差。

9. 系数解释边界

Odds ratio 常被误读成 risk ratio,尤其结果常见时差异明显。非线性 feature、interaction 和正则化使单系数更难独立解释。

预测模型中的条件关联不等于因果。用群体变量改善 calibration/公平性的决定,还涉及适用法律、政策和伤害权衡。

常见误区

  • 逻辑回归要求数据线性可分:不可分仍可拟合;完全可分反而使无正则 MLE 发散。
  • Sigmoid 输出天然校准:模型错设和 regularization 会失准。
  • 类别不均衡就用 class weight:先从决策指标和目标分布判断。
  • 阈值固定为 0.5:应由成本、容量和验证选择。

练习

  1. 将一个系数转为 odds ratio,并在不同基准概率下计算概率变化。
  2. 制造 perfect separation,观察无正则与 L2 解。
  3. 比较 class weighting 前后的 AUCPR 与 calibration。
  4. 在固定审核容量下选择阈值,再用独立 test 评估。

小结

逻辑回归把线性 predictor 解释为 log-odds,并用 Bernoulli likelihood 学概率。概率是否可信、阈值是否合适和行动是否有价值,需要分三层验证。

下一课回到求解过程:凸目标也可能因尺度和 conditioning 难以优化,正则项还会改变目标与系数语义。

Built with VitePress | Software Systems Atlas