第11章 经典机器学习工具箱

假设果园积累了几千棵果树的记录:叶片颜色、斑点面积、湿度、树龄,以及后来是否确诊病害。现在要根据新记录发出预警。

同一份表格可以交给许多算法。线性模型会寻找一条平滑边界;决策树会依次询问“湿度是否超过某值”“斑点是否够大”;最近邻会寻找历史上最相似的树;支持向量机会努力在两类之间留下更宽的间隔;随机森林则让许多略有不同的树共同投票。

它们看到相同的数据,却不一定给出相同答案。原因不只是程序写法不同,而是每种算法都预先限定了“什么样的规律更容易被学到”。这套限定叫作归纳偏置(inductive bias)。

如果完全不偏好任何规律,有限样本之外就没有依据选择一种预测而排除另一种。学习之所以可能,正是因为模型带着关于边界形状、相似性、平滑性或特征组合方式的假设。

同一份数据,不同的答案

第 9 章的逻辑回归偏好线性决策边界。这个偏置使模型快速、稳定、容易检查,也使它无法直接画出弯曲或彼此分离的多块区域。

决策树偏好由一连串条件切分出的矩形区域。最近邻偏好“相近输入往往有相近标签”。朴素贝叶斯偏好给定类别后特征近似独立。支持向量机偏好具有较大间隔的边界。不同偏置对不同数据结构有利。

这解释了一个常见现象:在某个数据集排行榜领先的算法,换到另一任务可能普通得多。模型与任务结构匹配,比算法名字是否新潮更重要。

Wolpert 与 Macready 的“无免费午餐”结果指出,在对所有可能问题作均匀平均的特定设定下,任何优化算法的优势都会被它在其他问题上的劣势抵消。(Wolpert 和 Macready 1997年) 这不表示现实中所有算法一样好,也不否定经验积累。现实任务并非随机遍历所有可能函数;图像有局部结构,语言有顺序,物理过程有连续性。结论要求我们说清:优势针对哪类数据分布和评价标准,而不是宣布一种算法永远最好。

核心机制

学习算法必须用结构假设缩小候选规律。归纳偏置决定哪些规律更容易表示、需要多少数据、怎样优化,以及在训练范围之外怎样延伸。模型选择就是在任务证据与这些偏置之间寻找匹配。

图 1: 同一份特征表与标签可以交给六类具有不同归纳偏置的方法:线性模型偏好全局平滑边界,最近邻依赖局部相似,决策树按特征阈值切分,朴素贝叶斯分解概率关系,核方法和支持向量机利用间隔与核相似度,集成方法组合多棵树或弱学习器。选择时还要比较边界形状、数据规模、错误代价和维护预算。

线性模型:先尝试最平的边界

线性回归和逻辑回归把特征按权重相加。它们表达能力有限,却常是可靠起点:训练快,所需数据相对少,权重和误差容易检查,也能通过正则化控制复杂度。

“线性”并不等于输入只能是原始数字。若加入温度平方、两个特征的乘积或类别编码,模型仍对这些新特征线性,却能形成更复杂的原始输入关系。关键是特征表示由谁提供。

线性模型的风险也很明确:真实关系弯曲时会欠拟合;特征高度相关时权重不稳定;不同量纲会影响正则化和优化;一个全局边界可能掩盖局部群体差异。

因此,线性基线的价值不只是争取高分。若复杂模型只比它好一点,却需要更多数据、计算和维护,项目可能没有获得足够收益;若复杂模型大幅领先,则说明数据中存在值得继续研究的非线性或交互结构。

最近邻:让相似样本作答

k 近邻(k-nearest neighbors, k-NN)几乎不显式训练参数。预测新样本时,它计算新样本与训练样本的距离,找到最近的 \(k\) 个邻居,再用投票或平均得到结果。Cover 与 Hart 对最近邻分类的性质作过经典分析。(Cover 和 Hart 1967年)

