课程目录

第 6 周 · 初阶

第6周:机器学习基础

建立ML核心认知框架

周目标:建立机器学习核心概念框架,掌握经典算法原理

课程成果:CO3 CO8

已学习 0 / 7 天

本周 7 个学习日

Day 36

ML概论

建议时长:75 分钟

本日 CO:CO3 CO8

本日概要

机器学习要解决的是「从数据中学到一个能在没见过的数据上表现良好的函数」,因此真正的评价标准从来不是训练集上的表现。监督学习有带标签的目标,无监督学习只有输入结构,强化学习通过与环境交互获得反馈。贯穿全周的核心概念是泛化:模型在训练集上误差很小但在新数据上很差,叫过拟合;训练集上就学不好,叫欠拟合。要在建模一开始就把数据划分为训练、验证与测试三部分,测试集只在最后使用一次;这不是流程洁癖,而是防止用测试集反复调参后得到虚高的成绩。

听书与视频

本日听书

6 分钟 · MP3 · 双主持人讲解

B 站讲解

(中文译制)机器学习入门:如何构建 ML 模型

Marconi工作室 · 已核验 2026-08-29

在 B 站打开

学习目标

  • 能区分监督学习、无监督学习与强化学习,并为具体任务选择合适的类型
  • 能用训练误差与验证误差的关系判断模型处于欠拟合还是过拟合
  • 能说明训练集、验证集与测试集各自的用途,以及为什么测试集只能用一次
  • 能解释交叉验证的作用,并说明它在小数据集上为什么比单次划分更可靠

核心讲解

泛化才是目标

一个把训练数据全部背下来的模型,训练误差可以是零,却对新数据毫无用处。机器学习真正追求的是泛化能力——在与训练数据同分布但未曾见过的样本上表现良好。因此评价模型时,训练集上的分数没有意义,必须看在留出数据上的表现。理解这一点后,很多看似神奇的高分就会显出问题:分数高往往不是模型好,而是评估方式漏了。

欠拟合与过拟合是同一根轴的两端。模型太简单,无法捕捉数据中的真实规律,训练误差与验证误差都高,这是欠拟合;模型太复杂,把训练数据中的噪声也当成规律学了进去,训练误差很低而验证误差高,这是过拟合。把训练与验证得分随模型复杂度变化的曲线画出来,两条曲线开始分叉的位置就是过拟合的起点,这比凭感觉调参可靠得多。

划分与交叉验证

标准做法是把数据划分为三部分:训练集用于拟合参数,验证集用于选择超参数与模型,测试集用于最终评估。测试集必须在整个建模过程中保持不可见,只在最后使用一次;如果反复用测试集调参,测试集实际上就变成了验证集,最终报告的分数会系统性偏高,这种现象在官方文档中被列为常见陷阱之一。

数据量较小时,单次划分的结果会受划分方式影响很大。交叉验证把数据分成 k 份,轮流用其中一份作验证、其余作训练,取 k 次结果的平均与波动作为评估。它的价值不只是得到更稳定的均值,还在于给出方差——如果 k 次结果差异很大,说明模型对数据划分很敏感,这个信息比单一分数更有诊断价值。需要注意的是,任何预处理(如标准化、特征选择)都必须在每一折的训练部分内部完成,否则验证数据的信息会泄漏到训练过程中。

实践任务

用一个公开数据集训练两个复杂度不同的模型,绘制训练与验证得分随复杂度变化的曲线,指出过拟合的起点。

  • 载入一个公开数据集,记录样本数、特征数与类别分布,并按训练/验证/测试三部分划分,写明划分比例与随机种子。
  • 训练一个欠拟合模型(如高度正则化的线性模型)与一个过拟合模型(如不限深度的决策树),分别记录训练与验证得分。
  • 逐步调整复杂度参数,绘制训练与验证得分曲线,标出两条曲线开始分叉的位置。
  • 对同一模型做 k 折交叉验证,记录 k 次得分的均值与标准差;再故意在划分前做一次全局标准化,对比得分差异并解释信息泄漏为什么会让分数虚高。

自测与答案

第 1 题

为什么测试集在整个建模过程中只能使用一次?

尚未检查本题。

查看答案与评价要点

参考答案:反复用测试集比较模型或调参时,选择过程本身就在拟合测试集,测试集实际上退化为验证集,最终报告的分数会系统性高于真实泛化能力。正确做法是用验证集或交叉验证做所有选择,测试集只在最终确认时使用一次。

评价要点:指出反复使用会让测试集退化为验证集;说明报告分数会系统性偏高;提出用验证集或交叉验证做选择

第 2 题

在做交叉验证前先对全部数据做标准化,会造成什么问题?

尚未检查本题。

查看答案与评价要点

参考答案:标准化使用了全部数据(含验证折)的均值与方差,验证折的信息因此泄漏进训练过程,交叉验证得分会偏高,无法反映真实泛化能力。正确做法是把预处理与模型组成管道,在每一折的训练部分内部拟合预处理参数,再应用到验证部分。

