传统机器学习概览
本页介绍传统机器学习在整个 AI 分类体系中的定位,以及它内部的两条正交分类轴。传统机器学习位于「符号主义 AI」之后、「深度学习」之前的主线上,是机器学习大类中不依赖深层神经网络的那一支。
机器学习(“machine learning”一词由 Arthur Samuel 1959 年提出)是 AI 的子领域:从数据中学习规律而非显式编程。Tom Mitchell 给出了更形式化的定义:如果一个程序在任务 上的性能 随经验 的增加而提升,则称它”从经验 中学习”。
“传统机器学习”是相对深度学习的约定俗成说法,指不依赖深层神经网络表示学习的方法(决策树、SVM、集成树等),学术界也称”浅层学习”或”统计学习方法”。与深度学习的判别经验:是否依赖手工特征工程 + 是否含多层可微分网络。
传统 ML 的本质可以概括为一个优化问题——在假设空间(Hypothesis Space,即所有候选模型的集合)中,找到一个使预测误差最小的函数 :
其中 是损失函数(Loss Function,衡量预测值与真实值差距的标量函数), 是数据分布。由于真实分布未知,我们用训练集上的经验风险(Empirical Risk,即训练集上的平均损失)来近似,并加入正则化项(Regularization,对模型复杂度的惩罚)防止过拟合:
这个框架(结构风险最小化,Structural Risk Minimization)涵盖了几乎所有传统 ML 算法:线性回归选 为均方误差,SVM 选合页损失,逻辑回归选对数损失,正则化项 则体现为 L1/L2 罚项或树的深度限制。
偏差-方差权衡
Section titled “偏差-方差权衡”理解传统 ML 的一个核心框架是偏差-方差分解(Bias-Variance Tradeoff)。模型的期望泛化误差可以分解为三部分:
- 偏差(Bias):模型自身的简化假设带来的系统性误差。线性模型拟合非线性数据时偏差高。
- 方差(Variance):不同训练集训练出的模型的波动。决策树很深时方差高。
传统 ML 的各种技巧本质上都在调节这个权衡:正则化降方差、增加特征降偏差、Bagging 降方差、Boosting 降偏差。理解这一点,才能理解为什么不同算法适用不同场景。
两条正交分类轴
Section titled “两条正交分类轴”机器学习内部有两条正交的分类轴,理解这一点是避免分类混乱的关键:
- 按监督信号分:监督(Supervised,每个样本有标签 )/ 无监督(Unsupervised,只有 无标签)/ 半监督(Semi-supervised,少量有标签 + 大量无标签);强化学习另列,见强化学习概览;
- 按方法论分(横切维度):集成学习(如何组合多个学习器)、概率图模型(如何表示概率依赖)——它们不是与监督/无监督互斥的类别。
传统机器学习├── 监督学习(Supervised Learning)│ ├── 线性模型:逻辑回归 [Cox 1958]│ ├── 基于实例:k-NN [Fix & Hodges 1951; Cover & Hart 1967]│ ├── 概率方法:朴素贝叶斯 [Maron 1961]│ ├── 决策树:ID3 [Quinlan 1986] → C4.5 [1993];CART [Breiman et al. 1984]│ ├── 最大间隔:SVM [Boser/Guyon/Vapnik 1992; Cortes & Vapnik 1995]│ └── 集成学习(横切维度,树集成为主)│ ├── Bagging 分支:Bagging [Breiman 1996] → 随机森林 [Ho 1995 前身; Breiman 2001]│ ├── Boosting 分支:AdaBoost [Freund & Schapire 1997] → GBDT [Friedman 2001]│ │ → XGBoost [Chen & Guestrin 2016] → LightGBM [2017] → CatBoost [2018]│ └── Stacking 分支 [Wolpert 1992]├── 无监督学习(Unsupervised Learning)│ ├── 聚类:K-means [Lloyd 1957]、层次聚类 [Ward 1963]、DBSCAN [Ester et al. 1996]、GMM+EM [Dempster et al. 1977]│ └── 降维:PCA [Pearson 1901; Hotelling 1933]、t-SNE [van der Maaten & Hinton 2008]├── 半监督学习:自训练 [Scudder 1965]、协同训练 [Blum & Mitchell 1998]、图半监督 [Zhu & Ghahramani 2002]└── 概率图模型(横切维度) ├── 有向图:贝叶斯网络 [Pearl 1988] ├── 无向图:马尔可夫随机场 [Geman & Geman 1984] ├── 动态贝叶斯网络:HMM [Baum & Petrie 1966] └── 判别式无向图:CRF [Lafferty et al. 2001]推荐的学习顺序:先掌握监督学习主干,再学集成学习与无监督学习,最后补半监督与概率图模型。下图中虚线表示横切维度——它们不按监督信号划分,而是”如何组合/表示模型”的元方法:
如何选择算法
Section titled “如何选择算法”面对实际问题,怎样快速决定用哪个传统 ML 算法?以下是一个实用的决策路线图:
速记口诀:表格数据先试随机森林,不行再调 GBDT;小数据精细建模试 SVM;文本分类试朴素贝叶斯;数据没有标签就聚类 + 降维。
各算法的适用场景速查
Section titled “各算法的适用场景速查”| 数据特征 | 首选算法 | 理由 |
|---|---|---|
| 中小规模表格数据(< 10 万行) | GBDT / XGBoost | 对特征缩放不敏感,自动处理非线性交互 |
| 需要强可解释性 | 决策树 / 逻辑回归 | 规则路径透明,可向业务方解释 |
| 高维稀疏文本 | 逻辑回归 / 朴素贝叶斯 | 稀疏矩阵友好,训练快 |
| 小样本高维(如基因数据) | SVM(RBF 核) | 间隔最大化在小样本下泛化好 |
| 无标签数据 | K-means / DBSCAN | 不需要标注,发现数据自然结构 |
| 需要特征压缩 | PCA / UMAP | 线性或非线性降维,加速后续训练 |
动手实践:一个完整流程
Section titled “动手实践:一个完整流程”以下用 scikit-learn 展示传统 ML 的典型工作流——从数据加载到模型评估,让你对整体过程建立直觉:
from sklearn.datasets import fetch_openmlfrom sklearn.model_selection import train_test_split, cross_val_scorefrom sklearn.ensemble import GradientBoostingClassifierfrom sklearn.metrics import classification_reportimport numpy as np
# 1. 加载数据(以信用卡欺诈检测为例,典型的类别不平衡场景)data = fetch_openml("creditcardfraud", version=1, as_frame=True)X, y = data.data, data.target.astype(int)
# 2. 划分训练/测试集(分层抽样,保持正负比例)X_train, X_test, y_train, y_test = train_test_split( X, y, test_size=0.2, stratify=y, random_state=42)
# 3. 训练模型(GBDT 对表格数据通常是强基线)model = GradientBoostingClassifier( n_estimators=100, max_depth=3, learning_rate=0.1, subsample=0.8, # 随机采样 80% 数据训练每棵树,降低方差 random_state=42)
# 4. 交叉验证评估(更稳健的性能估计)cv_scores = cross_val_score(model, X_train, y_train, cv=5, scoring="f1")print(f"5-Fold CV F1: {cv_scores.mean():.4f} ± {cv_scores.std():.4f}")
# 5. 在测试集上最终评估model.fit(X_train, y_train)y_pred = model.predict(X_test)print(classification_report(y_test, y_pred))实践要点:实际项目中,欺诈检测这类不平衡场景还需要结合过采样/欠采样技术,上述代码仅展示主干流程。对于大规模数据,应改用 LightGBM 或 XGBoost——它们在速度和内存上远优于 scikit-learn 的原生 GBDT。
互联网产品
- 垃圾邮件过滤:朴素贝叶斯根据邮件中关键词频率判断是否垃圾邮件,Gmail、Outlook 等邮箱服务的早期核心方案。朴素贝叶斯的核心假设是特征之间条件独立(即假设”免费”和”中奖”两个词是否出现互不影响),虽然这个假设在文本中几乎不成立,但实际效果出奇地好。
- 信用卡欺诈检测:逻辑回归和随机森林对交易金额、时间、地点等特征建模,实时拦截异常交易——PayPal、各大银行风控系统的标配。这类任务的难点在于正负样本比例可能达到 1:1000,需要专门的类别不平衡处理。
- 用户流失预测:决策树或 GBDT 分析用户登录频率、使用时长等行为特征,提前识别可能流失的用户并触发挽留策略,电信运营商和 SaaS 产品常用。
- 推荐系统协同过滤基线:矩阵分解(Matrix Factorization,将用户-物品交互矩阵分解为低维隐因子矩阵)是 Netflix 推荐大赛(2009)的夺冠方法,至今仍是很多推荐系统的冷启动 baseline。
金融与风控
- 信用评分:逻辑回归因输出天然为概率值、且模型高度可解释(监管要求能解释拒贷原因),至今仍是银行信用评分卡的首选模型。FICO 评分体系的核心就是逻辑回归。
- 量化交易因子挖掘:树模型(LightGBM / XGBoost)用于从数百个技术因子中学习非线性组合,生成交易信号。相比深度学习,树模型在小样本金融数据上更稳定、不易过拟合。
医疗与生物信息
- 疾病风险预测:逻辑回归和 Cox 比例风险模型用于从患者指标预测疾病发生概率,结果需要可解释以满足临床审查要求。
- 基因表达分类:SVM 在”样本少、特征多”(几千样本 vs 数万基因)的基因数据上表现优异,是生物信息学的工具箱常客。
工业与物联网
- 预测性维护:随机森林根据传感器振动、温度、压力等时序统计特征判断设备是否即将故障,提前预警减少停机损失。
- 质量控制:决策树模型将良品/次品的判别规则编码为可读的 if-then 规则,方便产线工程师理解。
典型类库与工具
Section titled “典型类库与工具”| 类库 | 语言 | 说明 |
|---|---|---|
| scikit-learn | Python | 最经典的传统 ML 库,覆盖分类、回归、聚类、降维几乎全部算法,入门首选。API 统一(fit / predict / transform),是整个 Python ML 生态的事实标准接口。 |
| XGBoost | C++/Python | 高性能梯度提升树库,Kaggle 竞赛与工业界表格数据的标配。支持 GPU 加速和分布式训练。 |
| LightGBM | C++/Python | 微软开源的高效梯度提升树,Leaf-wise 生长策略 + 直方图算法加速训练、内存占用低,适合亿级样本。 |
| CatBoost | Python | Yandex 开发的梯度提升树,原生支持类别特征(无需手动 One-Hot),Ordered Boosting 减少预测偏移。 |
| statsmodels | Python | 统计建模库,侧重线性回归、时间序列等统计推断与假设检验,输出详细的统计量(p 值、置信区间等)。 |
| SciPy(scipy.stats) | Python | SciPy 的统计模块,提供概率分布、假设检验等基础统计工具,是 scikit-learn 和 statsmodels 的底层依赖。 |
| AutoGluon-Tabular | Python | 亚马逊开源的 AutoML 巔工具,自动化模型选择与集成堆叠,在表格数据竞赛中表现突出。 |
| H2O.ai | Java/Python | 企业级开源 ML 平台,提供 AutoML、分布式训练和生产部署能力。 |
| 术语 | 英文 | 解释 |
|---|---|---|
| 特征工程 | Feature Engineering | 利用领域知识从原始数据构造有用特征的过程,是传统 ML 成败的关键 |
| 训练/验证/测试集 | Train/Validation/Test Set | 数据的三分法,分别用于学习参数、调优超参数和最终评估 |
| 过拟合 | Overfitting | 模型在训练集表现好但泛化差,学了噪声而非真实规律 |
| 欠拟合 | Underfitting | 模型太简单,连训练集上的规律都未能学到 |
| 交叉验证 | Cross-Validation | 反复划分数据训练与评估,以更稳健地估计模型泛化性能 |
| 超参数 | Hyperparameter | 训练前需人工设定的参数(如树深度、学习率),不由数据学出 |
| 损失函数 | Loss Function | 衡量单个预测值与真实值差距的标量函数,如 MSE(均方误差)、Cross-Entropy(交叉熵) |
| 经验风险 | Empirical Risk | 训练集上的平均损失,是真实期望风险的样本近似 |
| 正则化 | Regularization | 在目标函数中加入对模型复杂度的惩罚项,防止过拟合 |
| 泛化能力 | Generalization | 模型在未见过的数据上的表现能力,是 ML 追求的最终目标 |
| 假设空间 | Hypothesis Space | 算法所能考虑的所有候选模型的集合,如所有线性超平面 |
| 核方法 | Kernel Trick | 通过核函数隐式地将数据映射到高维空间,使线性方法处理非线性问题 |
2025-2026 前沿进展
Section titled “2025-2026 前沿进展”传统机器学习领域在深度学习浪潮中并未停滞,反而在表格数据(Tabular Data,结构化的行列数据)这一主战场上持续巩固优势。以下是近期的重要趋势:
树模型在表格数据上仍是王者
Section titled “树模型在表格数据上仍是王者”多项 2024-2025 年的系统性基准测试(包括 Grinsztajn, Oyallon & Varoquaux 的 NeurIPS 论文及后续工作)反复证实了一个结论:在中小规模(万级至百万级样本)结构化表格数据上,梯度提升树(GBDT)仍然稳定超越几乎所有深度学习方案。原因包括:表格数据天然不满足平移不变性(卷积不适用)、特征异构性强(数值+类别混合)、样本量不足以训练大网络。这使得 XGBoost、LightGBM、CatBoost 在工业界表格场景的地位进一步巩固。
表格基础模型(Tabular Foundation Models)的兴起
Section titled “表格基础模型(Tabular Foundation Models)的兴起”受 LLM in-context learning 的启发,2024-2025 年涌现了一批”表格基础模型”——用大量表格数据预训练 Transformer,使其在推理时直接对小样本新任务进行预测,无需微调:
- TabPFN(Hollmann et al.):基于 Transformer 的表格数据 in-context 分类器,在数百个样本的小数据集上匹敌甚至超越调参后的 GBDT,推理速度极快(秒级)。2025 年扩展版 TabPFN v2 将适用范围提升至万级样本。
- TabICL / TabSyn 等后续工作探索更大规模的表格预训练和无监督表格建模。
- CartLoad、Tabula 等探索表格数据的掩码预训练,类似 BERT 的”完形填空”范式应用于结构化数据。
这些工作试图回答一个根本问题:表格数据能否像图像和文本一样,受益于大规模预训练?目前结论是”可以,但优势主要体现在极小数据场景”。
保形预测(Conformal Prediction)走向主流
Section titled “保形预测(Conformal Prediction)走向主流”保形预测是一种分布无关(Distribution-free)的不确定性量化框架——它不需要对数据分布做任何假设,就能为任何预训练模型输出具有有限样本覆盖保证的预测区间。2024-2025 年,保形预测被集成到 AWS SageMaker、Google Vertex AI 等主流 ML 平台中,成为医疗诊断、自动驾驶、金融风控等高风险场景下”可信赖 ML”的标准组件。学术上,Angelopoulos & Bates 的教材《A Gentle Introduction to Conformal Prediction》使其从小众统计技术变为 ML 工程师的必备工具。
AutoML 的工业化成熟
Section titled “AutoML 的工业化成熟”自动化机器学习(AutoML,自动完成特征工程、模型选择、超参数调优、模型集成的全流程)从学术概念走向生产级工具:
- AutoGluon-Tabular(AWS)通过多层堆叠集成(Stacking),在零配置下即达到 Kaggle 顶级选手水平。
- FLAML(微软)侧重计算高效的 HPO(超参数优化),用低成本找到接近最优的配置。
- H2O Driverless AI 面向企业,提供自动特征工程 + 可解释性报告 + MLOps 部署。
2025 年的趋势是 AutoML 与 LLM 结合——用大语言模型自动理解数据列含义、生成特征工程代码、甚至撰写模型文档。
LLM 辅助的表格机器学习
Section titled “LLM 辅助的表格机器学习”大语言模型正在渗透传统 ML 工作流:
- 自动特征工程:LLM 读取数据列描述,自动生成领域特征(如从”出生日期”派生”年龄段”)。
- 数据清洗:LLM 识别异常值、推断缺失值的合理填充策略。
- 自然语言交互式建模:用户用自然语言描述需求(“帮我预测哪些客户会流失”),LLM 自动生成完整的 sklearn 代码管线。
这一方向目前仍处于早期,但在 Kaggle 等竞赛社区已有越来越多的实践。
因果机器学习(Causal ML)的工程化
Section titled “因果机器学习(Causal ML)的工程化”从”预测相关性”到”回答因果问题”的范式转变正在加速—— uplift modeling(增益模型,预测某个 treatment 对个体产生的因果效应)在营销归因、个性化医疗中被广泛采用。2025 年的进展包括 Meta 的 DoWhy/EconML 库生态成熟、以及 Double/Debiased Machine Learning(双重/去偏机器学习,用 ML 估计因果效应同时控制混淆变量)方法在 A/B 测试增量分析中的工业化应用。详见因果推断。
性能生态的多样化
Section titled “性能生态的多样化”传统 ML 的计算基础设施也在演进:
- Rust 生态:
linfa、smartcore等纯 Rust 实现的 ML 库出现,追求零开销抽象和内存安全,适合嵌入式和边缘场景。 - GPU 加速树模型:NVIDIA 的
cuml(RAPIDS 生态)和 XGBoost GPU 版使大规模树模型训练进一步提速。 - ONNX 导出:scikit-learn 和 XGBoost 模型可导出为 ONNX 格式,实现跨语言、跨平台推理部署。
概览与方法论
- 监督学习:从有标注数据学习输入到输出的映射,传统 ML 分类树的主干。
- 集成学习与随机森林:bagging / boosting / stacking 三条分支,随机森林的精确定位。
- 无监督学习:没有标准答案时让数据自己说话——聚类与降维的概览。
- 概率图模型与半监督学习:PGM 家族(贝叶斯网络、HMM、CRF)与半监督范式,及传统 ML 的分类边界争议。
应用与工程方向
- AutoML 与可解释 AI:自动选模型调参的全流程,以及为黑箱模型装上”解释器”。
- 推荐系统:协同过滤、矩阵分解到 Wide & Deep,互联网最赚钱的 AI 应用之一。
- 异常检测:找出”跟大多数不一样”的数据点,金融风控与工业故障预警的核心技术。
- 时间序列分析:从 ARIMA 到 LSTM/Transformer,按时间排列数据的规律发现与预测。
- 特征工程:数值、类别、时间、文本等各类特征的工程化方法——决定模型上限的关键环节。
- 类别不平衡处理:重采样、重加权、阈值调整与专门损失,解决欺诈检测等极端不平衡场景。
- 交叉验证与模型选择:K 折、分层 K 折、时序 CV 等变体,以及超参搜索的正确用法。
- 排序学习:搜索引擎与推荐系统的排序核心——Pointwise / Pairwise / Listwise 三大流派。
- BM25 与全文检索:全文搜索引擎的默认相关性评分算法,关键词检索与向量检索混合(RAG)的关键一环。
- 因果推断:潜在结果框架、随机对照试验、观察性研究,从相关性预测走向因果决策。
监督学习经典算法详解
- 逻辑回归:用 sigmoid 将线性模型输出压缩为概率的二分类基线模型。
- 线性回归:用直线(超平面)拟合变量关系,所有 ML 算法的鼻祖。
- 决策树:用”是/否”问题递归切分数据,随机森林与 GBDT 的基础构件。
- 朴素贝叶斯:基于贝叶斯定理与条件独立假设的概率分类器,文本分类经典首选。
- k 近邻:不训练模型、预测时找最近 k 个邻居投票的”懒学习”代表作。
- SVM 支持向量机:最大间隔与核方法的代表,小数据精细建模的利器。
集成与无监督算法详解