它把“相似案例应有相似答案”直接写进算法。但什么叫相似并不天然确定:年龄差 10 岁与收入差 1 万元不能未经缩放就比较;文本、图像和地理位置需要不同距离;无关特征会让最近的样本实际并不相似。

维度升高后,样本之间的距离常变得难以区分,有限数据在巨大空间里非常稀疏。这叫维度灾难的一种表现。k-NN 还要保存训练样本并在预测时搜索,训练看似便宜,推理成本却可能很高。

决策树:把判断写成一连串问题

一棵分类树从根节点开始选择问题,例如“湿度是否高于 75%”。数据被分到两边后,每一边继续选择问题,直到到达叶节点并给出类别或概率。

树的训练通常寻找能让子节点更“纯”的切分。若节点中类别比例为 \(p_1,\ldots,p_K\),常用的 Gini 不纯度是:

\[ G=1-\sum_{k=1}^{K}p_k^2 \]

节点全属一类时 \(G=0\);类别混合越均匀,不纯度越高。算法比较候选特征与阈值,选择能让加权不纯度下降较多的切分。CART 系统化了二叉树的生长与剪枝方法。(Breiman 等 1984年)

树能自动表达阈值和特征交互,也容易转成“如果……那么……”的阅读路径。但可读性有条件:一棵很深、拥有几百个节点的树并不比其他模型更透明。

若任由树生长,它能不断切分,甚至为少数异常样本建立专门叶子。训练误差下降,方差却上升。常见控制包括限制深度、要求叶节点有足够样本,或先长大再剪枝。树对数据的小变化也可能敏感:某个候选切分略有改变,后续整棵子树都会不同。

朴素贝叶斯:用概率分解复杂关系

第 10 章介绍的朴素贝叶斯,假设给定类别后各特征条件独立。这个假设往往不真实,却把难以估计的高维联合概率拆成许多一维概率。

在词袋文本分类等任务中,它可以用较少数据快速建立强基线。它还允许自然加入先验,并能清楚展示每个词对类别似然的贡献。代价是相关特征可能被重复计算,输出概率也可能过度自信。

把朴素贝叶斯与决策树并列,可以看到两种完全不同的取舍:前者用强概率分解换取稳定估计;后者通过逐步切分发现条件交互,却更容易追随样本波动。没有脱离数据规模、特征类型和评价目标的绝对胜负。

支持向量机:不只分开,还要留出间隔

若许多直线都能分开训练数据,应选哪一条?支持向量机(support vector machine, SVM)选择让两类最近样本到边界的距离尽量大的方向。Cortes 与 Vapnik 在 1995 年系统描述了软间隔支持向量网络。(Cortes 和 Vapnik 1995年)

离边界很远的样本通常不会决定最终位置;真正“支撑”边界的是靠近间隔的样本,因此叫支持向量。大间隔是一种稳定性偏置:边界不紧贴训练点,希望小扰动不至于立刻改变类别。

真实数据往往不能完全分开。软间隔 SVM 允许部分样本进入间隔甚至被错分,并用参数 \(C\) 权衡两种代价:

  • \(C\) 很大时,模型强烈惩罚训练错误,边界会更贴合训练样本;使用非线性核时,边界也可能更曲折、更敏感;
  • \(C\) 较小时,模型容忍一些错误,换取更宽间隔和更强正则化。

这里没有“越大越好”的方向。\(C\) 必须在独立验证数据上选择。

技术深潜:核方法怎样弯曲边界

线性 SVM 在特征空间中寻找超平面。若原始空间无法线性分开,可以先用映射 \(\phi(x)\) 把输入变到更高维,再计算内积:

\[ K(x_i,x_j)=\phi(x_i)\cdot\phi(x_j) \]

许多 SVM 计算只需要样本间内积,不必显式写出 \(\phi(x)\) 的每个坐标。一个合法的核函数(kernel)直接给出这个内积,这就是核技巧。这里的“合法”不是只要形式像相似度即可:对任意有限样本,由核值组成的 Gram 矩阵必须对称、半正定,才能对应某个特征空间中的内积。径向基核常写成:

