8.1 预测问题与模型家族
前面的章节把原始数据整理成了可信变量和可解释图形。机器学习又多做了一步:从已知样本中学习规律,再为结果尚未揭晓的新样本做预测。“尚未揭晓”是整套流程的核心——模型必须在真实决策时刻运行,不能借用未来才出现的信息。
先写预测契约,再选算法
“用 AI 减少配送延迟”只是业务愿望,还不是建模问题。先把它改写成包含五项内容的预测契约(prediction contract):
| 契约字段 | 配送示例 | 作用 |
|---|---|---|
| 预测单位 | 每笔已派单的订单 | 定义一行数据和一次预测 |
| 预测时刻 | 派单刚完成时 | 划定特征可用性的时间边界 |
| 目标 | 是否超过 45 分钟送达 | 定义标签 |
| 预测期限 | 接下来的 45 分钟 | 说明结果何时揭晓 |
| 行动 | 考虑提前改派 | 让预测服务于具体决策 |
这样,问题就变成:“对每笔刚派单的订单,它会不会超过 45 分钟才送达?”目标只有两个离散结果,因此这是二分类(binary classification)。若目标改成配送分钟数,输出是连续数值,就属于回归(regression);若输出低、中、高等多个离散类别,则属于多分类。
在监督学习(supervised learning)中,历史样本同时包含输入 与已知目标 。模型学习一个函数:
其中 是预测值,不是真实观测。无监督学习(unsupervised learning)没有指定目标 ;例如把客户划分成相似群体属于探索任务,并不会自动回答“订单是否延迟”。无监督结果可能有价值,但不能替代监督问题的明确标签。
预测契约还能阻止“模型准确、行动无用”的错位。送达后再预测配送时长可能很准,却已经来不及改派;一个 45 分钟风险分数即使数学上成立,如果没有人能据此行动,也没有业务闭环。打开 scikit-learn 之前,先回答四个问题:
1. 哪个对象会收到一次预测?
2. 预测必须在哪一刻产生?
3. 目标何时、以什么规则被确认?
4. 谁会根据输出改变什么决策?
比较归纳偏置、模型容量与 Dummy 基线
算法并不是一个中立容器。每个模型家族(model family)都有自己的归纳偏置(inductive bias):它预先假设某些规律比另一些更容易出现。
- 线性回归假设预测可以写成特征的加权和;逻辑回归用线性决策边界形成类别概率。它们速度快、容易正则化,也较容易解释,但纯线性边界无法表达所有交互。
- 决策树不断按阈值切分特征空间,天然适合阈值和交互;不受限制的树也很容易记住小样本细节。
- 最近邻模型根据相似训练样本做预测,可以表达局部形状,但对特征尺度非常敏感,在高维空间也容易失效。
- 集成模型组合多个模型来降低偏差或方差,常常很强大;但再复杂的组合也修不好错误目标、泄漏特征或不真实的数据划分。
每次实验都应先建立 Dummy 基线。DummyRegressor 可以始终预测训练集均值或中位数;DummyClassifier 可以始终预测训练集多数类,或按训练集类别比例生成预测。如果学习模型无法稳定超过这条简单规则,就还没有证明数据中存在可用信号。
from sklearn.dummy import DummyClassifier
baseline = DummyClassifier(strategy="most_frequent")
baseline.fit(X_train, y_train)
baseline_predictions = baseline.predict(X_valid)模型容量(capacity)描述它能表达多复杂的函数。容量太小会欠拟合(underfitting):训练与验证表现都差,因为模型连主要信号也表达不了。容量过大可能过拟合(overfitting):训练表现继续上升,验证表现却停滞或下降,因为模型开始记忆样本噪声。
要在同一数据划分上同时比较训练与验证结果:
| 现象 | 可能诊断 | 合理行动 |
|---|---|---|
| 训练低、验证也低 | 欠拟合或特征太弱 | 改善特征,或增加恰当容量 |
| 训练很高、验证明显较低 | 过拟合/高方差 | 加强正则化、降低容量或增加代表性数据 |
| 二者都超过基线且间隙有限 | 可能具备泛化能力 | 继续检查多折结果和部署切片 |
对带正则化的模型来说,树深或正则化强度等超参数(hyperparameter)由分析者选择;系数、切分阈值等拟合参数(parameter)则从训练数据中学得。模型家族和超参数都不能根据最终测试分选择。8.3 与 8.4 节会建立一套保持选择过程诚实的隔离机制。
不存在对所有问题都最好的模型家族。第一轮比较最好只放入少量、偏置各异且说得清理由的候选,并让它们使用完全相同的划分与指标。Dummy 规则、简单线性模型和受约束的非线性模型,往往比一张庞大排行榜更有诊断价值。
预测契约已经说明要预测什么、何时预测。下一节会把这条边界落实到特征矩阵中,防止目标、未来信息或预处理统计量偷偷进入 。