评价要点:指出验证折统计量泄漏;说明得分偏高、评估失真;提出用管道在每折内部拟合预处理

尚未完成自测。

今日完成标准

  • 提交数据划分说明(比例、随机种子、类别分布)与两个不同复杂度模型的得分对比
  • 提交训练/验证得分曲线并标出过拟合起点
  • 提交交叉验证的均值与标准差,以及信息泄漏对比实验的结果与解释

常见错误与纠正提示

  • 用训练集得分汇报模型效果,或反复用测试集调参后仍以测试集分数为准
  • 在划分前对全部数据做标准化或特征选择,造成信息泄漏
  • 只报告交叉验证的平均分,忽略折间方差反映的稳定性问题

分层任务

基础任务

使用教师提供的数据与脚本完成两个模型的对比,并口述哪一个过拟合。

标准任务

独立完成划分、复杂度曲线与交叉验证实验,提交完整记录。

挑战任务

构造一个信息泄漏导致分数虚高的例子并量化差距,说明如何用管道结构从根本上避免。

关联知识点

延伸阅读

学习状态:未学习

Day 37

线性模型

建议时长:75 分钟

本日 CO:CO3 CO8

本日概要

线性模型是理解所有监督学习的起点,也是最容易被解释的模型。线性回归用最小二乘拟合连续目标;逻辑回归虽然名字里有回归,实际是分类模型,它用线性组合加上一个把实数映射到零一区间的函数得到概率,再由阈值决定类别。正则化通过在损失中加入系数惩罚来控制复杂度:L2 让系数整体收缩,L1 会把部分系数压到零从而具有特征选择效果。线性模型的价值不只在于精度,更在于系数可解释——但解释的前提是特征已标准化、共线性已检查,否则系数大小不能直接比较。

听书与视频

本日听书

6 分钟 · MP3 · 双主持人讲解

B 站讲解

机器学习第1节|线性回归模型(上课啦)

卡卡老师讲数据科学 · 已核验 2026-08-29

在 B 站打开

学习目标

  • 能说明逻辑回归为什么是分类模型,以及概率与阈值的关系
  • 能解释 L1 与 L2 正则化对系数的不同影响,并选择适用场景
  • 能指出解释线性模型系数的前提条件,包括标准化与共线性检查
  • 能说明改变分类阈值如何在查准率与查全率之间移动,并结合业务代价选择阈值

核心讲解

从线性组合到概率

逻辑回归先计算特征的线性组合,再通过一个单调映射把结果压缩到零到一之间,得到属于正类的概率估计。分类结果由阈值决定:默认取零点五,但这只是一个约定而非最优选择。当正负样本代价不同时(例如漏检的代价远高于误报),应当根据业务代价调整阈值。把「模型输出概率」与「决策规则」分开看,是用好分类模型的关键一步。

正则化是控制过拟合的主要手段。L2 惩罚系数的平方和,效果是让所有系数整体收缩但很少变成零,适合特征都有一定作用的情况;L1 惩罚系数的绝对值之和,会把不重要的系数直接压到零,因而具有特征选择效果,适合高维稀疏场景。正则化强度是一个需要用验证集或交叉验证选择的超参数,不能凭默认值。注意正则化对特征尺度敏感,使用前必须标准化,否则量纲大的特征会被不成比例地惩罚。

系数可解释的前提

线性模型常被称为「可解释」,但可解释是有条件的。第一个条件是特征已标准化:未标准化时,系数大小同时反映了特征的量纲与影响力,不能直接比较大小。第二个条件是共线性已检查:当两个特征高度相关时,模型可以在它们之间任意分配权重,单个系数的数值变得不稳定,换一批数据可能符号都会翻转。

第三个条件是不要把相关当作因果。系数说明的是「在其他特征固定时,该特征变化一个单位与目标的关联」,这是一种统计关联,不能直接读作干预效果。真实世界里往往存在未纳入模型的混杂因素。因此在报告中应当明确写出「这是关联,不是因果」,并列出可能的混杂来源——这比给出一个漂亮的系数表更有专业价值。

实践任务

用逻辑回归完成一个二分类任务,比较有无正则化的系数分布与验证得分,并解释哪些系数可以被解释、哪些不能。

  • 选择一个二分类数据集,完成缺失值处理与标准化,记录每一步的处理方式与理由。
  • 训练无正则化与不同强度 L2 正则化的逻辑回归,记录验证得分与系数分布的变化。
  • 改用 L1 正则化,记录被压到零的特征数量,并对比 L1 与 L2 在本数据集上的得分差异。
  • 计算特征间相关系数矩阵,找出高度相关的特征对;在报告中标明哪些系数可以解释、哪些因共线性不宜单独解释,并说明结论是关联而非因果。

自测与答案

第 1 题

为什么在使用正则化前必须对特征做标准化?

尚未检查本题。

查看答案与评价要点

参考答案:正则化按系数大小施加惩罚,而系数大小与特征量纲直接相关。未标准化时,量纲较大的特征对应的系数天然较小、受到的惩罚较轻,量纲较小的特征则相反,惩罚强度实际上取决于单位选择而非重要性,结果不可解释也不稳定。