\[ K(x_i,x_j)=\exp\!\left(-\gamma\lVert x_i-x_j\rVert^2\right) \]

它让相近样本具有较高相似度,原空间中的决策边界因而可以弯曲。\(\gamma\) 太大时,每个样本只影响很小邻域,容易过拟合;太小时,边界接近过度平滑。

核技巧不是免费获得无限表达力。训练通常需要大量样本两两比较,内存和计算会随样本数迅速增长;核与超参数选择仍是归纳偏置;输入距离若没有意义,径向核也不会自动修复。对超大数据,显式特征或神经网络常更容易扩展。

没有标签时:聚类寻找候选结构

监督学习的标签告诉模型要区分什么。没有标签时,聚类(clustering)尝试把相似样本分组,但“正确分组”不再唯一。

k-means 先指定簇数 \(K\),反复执行两步:把每个样本分给最近中心,再把每个中心移到所属样本的均值。它最小化簇内平方距离:

\[ \sum_{i=1}^{n}\lVert x_i-\mu_{c_i}\rVert^2 \]

\(c_i\) 是样本 \(i\) 的簇编号,\(\mu_{c_i}\) 是对应中心。MacQueen 在 1967 年讨论了这一类方法。(MacQueen 1967年)

这个目标偏好近似球形、尺度相近的簇。两个细长弯月形群体可能被错误切开;离群点会拉动均值;不同初始化可能得到不同局部解。更重要的是,算法发现的簇不自动等于自然类别、客户类型或生物亚种。研究者必须结合外部知识解释和验证。

聚类输出也可能影响人。若把客户分成“高价值”和“低价值”,名称与后续资源分配是人为决策,不是距离函数自己发现的事实。

降维:用较少坐标保留主要变化

高维数据难以观察,特征冗余也会增加计算和噪声。主成分分析(principal component analysis, PCA)寻找一组彼此正交的方向,使投影后的方差依次最大。它把原始相关特征重新组合成较少的主成分。Pearson 在 1901 年给出了相关几何思想。(Pearson 1901年)

PCA 可用于可视化、压缩和预处理,但“方差大”不等于“对任务重要”。一个方差很小的医学指标可能恰好决定罕见疾病;数据没有标准化时,量纲大的特征会主导方向;线性投影也无法完整展开弯曲流形。

降维不是从数据中删掉“无用信息”的自动按钮。它选择了要保留的结构,因而同样带着偏置。

集成学习:让多个不完美模型协作

单棵决策树容易随样本波动。集成学习(ensemble learning)训练多个模型,再合并预测,希望不同模型的错误不要完全相同。

Bagging 从训练集有放回抽取多份样本,每份训练一个模型,再投票或平均。Breiman 提出并系统分析了这种方法;对决策树等不稳定学习器,它常能通过平均降低预测方差并改善泛化。(Breiman 1996年)

随机森林在 bagging 基础上,让每个树节点只查看随机抽取的一部分特征,进一步增加树之间的差异。(Breiman 2001年) 单棵树可能普通,许多差异足够大的树平均后更稳定。

Boosting 则按顺序训练弱学习器,让后续模型更关注当前难以预测的样本,再把它们加权组合。AdaBoost 是经典例子。(Freund 和 Schapire 1997年) 现代梯度提升树沿着损失下降方向逐步添加树,在表格数据上经常表现强劲。

集成不是简单的“模型越多越好”。如果所有模型共享同一数据偏差,它们会一起犯错;树的数量、深度、学习率和采样方式仍需验证;预测解释、延迟和资源成本也会增加。

偏差与方差:两种不同的错误来源

一个过于僵硬的模型在不同训练集上都画出相似但错误的边界,常说它有高偏差(bias)。一个过于灵活的模型会追随训练样本的细小变化,不同数据集得到差异很大的边界,常说它有高方差(variance)。

