跳到主要内容

机器学习基础

核对日期:2026-05-13。

1. 阶段目标

本阶段目标是掌握经典机器学习的完整工程闭环:从业务问题出发,定义任务、准备数据、构造特征、训练模型、评估效果、分析失败样例,并判断是否值得上线。

学完本阶段,你应该能做到:

  • 判断一个问题是否适合传统机器学习。
  • 区分监督学习、无监督学习、回归、分类、排序和聚类。
  • 正确划分训练集、验证集、测试集。
  • 选择合适评测指标,而不是只看 accuracy。
  • 识别过拟合、欠拟合和数据泄漏。
  • 完成一个端到端机器学习小项目。

本阶段的核心产出是:

  • 一个端到端 ML 项目。
  • 一份模型评测报告。
  • 一份失败样例分析。

2. 学习前置条件

建议已完成:

  • 数学与编程基础。
  • Python、pandas、NumPy 基础操作。
  • 基本概率、向量、损失函数和数据质量意识。

不要求:

  • 深度学习经验。
  • 大模型 API 经验。
  • 复杂算法推导能力。

3. 核心知识地图

4. 详细讲义

4.1 机器学习解决什么问题

机器学习适合从历史数据中学习稳定模式,并对新样本做预测、分类、排序或分组。

典型问题:

  • 用户是否会流失。
  • 订单是否有欺诈风险。
  • 商品销量可能是多少。
  • 一条评论是正向还是负向。
  • 用户可以分成哪些群体。

不适合机器学习的情况:

  • 没有足够历史数据。
  • 规则非常清晰,写代码更简单。
  • 标签定义不稳定。
  • 预测结果无法验证。
  • 业务流程高风险但缺少人工复核。

4.2 监督学习

监督学习有输入 X 和标签 y。模型学习从 Xy 的映射。

类型目标示例常用指标
回归预测连续数值房价、销量、时长MAE、RMSE、R2
二分类判断是/否是否流失、是否欺诈Precision、Recall、F1、AUC
多分类从多个类别选一个文本类别、意图识别Accuracy、Macro F1
排序对候选项排序推荐、搜索排序NDCG、MRR

4.3 无监督学习

无监督学习没有明确标签,目标是发现结构:

  • 聚类:把相似用户分组。
  • 降维:把高维特征压缩成更易观察的空间。
  • 异常检测:发现偏离常态的样本。

无监督学习很容易被过度解释。聚类结果不是天然业务分群,必须结合业务变量和后续验证。

4.4 数据划分

标准划分:

训练集:学习参数
验证集:选模型、调参数
测试集:最终验收

时间序列或业务日志不能随便随机切分。比如预测用户未来是否流失,测试集必须在时间上晚于训练集,否则会发生时间穿越。

4.5 特征工程

特征是模型看到世界的方式。常见特征:

类型示例注意点
数值特征金额、次数、时长缩放、异常值
类别特征城市、渠道、类型one-hot、目标编码
时间特征小时、星期、节假日周期性、时区
行为统计近 7 天点击数时间窗口不能穿越
文本特征关键词、长度、embedding分词、噪声

LLM 时代仍然需要特征工程。很多结构化预测问题,用简单特征和树模型就能达到很强效果。

4.6 常见模型

模型优点缺点适合
线性回归简单、可解释表达能力有限连续值预测基线
逻辑回归稳定、可解释非线性能力弱二分类基线
决策树易解释容易过拟合规则结构明显
随机森林稳定、抗过拟合解释较弱表格分类/回归
GBDT表格数据强基线参数较多结构化数据竞赛和业务
KMeans简单聚类需要指定 K用户分群初探

工程建议:先做简单基线,再做复杂模型。没有基线的模型提升没有意义。

4.7 评测指标

不同任务不能共用一个指标。

分类指标

指标看什么适合
Accuracy总体预测对多少类别均衡
Precision预测为正的样本有多少真是正误报成本高
Recall真正样本中找回多少漏报成本高
F1Precision 和 Recall 的折中类别不均衡
AUC排序区分能力阈值未定

回归指标

指标看什么特点
MAE平均绝对误差直观、抗异常值
RMSE平方误差开根对大误差敏感
MAPE相对误差真实值接近 0 时不稳定

4.8 过拟合、欠拟合和数据泄漏

问题表现可能原因修复
欠拟合训练集和测试集都差模型太简单、特征不足增加特征、换模型
过拟合训练集好,测试集差模型太复杂、数据少正则、降复杂度、更多数据
数据泄漏离线指标异常高,线上崩用了未来信息或标签信息重建特征和切分

数据泄漏是机器学习里最危险的问题之一,因为它让你以为模型很好。

4.9 从模型到业务决策

模型输出通常是分数或概率,业务系统还需要:

  • 阈值选择。
  • 人工复核策略。
  • 误报和漏报成本分析。
  • 监控数据漂移。
  • 定期重训或校准。

模型不是业务决策本身,它只是决策链路中的一个证据来源。

5. 关键概念表