评价要点:指出惩罚作用于系数大小;说明系数大小受量纲影响;得出惩罚强度会随单位变化的结论

第 2 题

两个高度相关的特征同时进入逻辑回归,会对系数解释造成什么影响?

尚未检查本题。

查看答案与评价要点

参考答案:模型可以在两个相关特征之间任意分配权重而总体拟合几乎不变,单个系数的数值与符号因此不稳定,换一批数据或换一次划分可能大幅变化。此时不应单独解释任一系数,应先做共线性检查,考虑合并、删除或改用对共线性稳健的方法。

评价要点:指出权重可在相关特征间任意分配;说明系数数值与符号不稳定;提出共线性检查与处理方式

尚未完成自测。

今日完成标准

  • 提交预处理说明、三组正则化设置下的验证得分与系数分布对比
  • 提交 L1 下被置零的特征清单,并解释与 L2 结果差异的原因
  • 报告中明确标出哪些系数不宜单独解释及理由,并声明结论为关联而非因果

常见错误与纠正提示

  • 未标准化就使用正则化,或直接比较未标准化模型的系数大小
  • 把逻辑回归的系数读作因果效应,忽略混杂因素
  • 固定使用零点五阈值,不结合漏检与误报的业务代价调整

分层任务

基础任务

使用教师提供的已清洗数据完成两组正则化对比,并说出系数变化趋势。

标准任务

独立完成预处理、三组对比与共线性检查,提交完整报告。

挑战任务

为一个漏检代价远高于误报的场景选择阈值,用代价函数量化不同阈值下的期望损失。

关联知识点

延伸阅读

学习状态:未学习

Day 38

树模型

建议时长:75 分钟

本日 CO:CO3 CO8

本日概要

树模型通过不断按特征取值划分样本来做预测,天然能处理非线性关系与特征间交互,且不要求特征标准化。单棵决策树容易过拟合,集成方法因此成为主流:随机森林用自助采样与随机特征子集训练多棵树并取平均,主要降低方差;梯度提升按顺序训练树,每棵新树拟合前面所有树的残差,主要降低偏差。XGBoost 属于后者,其官方文档把目标函数明确写成「训练损失加正则项」的形式——这解释了为什么树的数量、深度与学习率必须一起调,而不是单独增大任何一个。

听书与视频

本日听书

6 分钟 · MP3 · 双主持人讲解

B 站讲解

【2026版】决策树零基础入门教程,手把手教你学决策树算法,快速搞定你的难题!—决策树算法|随机森林|决策树模型|机器学习算法|人工智能

迪哥教人工智能 · 已核验 2026-08-29

在 B 站打开

学习目标

  • 能说明决策树的划分依据,以及为什么单棵深树容易过拟合
  • 能区分随机森林与梯度提升在降低方差与降低偏差上的不同侧重
  • 能解释学习率与树数量之间的相互作用,并据此设计调参顺序
  • 能正确解读特征重要性,并说明它不能被当作因果证据的原因

核心讲解

从单棵树到集成

决策树在每个节点上选择一个特征和一个切分点,使划分后的子集在目标上更「纯」。这种结构天然能表达非线性与特征交互,也不要求特征在同一量纲上,这是它相对线性模型的便利之处。但如果不限制深度,树可以一直分裂到每个叶子只含极少样本,此时它记住的是训练数据的细节而非规律,验证误差会明显上升。

集成方法从两个方向改进。随机森林并行训练多棵树,每棵树使用自助采样的数据子集与随机的特征子集,最后取平均;由于各棵树的错误不完全相关,平均后方差下降,对过拟合较为稳健。梯度提升则是串行的:每棵新树去拟合当前模型的残差,逐步减少偏差。因为是串行累加,梯度提升对树的数量与学习率非常敏感,也更容易过拟合,需要更仔细的调参与早停。

调参顺序与重要性的边界

梯度提升中,学习率决定每棵树的贡献被缩放多少,树的数量决定累加多少棵。二者是相互替代的:学习率减半时,通常需要大致加倍的树数才能达到相近效果。因此合理的调参顺序是先固定一个较小的学习率,用早停在验证集上确定树的数量,再调整树的深度、最小样本数与列采样等控制单棵树复杂度的参数。反过来先调树数再调学习率,得到的结论会随另一个参数变化而失效。

特征重要性容易被过度解读。基于分裂增益的重要性会偏向高基数特征——取值越多的特征有更多切分点可选,更容易在某一次分裂中获得增益。更稳妥的做法是同时看排列重要性,即打乱某个特征后模型性能下降多少。即便如此,重要性反映的仍是「模型用了什么」,而不是「现实中什么导致了什么」:模型可能利用了一个与目标相关但无因果关系的代理变量。报告中必须写明这一界限。

实践任务