增加模型复杂度通常能降低训练误差和某些结构偏差,却可能提高对数据波动的敏感度。正则化、剪枝、更多数据和集成方法,以不同方式改变这组平衡。

技术深潜:平方误差怎样分解

设观测满足 \(Y=f(x)+\varepsilon\),并且在给定 \(x\) 时噪声均值为 0、方差为 \(\sigma^2\)。训练集变化会使学到的预测 \(\hat f(x)\) 也变化。在固定输入 \(x\) 处,先把偏差和方差简记为:

\[ \begin{aligned} b(x)&=\mathbb{E}[\hat f(x)]-f(x) \\ v(x)&=\mathbb{E}\!\left[(\hat f(x)-\mathbb{E}[\hat f(x)])^2\right] \end{aligned} \]

于是,对训练集与新观测取平均,期望平方误差可以写成:

\[ \begin{aligned} \mathbb{E}\!\left[(Y-\hat f(x))^2\right] ={}&b(x)^2+v(x) \\ &+\sigma^2 \end{aligned} \]

右边三项依次是偏差平方、方差和不可约噪声。这个分解不是说所有损失、所有模型都能用同一条公式精确描述,但它提供了诊断语言:系统性方向错误与对样本波动敏感,是两种不同问题。

若训练误差与验证误差都高,可能需要更有表达力的特征或模型;若训练误差很低而验证误差明显高,可能需要更多数据、更强正则化或降低复杂度。实际还要排查分布变化、标签噪声和泄漏,不能把所有差距都叫作方差。

模型选择不是在测试集上比赛

面对许多算法和超参数,可靠流程通常是:

  1. 先确定部署场景与评价指标;
  2. 固定一个真正留到最后的测试集;
  3. 在训练数据内部训练模型;
  4. 用验证集或交叉验证选择算法、特征与超参数;
  5. 选择完成后,只在测试集上做有限次数的最终估计;
  6. 部署后继续监测分布、性能、校准和成本。

数据较少时,k 折交叉验证把训练数据分成 \(k\) 份,轮流用一份验证、其余训练,再汇总结果。它更充分利用数据,也能观察结果对切分的敏感度。

交叉验证不会自动修复错误边界。若同一患者的多次记录跨折出现、时间上未来信息泄漏到过去,或预处理在分折前已查看全部数据,所有折都可能一起虚高。特征缩放、缺失值填补、降维和特征选择都应在每个训练折内部拟合,再应用到对应验证折。

模型还要接受不止一个数字的检查:类别不平衡时准确率可能误导;概率用于决策时要看校准;高风险应用要分群体与场景检查错误;延迟、内存、可解释性和维护成本也属于选择条件。

工具箱真正提供的是什么

经典机器学习没有给出一个万能冠军,而是给出一组可比较的思考方式:

  • 线性模型问,简单的全局关系是否已经足够;
  • 近邻问,局部相似是否可靠;
  • 决策树问,哪些阈值和交互能逐步缩小不确定性;
  • 概率模型问,联合关系可以怎样分解;
  • SVM 问,哪条边界具有更稳定的间隔;
  • 聚类与降维问,没有标签时要保留哪种结构;
  • 集成方法问,怎样组合多个有差异的错误。

P03 将在后续实践部分使用同一表格数据比较决策树、SVM 与集成方法,记录训练时间、交叉验证波动、错误类型和超参数敏感度。实践开发后置,不影响继续阅读。

下一章会改变学习反馈。模型不再拿到每个状态的正确标签,而是选择行动、改变环境,再从可能延迟的奖励中判断刚才做得怎样。此时数据不再是静止表格,而由模型自己的行为参与生成。

