Appearance
机器学习基础
本页解决什么:解释机器学习如何从数据中学习规律,以及训练集、验证集、测试集、过拟合、泛化、特征和标签为什么是 PM 判断方案靠谱与否的关键。
基本原理
机器学习让系统从数据中学习输入到输出的映射,而不是把规则全部手写出来。监督学习用已标注样本学习分类或回归;无监督学习在无标签数据中发现结构;强化学习通过奖励信号学习序列决策策略。
机器学习的关键不是“模型越复杂越好”,而是数据是否能代表真实问题,特征是否包含有效信息,评估方式是否匹配业务目标。传统 ML 在表格数据、小样本、可解释性要求高的场景中仍然非常实用。
传统机器学习与深度学习架构的关系
机器学习是“从数据中学习规律”的方法总称,神经网络是其中一种模型家族,深度学习则是使用多层神经网络学习复杂表示。CNN、RNN 和 Transformer 都属于深度学习架构,但关注的信息关系不同:CNN 关注局部空间,RNN 传递时间状态,Transformer 用注意力连接全局上下文。
| 数据与任务 | 首选基线 | 需要复杂架构时再考虑 |
|---|---|---|
| 结构化表格、小中样本 | 线性模型、随机森林、GBDT | MLP、Tabular Transformer |
| 图像、视频和空间网格 | 传统视觉、预训练 CNN | ViT、时空 Transformer |
| 短时序和实时流 | 统计特征、1D CNN | RNN、LSTM、GRU |
| 长文本、代码和多模态 | 规则/检索基线、预训练模型 | Transformer、LLM |
需要看懂各类模型内部信息流时,进入模型核心架构。应用工程不要求手推卷积或注意力公式,但应知道每种架构依赖什么数据、适合什么输出、成本在哪里、何时会失败。
解决的问题
| 方法 | 解决的问题 | 典型模型 |
|---|---|---|
| 监督学习 | 已有输入和标签,希望预测新样本 | 逻辑回归、随机森林、GBDT、SVM |
| 无监督学习 | 没有标签,希望发现分组、异常或低维结构 | KMeans、DBSCAN、PCA |
| 强化学习 | 行动会影响未来状态,需要最大化长期奖励 | Q-learning、Policy Gradient |
AIMA 学习问题分类
AIMA 将学习放在智能体框架中理解:智能体通过经验改进其性能。监督学习对应从样本输入输出对中学习函数;无监督学习对应发现隐藏结构;强化学习对应在环境反馈中学习行动策略;概率学习则处理不确定性和信念更新。
| 学习类型 | AIMA 视角 | 现代常用技术 |
|---|---|---|
| 监督学习 | 从示例中学习预测函数 | 线性模型、树模型、神经网络 |
| 无监督学习 | 从数据中发现结构 | 聚类、降维、表示学习 |
| 强化学习 | 从奖励中学习策略 | Q-learning、Policy Gradient、Actor-Critic |
| 概率学习 | 在不确定性下更新信念 | 贝叶斯网络、朴素贝叶斯、概率图模型 |
数据与泛化
机器学习项目的核心不是“换一个更炫的模型”,而是训练数据和真实业务是否一致。
| 概念 | PM 应理解的含义 | 常见问题 |
|---|---|---|
| 训练集 | 模型用来学习的样本 | 标签不准、样本偏、数据泄漏 |
| 验证集 | 调参数和选模型用的样本 | 被反复调参污染,变成训练集 |
| 测试集 | 最后评估泛化能力的样本 | 不代表真实线上分布 |
| 特征 | 输入中对预测有帮助的信息 | 特征不可获取、上线时延迟太高 |
| 标签 | 模型学习的目标答案 | 标注标准不一致,业务定义变化 |
| 过拟合 | 在训练集表现好,换数据就差 | Demo 好看,上线不稳定 |
| 泛化 | 对新样本仍然有效 | 需要独立测试集和线上反馈验证 |
产品评审时优先问数据问题:数据从哪里来、标签谁给、错误样本是否覆盖、上线后分布是否会变。多数 AI 项目的瓶颈不是模型名,而是数据质量、标注一致性和评估口径。
应用场景
- 金融风控:违约预测、欺诈识别、额度评估。
- 制造设备:故障预测、工况聚类、异常检测。
- 营销运营:客户分群、转化率预测、推荐排序。
- 实验数据:把图像测量得到的特征和实验结果做统计建模。
Python 库
| 库 | 用途 | 适用边界 |
|---|---|---|
numpy / pandas | 数值计算和表格数据处理 | 数据清洗、特征构建 |
scikit-learn | 传统 ML、预处理、评估 | 中小规模任务和基线模型 |
xgboost / lightgbm | 高性能树模型 | 表格预测、排序、风控 |
statsmodels | 统计建模 | 解释性和统计检验 |
最小示例
python
from sklearn.datasets import load_breast_cancer
from sklearn.model_selection import train_test_split
from sklearn.ensemble import RandomForestClassifier
from sklearn.metrics import classification_report
X, y = load_breast_cancer(return_X_y=True)
X_train, X_test, y_train, y_test = train_test_split(
X, y, test_size=0.2, random_state=42, stratify=y
)
model = RandomForestClassifier(n_estimators=200, random_state=42)
model.fit(X_train, y_train)
pred = model.predict(X_test)
print(classification_report(y_test, pred))这个示例展示机器学习的基本闭环:数据 -> 划分 -> 训练 -> 预测 -> 评估。
下一步
- 需要理解神经网络、CNN、RNN 和 Transformer:看模型核心架构。
- 需要理解概率和阈值:看 概率与不确定性。
- 要判断分类/预测方案怎么验收:看 评估与风险。
- 如果数据是图像或视频:看 计算机视觉与 OpenCV。