用梯度提升模型完成一个回归任务,对比不同树数量与学习率组合的验证表现,并用特征重要性解释模型关注了什么。

  • 选择一个回归数据集,划分训练与验证集,训练一棵不限深度的决策树并记录训练与验证误差的差距。
  • 训练随机森林与梯度提升模型,在相同划分下对比三者的验证误差。
  • 固定较小学习率,用早停确定树的数量;再改用两倍学习率重复一次,记录所需树数与最终得分的变化。
  • 分别计算基于增益的特征重要性与排列重要性,对比两份排名的差异,并在结论中写明重要性不等于因果。

自测与答案

第 1 题

梯度提升中,为什么必须把学习率与树的数量放在一起调?

尚未检查本题。

查看答案与评价要点

参考答案:每棵新树的贡献被学习率缩放后累加,学习率越小单棵树贡献越小,需要更多树才能达到同等拟合程度;两者互为替代。若单独调其中一个,得到的最优值会随另一个参数改变而失效。常见做法是先固定较小学习率,用早停在验证集上确定树数,再调单棵树的复杂度参数。

评价要点:说明学习率缩放每棵树的贡献;指出两者互为替代关系;给出先定学习率再早停定树数的顺序

第 2 题

基于分裂增益的特征重要性有什么已知偏差?应如何补充验证?

尚未检查本题。

查看答案与评价要点

参考答案:它偏向高基数特征——取值越多,可选切分点越多,越容易在某次分裂中获得增益,即便该特征与目标关系不强。补充方法是计算排列重要性:打乱该特征的取值后观察模型性能下降幅度。两份排名差异较大时应以后者为准,并说明重要性只反映模型使用了什么,不构成因果证据。

评价要点:指出偏向高基数特征;提出排列重要性作为补充;强调重要性不等于因果

尚未完成自测。

今日完成标准

  • 提交单棵树、随机森林与梯度提升在同一划分下的验证误差对比
  • 提交两组学习率下的早停树数与得分记录,说明二者的替代关系
  • 提交两种特征重要性的排名对比,并在结论中标明其解释边界

常见错误与纠正提示

  • 只增加树的数量而不调学习率,或反过来,得到无法复现的最优值
  • 直接把特征重要性排名当作业务因果结论汇报
  • 对树模型做不必要的特征标准化,误以为这是必需步骤

分层任务

基础任务

使用教师提供的数据与参数网格完成三种模型的对比,并读出验证误差差异。

标准任务

独立完成早停调参与两种重要性对比,提交完整记录。

挑战任务

构造一个高基数无关特征,验证它在增益重要性中排名靠前而在排列重要性中不重要,并解释成因。

关联知识点

延伸阅读

学习状态:未学习

Day 39

聚类与降维

建议时长:75 分钟

本日 CO:CO3 CO8

本日概要

无监督学习没有标签可对照,因此「结果对不对」需要用别的方式回答。K-Means 通过迭代把样本分配到最近的簇中心并更新中心,它隐含假设簇是大小相近的球形且对特征尺度敏感;簇数需要人为指定,肘部法与轮廓系数只能提供参考而非答案。降维中,主成分分析寻找方差最大的正交方向,用于压缩与可视化,主成分是原始特征的线性组合,通常没有直接的业务含义。用聚类做客户分群时,真正的检验不是内部指标,而是分出来的群体在业务上是否可区分、可行动。

听书与视频

本日听书

6 分钟 · MP3 · 双主持人讲解

B 站讲解

4.5 - 机器学习降维方法之PCA

StillSeven · 已核验 2026-08-29

在 B 站打开

学习目标

  • 能说明 K-Means 的迭代过程及其对簇形状、尺度与初始值的假设与敏感性
  • 能用肘部法与轮廓系数辅助选择簇数,并说明这些指标为什么不能单独作为结论
  • 能解释主成分分析的目标与主成分的可解释性限制
  • 能设计一套结合内部指标与业务可行动性的聚类结果检验方法

核心讲解

K-Means 的假设与代价

K-Means 交替执行两步:把每个样本分配给距离最近的簇中心,然后把每个簇中心更新为该簇样本的均值。它的隐含假设值得写清楚:使用欧氏距离意味着对特征尺度敏感,未标准化时量纲大的特征会主导划分;均值更新意味着它倾向于找到大小相近的球形簇,对细长形或密度差异大的簇效果不好;初始中心的选择会影响最终结果,因此通常需要多次不同初始化取最优。

簇数需要事先指定,而数据本身不会告诉你答案。肘部法观察簇内平方和随簇数增加的下降趋势,寻找下降明显放缓的位置;轮廓系数衡量样本与本簇的紧密程度相对于最近邻簇的分离程度。这两个指标能缩小候选范围,但它们衡量的是几何结构,不是业务意义。当肘部不明显或几个候选簇数的轮廓系数接近时,应当由业务可解释性来决定,并把这个决策过程写进报告。

降维与结果检验

主成分分析寻找数据中方差最大的若干正交方向,把高维数据投影到低维空间。它常用于两个目的:压缩特征以减少冗余,以及降到二三维用于可视化。需要注意的是,主成分是原始特征的线性组合,通常不对应任何具体的业务概念,因此不应把「第一主成分」直接解释为某个业务维度;同时它对尺度敏感,使用前同样需要标准化。