本章小结

  • 归纳偏置规定模型优先考虑什么规律;没有偏置,有限样本之外就无法选择预测。
  • 无免费午餐结论要求限定任务分布,不等于现实中所有算法表现相同。
  • 线性模型、近邻、树、朴素贝叶斯和 SVM 分别偏好不同的边界、相似性与概率结构。
  • 核方法通过样本内积隐式使用高维特征,但仍有核选择、超参数和扩展成本。
  • 聚类与降维寻找的是目标函数定义的结构,不自动发现唯一真实类别或最重要信息。
  • Bagging、随机森林和 boosting 通过组合模型降低特定错误,但不能消除共同的数据偏差。
  • 偏差与方差区分系统性欠拟合和对样本波动敏感;诊断仍要结合噪声、泄漏与分布变化。
  • 模型与超参数应在训练/验证流程中选择,测试集只用于最终估计,预处理也必须遵守切分边界。

思考问题

  1. 如果两种模型测试准确率相同,一个预测快且稳定,另一个概率校准更好,应怎样根据应用选择?
  2. 为什么在聚类结果中给每一簇命名,会引入算法目标之外的人类判断?
  3. 一个随机森林的训练分数远高于交叉验证分数,你会优先检查哪些问题?

延伸阅读

  • Hastie、Tibshirani 与 Friedman 的教材系统比较线性方法、树、SVM、无监督学习与集成。(Hastie 等 2009年)
  • Bishop 的教材从概率与决策理论出发连接分类、核方法与模型选择。(Bishop 2006年)
  • Breiman 等人的 CART 专著适合深入理解树的生长、剪枝与评价。(Breiman 等 1984年)
  • Cortes 与 Vapnik 的论文是软间隔 SVM 的经典来源;阅读时可重点关注间隔与经验错误的权衡。(Cortes 和 Vapnik 1995年)
  • Wolpert 与 Macready 的论文需要结合其平均范围和假设阅读,避免把“无免费午餐”误解为“无需选择算法”。(Wolpert 和 Macready 1997年)

参考文献

Bishop, Christopher M. 2006年. Pattern Recognition and Machine Learning. Springer.
Breiman, Leo. 1996年. 《Bagging Predictors》. Machine Learning 24: 123~40. https://doi.org/10.1007/BF00058655.
Breiman, Leo. 2001年. 《Random Forests》. Machine Learning 45: 5~32. https://doi.org/10.1023/A:1010933404324.
Breiman, Leo, Jerome H. Friedman, Richard A. Olshen, 和 Charles J. Stone. 1984年. Classification and Regression Trees. Wadsworth International Group.
Cortes, Corinna, 和 Vladimir Vapnik. 1995年. 《Support-Vector Networks》. Machine Learning 20: 273~97. https://doi.org/10.1007/BF00994018.
Cover, Thomas M., 和 Peter E. Hart. 1967年. 《Nearest Neighbor Pattern Classification》. IEEE Transactions on Information Theory 13 (1): 21~27. https://doi.org/10.1109/TIT.1967.1053964.
Freund, Yoav, 和 Robert E. Schapire. 1997年. 《A Decision-Theoretic Generalization of On-Line Learning and an Application to Boosting》. Journal of Computer and System Sciences 55 (1): 119~39. https://doi.org/10.1006/jcss.1997.1504.
Hastie, Trevor, Robert Tibshirani, 和 Jerome Friedman. 2009年. The Elements of Statistical Learning: Data Mining, Inference, and Prediction. 2 版. Springer. https://doi.org/10.1007/978-0-387-84858-7.
MacQueen, J. B. 1967年. 《Some Methods for Classification and Analysis of Multivariate Observations》. Proceedings of the Fifth Berkeley Symposium on Mathematical Statistics and Probability 1: 281~97.
Pearson, Karl. 1901年. 《On Lines and Planes of Closest Fit to Systems of Points in Space》. The London, Edinburgh, and Dublin Philosophical Magazine and Journal of Science 2 (11): 559~72. https://doi.org/10.1080/14786440109462720.
Wolpert, David H., 和 William G. Macready. 1997年. 《No Free Lunch Theorems for Optimization》. IEEE Transactions on Evolutionary Computation 1 (1): 67~82. https://doi.org/10.1109/4235.585893.