Skip to content

机器学习基础

本页解决什么:解释机器学习如何从数据中学习规律,以及训练集、验证集、测试集、过拟合、泛化、特征和标签为什么是 PM 判断方案靠谱与否的关键。
机器学习从数据、特征、模型到评估的基础闭环图
机器学习项目的关键不是模型名,而是数据、标签、特征、验证集和泛化能力。
训练集、验证集、测试集与过拟合、泛化、数据漂移的关系图
训练集让模型学习,验证集用于调参,测试集用于模拟未知样本;三者混用会让评估失真。

基本原理

机器学习让系统从数据中学习输入到输出的映射,而不是把规则全部手写出来。监督学习用已标注样本学习分类或回归;无监督学习在无标签数据中发现结构;强化学习通过奖励信号学习序列决策策略。

机器学习的关键不是“模型越复杂越好”,而是数据是否能代表真实问题,特征是否包含有效信息,评估方式是否匹配业务目标。传统 ML 在表格数据、小样本、可解释性要求高的场景中仍然非常实用。

传统机器学习与深度学习架构的关系

机器学习是“从数据中学习规律”的方法总称,神经网络是其中一种模型家族,深度学习则是使用多层神经网络学习复杂表示。CNN、RNN 和 Transformer 都属于深度学习架构,但关注的信息关系不同:CNN 关注局部空间,RNN 传递时间状态,Transformer 用注意力连接全局上下文。

数据与任务首选基线需要复杂架构时再考虑
结构化表格、小中样本线性模型、随机森林、GBDTMLP、Tabular Transformer
图像、视频和空间网格传统视觉、预训练 CNNViT、时空 Transformer
短时序和实时流统计特征、1D CNNRNN、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))

这个示例展示机器学习的基本闭环:数据 -> 划分 -> 训练 -> 预测 -> 评估。

下一步

维知 Wiki · 面向应用工程的 AI 知识与训练系统