聚类结果的真正检验在业务侧。一组划分即使轮廓系数很高,如果各群体在关键业务指标上没有明显差异,或者虽然有差异但无法针对性地采取不同动作,这个分群就没有价值。因此报告应当包含一张按簇统计关键业务指标的对照表,并为每个簇写出一句可执行的动作建议。若写不出动作,说明分群应当重做或改变特征选择,而不是继续调整簇数。

实践任务

对一份客户数据做标准化后聚类,用轮廓系数与业务解释共同判断簇数,并用主成分分析做二维可视化。

  • 对客户数据做缺失处理与标准化,记录每个特征的量纲与处理方式。
  • 对若干候选簇数分别运行 K-Means(每个簇数使用多次随机初始化),记录簇内平方和与轮廓系数,绘制曲线。
  • 用主成分分析降到二维做散点可视化,观察簇的分离程度,并记录前两个主成分解释的方差比例。
  • 为最终选定的簇数制作按簇的业务指标对照表,为每个簇写出一句可执行动作;若某个簇写不出动作,说明原因并提出改进方向。

自测与答案

第 1 题

为什么使用 K-Means 前必须标准化特征?

尚未检查本题。

查看答案与评价要点

参考答案:K-Means 基于欧氏距离分配样本,距离由各特征差值的平方和决定;未标准化时量纲大的特征(如以元为单位的金额)会主导距离计算,量纲小的特征几乎不起作用,划分结果实际上取决于单位选择而非数据结构。

评价要点:指出依赖欧氏距离;说明大量纲特征主导距离;得出结果取决于单位而非结构

第 2 题

轮廓系数很高的聚类结果一定是好的分群吗?为什么?

尚未检查本题。

查看答案与评价要点

参考答案:不一定。轮廓系数衡量的是几何上的紧密与分离程度,不反映业务意义。如果各簇在关键业务指标上无显著差异,或虽有差异但无法据此采取不同动作,这个分群在业务上没有价值。检验应当同时包含按簇的业务指标对照与可执行动作。

评价要点:指出轮廓系数只衡量几何结构;说明需要业务指标差异;提出以可执行动作作为检验标准

尚未完成自测。

今日完成标准

  • 提交标准化说明与多个候选簇数下的簇内平方和、轮廓系数曲线
  • 提交主成分二维可视化及前两主成分的解释方差比例
  • 提交按簇的业务指标对照表与每个簇的可执行动作建议

常见错误与纠正提示

  • 未标准化直接聚类,结果由量纲最大的特征决定
  • 只凭肘部法或轮廓系数确定簇数,不检验业务可解释性
  • 把主成分直接解释为某个业务维度,忽略它只是线性组合

分层任务

基础任务

使用教师提供的已标准化数据完成聚类与可视化,并读出轮廓系数变化趋势。

标准任务

独立完成预处理、簇数选择、可视化与业务对照表。

挑战任务

构造一组细长形或密度差异明显的数据,说明 K-Means 在其上失效的原因,并尝试一种更适合的聚类方法做对比。

关联知识点

延伸阅读

学习状态:未学习

Day 40

特征工程

建议时长:75 分钟

本日 CO:CO3 CO8

本日概要

特征工程往往比换模型带来的收益更大,但也最容易引入难以察觉的错误。核心纪律只有一条:任何需要从数据中学习参数的步骤,都必须只用训练数据拟合,再应用到验证与测试数据上。缺失值填充的统计量、标准化的均值方差、类别编码的取值映射、特征选择的筛选依据,全都属于这一类。把这些步骤与模型组装成管道,是从结构上防止泄漏的做法,而不是靠人记得先后顺序。此外还要警惕时间穿越:用了预测时刻还不可能知道的信息,离线分数会好得不真实。

听书与视频

本日听书

6 分钟 · MP3 · 双主持人讲解

B 站讲解

01 特征工程是什么

teacher_tu · 已核验 2026-08-29

在 B 站打开

学习目标

  • 能列举哪些预处理步骤会从数据中学习参数,从而必须放进管道
  • 能用管道结构实现「只用训练折拟合预处理」,并说明它相对手工顺序的优势
  • 能识别时间序列场景中的时间穿越,并设计相应的划分方式
  • 能为类别特征选择合适的编码方式,并说明高基数类别的处理取舍

核心讲解

泄漏来自「用了不该用的信息」

信息泄漏指的是模型在训练时接触到了预测时刻本不该拥有的信息,导致离线评估虚高而上线后表现骤降。最常见的一类是预处理泄漏:先对全量数据做标准化或缺失值填充,再划分训练与验证集,此时验证集的统计信息已经进入了训练过程。官方文档把这一点列为常见陷阱,并建议用管道把预处理与模型绑定,使交叉验证时每一折都在训练部分内部重新拟合预处理。