概念含义工程判断常见错误
样本一条训练数据是否代表真实场景采样偏差
标签模型要预测的答案标签定义是否稳定标签噪声
特征模型输入变量线上是否可获得时间穿越
训练集学习参数越大越稳定混入测试样本
验证集选模型调参反复比较当成测试集用
测试集最终验收模拟未来数据被调参污染
基线最简单可比较方案证明模型有价值没有业务 baseline
阈值分数转动作的边界影响误报/漏报固定不监控

6. 工程案例

6.1 用户流失预测

目标:预测未来 30 天是否流失。

关键设计:

  • 标签:未来 30 天无活跃。
  • 特征:过去 7/14/30 天活跃次数、消费、功能使用。
  • 切分:按时间切分,避免未来数据进入训练。
  • 指标:Recall 和 Precision 都要看,因为漏掉高风险用户和误打扰用户都有成本。

6.2 订单风险分类

目标:识别高风险订单。

关键设计:

  • 类别极不平衡,accuracy 没意义。
  • 更关注高风险召回率和人工审核成本。
  • 模型输出不直接拒单,而是进入人工审核或更严格验证。

6.3 房价回归

目标:预测房价。

关键设计:

  • 数值特征、类别特征、位置特征都重要。
  • RMSE 会放大大房价样本的误差。
  • 需要分析错误样例:模型在哪些区域或户型上误差大。

6.4 用户分群

目标:理解用户类型。

关键设计:

  • 聚类结果需要业务解释。
  • K 值不是越多越好。
  • 分群之后要验证是否能指导运营动作。

7. 常见误区与反模式

反模式表现后果修正
只看 accuracy类别不平衡还看准确率模型看起来很好但没用看 precision/recall/F1
没有基线直接上复杂模型不知道是否真的提升做规则或简单模型 baseline
测试集调参反复看测试集改模型测试集失效保留最终测试集
时间穿越用未来信息构造特征离线虚高,线上失败按时间重建样本
忽略失败样例只报平均指标看不到业务风险分桶分析错误
模型替代流程分数直接执行高风险动作误伤用户加人工复核和阈值策略

8. 阶段练习

8.1 任务识别

判断以下问题属于回归、分类、聚类还是不适合 ML:

  • 预测订单金额。
  • 判断用户是否会流失。
  • 把用户分成若干群。
  • 根据固定规则审批报销。
  • 总结一篇文章。

8.2 数据切分

给一份用户行为日志,设计训练集、验证集、测试集切分方案。要求说明:

  • 为什么这样切分。
  • 是否存在时间穿越风险。
  • 测试集如何模拟未来线上场景。

8.3 指标选择

为以下任务选择指标:

  • 欺诈识别。
  • 垃圾邮件识别。
  • 销售额预测。
  • 商品搜索排序。

8.4 模型对比

使用 scikit-learn 对同一数据集训练:

  • 逻辑回归。
  • 决策树。
  • 随机森林或 GBDT。

输出指标表和失败样例。

9. 项目任务

9.1 项目要求

完成一个端到端 ML 小项目:

问题定义 -> 数据理解 -> 数据切分 -> 特征工程 -> 模型训练 -> 评测 -> 失败分析 -> 业务建议

建议项目:

  • 用户流失预测。
  • 信用风险分类。
  • 房价预测。
  • 评论情感分类。
  • 用户分群分析。

9.2 项目报告模板

# 机器学习项目报告

## 1. 问题定义

## 2. 数据来源和字段说明

## 3. 数据质量检查

## 4. 训练/验证/测试划分

## 5. 特征工程

## 6. 模型和基线

## 7. 评测指标

## 8. 结果对比

## 9. 失败样例分析

## 10. 上线风险和改进计划

9.3 评分标准

维度分值标准
问题定义15任务、标签、业务目标清晰
数据处理20数据质量和切分合理
特征工程20特征可解释且无泄漏
模型与基线15至少有一个 baseline 和一个改进模型
评测与失败分析20指标合适,有错误样例
业务建议10能说明上线风险和下一步

10. 验收题

  1. 监督学习和无监督学习有什么区别?
  2. 回归和分类分别解决什么问题?
  3. 为什么要分训练集、验证集、测试集?
  4. 类别不平衡时 accuracy 为什么会误导?
  5. Precision 和 Recall 分别适合什么业务风险?
  6. 什么是数据泄漏?举一个时间穿越例子。
  7. 为什么需要 baseline?
  8. 过拟合和欠拟合分别如何识别?
  9. 传统 ML 什么时候比 LLM 更合适?
  10. 模型输出分数后,业务系统还需要做什么?

11. 延伸阅读

官方与课程

实践参考

12. 本阶段总结

机器学习训练的是“从数据到预测”的闭环能力。它要求你对数据来源、标签定义、特征可用性、评测指标和业务成本负责。

进入下一阶段前,你应该能完成一个小型 ML 项目,并清楚说明模型为什么有效、哪里会失败、上线前还缺什么。下一阶段会进入深度学习,理解神经网络如何从复杂数据中自动学习表示。