第二类是目标泄漏:特征本身包含了目标的信息。例如用「是否已退款」预测「是否会退款」,或用一个只有在事件发生后才会被填写的字段做特征。这类问题不会被交叉验证发现,因为泄漏在数据构造阶段就已存在。识别方法是对每个特征追问一句:在做出预测的那一刻,这个值是否已经可得?答不上来的特征就要回到数据源头确认。

编码、缩放与时间划分

类别特征需要转成数值。独热编码为每个取值生成一列,不引入虚假的顺序关系,但在高基数类别上会产生大量稀疏列;序数编码只用一列,但会隐含大小顺序,只适合本身有序的类别。对高基数类别,常见做法包括合并低频取值为「其他」、使用基于目标的编码(必须在折内计算以避免泄漏),或改用能原生处理类别的树模型实现。每种做法的代价都应写清楚。

时间序列场景必须改变划分方式。随机划分会让模型用未来的数据预测过去,这是最典型的时间穿越。正确做法是按时间切分:训练集在前、验证集在后,交叉验证也应采用逐步向前推移的方式。此外,任何按时间聚合的特征(如「过去七天平均」)必须严格只使用预测时刻之前的数据窗口,边界处的一天之差就足以造成明显的分数虚高。

实践任务

为一份含缺失值与类别特征的数据构建完整预处理管道,并用一次故意的泄漏对照实验量化分数虚高的幅度。

  • 列出数据中所有需要预处理的列,标注每列的处理方式,并区分「需要从数据学习参数」与「无需学习」两类。
  • 构建包含缺失值填充、标准化与类别编码的管道,将其与模型组装后做交叉验证,记录得分。
  • 故意先对全量数据做标准化与填充再划分,重复交叉验证,记录两次得分差距并解释成因。
  • 对每个特征回答「预测时刻是否已可得」,标出可疑的目标泄漏特征;若数据含时间字段,改用按时间切分重新评估并对比得分。

自测与答案

第 1 题

为什么用管道封装预处理比「记得先划分再处理」更可靠?

尚未检查本题。

查看答案与评价要点

参考答案:交叉验证会反复重新划分数据,靠人工顺序无法保证每一折都在训练部分内部重新拟合预处理;管道把预处理与模型绑定为一个估计器,交叉验证的每一折都会自动重新拟合,从结构上消除了泄漏,而不依赖执行者是否记得顺序。

评价要点:指出交叉验证会多次重新划分;说明人工顺序难以覆盖每一折;强调管道从结构上消除泄漏

第 2 题

什么是目标泄漏?为什么交叉验证发现不了它?

尚未检查本题。

查看答案与评价要点

参考答案:目标泄漏指特征本身包含了预测目标的信息,例如使用只有在事件发生后才会填写的字段。它在数据构造阶段就已存在,训练与验证数据都带有同样的泄漏,因此交叉验证得分一致虚高,无法暴露问题。只能靠逐个特征追问「预测时刻该值是否已可得」来识别。

评价要点:准确定义目标泄漏;说明训练与验证都带同样泄漏;给出按可得时刻逐特征审查的方法

尚未完成自测。

今日完成标准

  • 提交列级预处理清单,明确区分需要学习参数与不需要的步骤
  • 提交管道版本与泄漏版本的交叉验证得分对比及差距解释
  • 提交特征可得性审查表;含时间字段的数据须提交按时间切分的评估结果

常见错误与纠正提示

  • 先对全量数据标准化再划分,交叉验证得分虚高而上线后骤降
  • 对高基数类别直接独热编码,产生大量稀疏列且未评估代价
  • 在时间序列上使用随机划分,造成用未来预测过去

分层任务

基础任务

在教师提供的骨架上补全管道的三个预处理步骤,并说出各步骤为什么必须在折内拟合。

标准任务

独立完成管道构建、泄漏对照实验与特征可得性审查。

挑战任务

为一份时间序列数据实现逐步向前的交叉验证,并量化随机划分带来的分数虚高幅度。

关联知识点

延伸阅读

学习状态:未学习

Day 41

模型评估

建议时长:75 分钟

本日 CO:CO3 CO8

本日概要

评估指标的选择本身就是一次业务决策。准确率在类别极不平衡时会失去意义——一个全部预测为多数类的模型也能拿到很高的准确率。查准率关心「预测为正的里面有多少真的是正」,查全率关心「真正的正例里有多少被找出来」,二者随阈值此消彼长;F1 是它们的调和平均,适合需要平衡时使用。ROC 曲线下面积衡量的是排序能力且不受阈值影响,但在正例极少时,查准率-查全率曲线更能反映真实表现。回归任务同理:平均绝对误差与均方根误差对大误差的敏感程度不同,选哪个取决于业务上是否更怕极端错误。

听书与视频

本日听书

6 分钟 · MP3 · 双主持人讲解

B 站讲解

机器学习-第二章:模型评估与选择(一)

深度玉玉症患者 · 已核验 2026-08-29

在 B 站打开

学习目标

  • 能说明准确率在类别不平衡时失效的原因,并给出替代指标
  • 能从混淆矩阵推导查准率、查全率与 F1,并解释阈值移动对它们的影响
  • 能区分 ROC 曲线与查准率-查全率曲线的适用场景
  • 能结合漏检与误报的业务代价,用期望损失选择工作阈值

核心讲解

指标必须匹配业务问题

当正例只占百分之一时,一个把所有样本都预测为负例的模型准确率就有百分之九十九,却毫无用处。这说明准确率只在类别大致平衡且两类错误代价相近时才有意义。混淆矩阵是更基本的工具:它把预测结果分为真正例、假正例、真负例、假负例四格,所有常用指标都可以由这四个数推出来,报告中给出混淆矩阵比只给一个分数更有信息量。

查准率与查全率描述的是两种不同的关切。风控拦截更怕误伤正常用户,偏向查准率;疾病初筛更怕漏掉患者,偏向查全率。二者随阈值反向移动:提高阈值使预测更保守,查准率上升查全率下降。因此报告单一的 F1 分数会掩盖这个权衡,更好的做法是给出不同阈值下的查准率-查全率对照,让业务方参与选择。

曲线的选择与回归指标

ROC 曲线以假正例率为横轴、真正例率为纵轴,其曲线下面积衡量模型把正例排在负例前面的能力,与阈值无关。它的局限在于:当负例数量远大于正例时,假正例率的分母很大,即使假正例的绝对数量已经多到业务不可接受,横轴上的变化仍然很小,曲线看起来依然漂亮。此时查准率-查全率曲线更能反映真实表现,因为查准率的分母是预测为正的数量,对假正例的增加更敏感。

回归任务的指标选择同样是业务判断。平均绝对误差对所有误差一视同仁,均方根误差因为先平方而对大误差更敏感。如果业务上偶尔的大幅偏差后果严重(如库存预测导致断货),应选择对大误差敏感的指标;如果关心的是典型情况下的偏差水平,平均绝对误差更直观。此外还应报告误差的分布而不只是均值,因为同样的均值可以对应完全不同的误差形态。

实践任务

在一个类别不平衡的数据集上对比多个指标,绘制两类曲线,并结合漏检与误报的代价选出工作阈值。

  • 在一个类别不平衡的数据集上训练模型,输出混淆矩阵,并由此手工计算准确率、查准率、查全率与 F1。
  • 绘制 ROC 曲线与查准率-查全率曲线,记录两者的曲线下面积,说明在本数据的不平衡程度下应以哪条为准。
  • 扫描一组阈值,记录每个阈值下的查准率、查全率与预测为正的数量,形成对照表。
  • 为漏检与误报分别设定业务代价(可为假设值但须标明),计算各阈值下的期望损失并选出工作阈值,说明选择依据。

自测与答案

第 1 题

在正例占比百分之一的数据集上,模型准确率达到百分之九十九。这个结果说明了什么?

尚未检查本题。

查看答案与评价要点

参考答案:几乎什么也说明不了——全部预测为负例即可达到同样的准确率。应当查看混淆矩阵,并改用查准率、查全率、F1 或查准率-查全率曲线等对少数类敏感的指标来评估。

评价要点:指出全预测负例可达同样准确率;要求查看混淆矩阵;给出对少数类敏感的替代指标

第 2 题

在正负样本极不平衡时,为什么查准率-查全率曲线比 ROC 曲线更有参考价值?

尚未检查本题。

查看答案与评价要点

参考答案:ROC 的横轴假正例率以负例总数为分母,负例极多时,即使假正例的绝对数量已大到业务不可接受,该比率变化仍很小,曲线仍然好看。查准率的分母是预测为正的总数,假正例增加会直接拉低查准率,因此更能反映不平衡场景下的真实可用性。

评价要点:指出假正例率的分母是负例总数;说明该比率对假正例增加不敏感;指出查准率分母更能反映实际代价

尚未完成自测。

今日完成标准

  • 提交混淆矩阵与由此手工推导的四个指标,数值与库函数结果一致
  • 提交两类曲线及其面积,并说明在本数据不平衡程度下应以哪条为准
  • 提交阈值扫描对照表与基于期望损失的阈值选择过程,代价假设已明确标注

常见错误与纠正提示

  • 在不平衡数据上以准确率作为主要指标汇报效果
  • 只报告单一 F1 分数,掩盖查准率与查全率之间的业务权衡
  • 回归任务只看误差均值,不看误差分布与极端值

分层任务

基础任务

根据教师给出的混淆矩阵手工计算四个指标,并说明各自的含义。

标准任务

独立完成两类曲线绘制与阈值扫描,提交完整对照表。

挑战任务

为同一模型在两种不同代价假设下分别选出工作阈值,说明代价变化如何改变最优阈值。

关联知识点

延伸阅读

学习状态:未学习

Day 42

周末复盘

建议时长:75 分钟

本日 CO:CO3 CO8

本日概要

本周收尾把「算法—场景—评估」串成一条可复用的判断链。面对一个新问题,合理的顺序是:先确定它是不是机器学习问题(有没有可获得的标签、规则能否直接写出、错误的代价是否可承受),再确定任务类型与评估指标,然后才是选模型。模型选择的默认起点应当是简单模型加完整的评估流程,而不是直接上最复杂的方法——简单模型给出的基线,是判断后续复杂化是否值得的唯一依据。整条链上真正决定成败的,往往是数据划分是否正确、有没有泄漏、指标是否匹配业务,而不是算法本身。

听书与视频

本日听书

6 分钟 · MP3 · 双主持人讲解

B 站讲解

【子豪兄】机器学习基础

同济子豪兄 · 已核验 2026-08-29

在 B 站打开

学习目标

  • 能判断一个问题是否适合用机器学习解决,并说出不适合时的替代方案
  • 能按任务类型与业务代价选择主指标与辅助指标
  • 能设计一个合理的基线,并用它判断更复杂的模型是否值得
  • 能把数据划分、泄漏检查与指标选择整理成一份可复用的检查清单

核心讲解

先问是不是机器学习问题

并非所有问题都需要模型。如果规则可以被明确写出并且稳定(如根据金额区间计算折扣),直接写规则更可靠、可解释也更易维护;如果没有可获得的标签,或标签质量极差,监督学习无从谈起;如果单次错误的代价极高且无法通过人工复核兜底,也应当谨慎。把这三个问题写在方案开头,可以避免大量注定失败的项目。

确定要用机器学习之后,下一步是把业务问题翻译成任务类型:是分类还是回归,是排序还是聚类,预测的对象和时间口径是什么,标签如何定义。这一步的模糊会污染后面所有工作——比如「预测用户是否流失」中,流失的定义是三十天未登录还是九十天未消费,会直接改变数据构造方式与可达到的效果。

基线与检查清单

基线的作用是提供参照。对分类任务,多数类预测或简单的逻辑回归就是合适的基线;对回归任务,历史均值或上一期数值往往就是一个不弱的基线;对时间序列,上周同期值经常打败很多复杂模型。没有基线时,一个看起来不错的分数无法判断好坏;有了基线,才能回答「复杂模型带来的提升是否值得它的运维成本」这个真正的问题。

本周所有内容可以压缩成一份检查清单:数据是否按正确方式划分(时间序列是否按时间切分)、预处理是否封装在管道中、是否逐特征检查过可得性、指标是否匹配业务代价、是否报告了混淆矩阵或误差分布、是否与基线做过对比、结论中是否区分了关联与因果。把这份清单固定下来,比记住任何单个算法的细节更有长期价值。

实践任务

为三个不同的业务问题各写一份判断链说明:是否适合机器学习、任务类型、评估指标、基线模型与判断复杂化是否值得的标准。

  • 选择三个不同的业务问题,逐个回答「是否适合机器学习」的三个前置问题,并对不适合的给出替代方案。
  • 为适合的问题写出任务类型、预测对象、时间口径与标签定义,指出定义模糊会造成的具体影响。
  • 为每个问题指定主指标与至少一个辅助指标,说明选择依据与对应的业务代价。
  • 为每个问题设计一个基线,写出「复杂模型需要超过基线多少才值得」的判断标准;最后整理出本周的个人检查清单。

自测与答案

第 1 题

在什么情况下不应该用机器学习解决问题?请给出至少两种并说明替代方案。

尚未检查本题。

查看答案与评价要点

参考答案:一是规则可以被明确写出且稳定,此时直接实现规则更可靠、可解释且易维护;二是没有可获得的标签或标签质量极差,监督学习缺少学习信号,应先建设数据采集与标注流程;三是单次错误代价极高且无人工复核兜底,此时应先设计人机协同流程再考虑模型。

评价要点:给出至少两种不适合的情形;为每种给出具体替代方案;把标签可得性或错误代价作为判断依据

第 2 题

为什么每个建模项目都应当先建立基线?

尚未检查本题。

查看答案与评价要点

参考答案:基线提供参照,使「分数是否够好」变成可回答的问题;同时它是判断复杂模型是否值得的依据——如果复杂模型相对基线的提升有限,考虑到训练、部署与运维成本,通常不值得采用。缺少基线时,任何分数都无法判断好坏。

评价要点:指出基线提供参照;把提升幅度与运维成本放在一起权衡;指出无基线时分数无法判断

尚未完成自测。

今日完成标准

  • 三个问题各完成前置判断、任务定义、指标选择与基线设计
  • 每个问题写出复杂化是否值得的量化判断标准
  • 提交个人检查清单,覆盖划分、泄漏、指标、基线与因果表述五个方面

常见错误与纠正提示

  • 跳过「是否适合机器学习」的判断,为规则明确的问题强行建模
  • 标签定义模糊就开始构造数据,后期发现口径不一致只能返工
  • 不设基线,用一个孤立的分数论证模型有效

分层任务

基础任务

在教师给出的三个问题上完成前置判断与任务类型识别。

标准任务

独立完成三个问题的完整判断链与个人检查清单。

挑战任务

为其中一个问题写出从基线到复杂模型的分阶段计划,每阶段给出准入条件与放弃条件。

关联知识点

延伸阅读

学习状态:未学习