简介:《第一章机器学习概述PPT》是一份面向人工智能、计算机及相关专业初学者与任课教师的入门课件,围绕“为什么学、是什么、怎么学”三条主线组织内容,可用于课堂讲授、自学入门或章节复习。课件从人工智能的定义与三次发展浪潮切入,梳理自动推理、专家系统到深度学习的研究脉络与主要领域,再落到机器学习的核心对象——数据,以及“数据+模型+优化”的基本框架,并说明高等数学、线性代数、概率论、编程等先修要求与后续课程衔接。资源包共1个pptx文件,约10.28MB,页面以提纲和图示为主,便于按章节检索和二次修改。已有165人学习下载,适合需要快速建立机器学习整体认知、理解课程定位与知识框架的读者。
1. 机器学习概述的三问地图:Why、What、How 怎么串成一条复习线
很多人复习机器学习,一上来就啃公式,啃到梯度下降就卡住了。问题的根源在于缺少一张地图。第一章概述其实给了一个三问骨架:Why 为什么学、What 是什么、How 怎么学。这三个问题向外扩张,就形成三层地图:最外层是人工智能的坐标系,包括定义、三次浪潮和九大研究领域;中间层是机器学习的定义三角,即数据、模型、优化;最内层是学习范式与算法家族,涵盖监督、无监督、半监督和强化学习。
这张图适合两类人:正在系统学这门课、准备把零散知识点串成体系的人,以及复习时想快速定位“这个知识点挂在哪根枝上”的人。它的价值不在于背名词,而在于后面复习算法时不会散成一地零件。
2. 从人工智能到机器学习:概念层的三个坐标
2.1 智能与人工智能:定义里藏着的三个关键词
智能的定义可以拆成三层。第一层是“人类智力和能力的总称”,这是最宽泛的说法;第二层讲“对客观事物进行合理分析、判断,并进行有效处理的综合能力”,落到功能上;第三层落到过程上,认为智能是信息获取、处理的复杂过程,而核心是思维,人的智能来自大脑的思维活动,所以研究智能本质上是在研究思维规律和思维方法。这三层从总称到功能再到机制,是递进关系,考试里让你“简述智能的定义”时,三层写全才稳。
人工智能的定义同样要逐词拆开看:它是研究用于模拟、延伸和扩展人的智能的理论、方法、技术及应用系统的一门新的技术科学。三个关键词分别对应三件事:目的动词是“模拟、延伸和扩展”,学科构成是“理论、方法、技术、应用系统”四个层次,学科属性是“新的技术科学”。
最容易忽略的是“延伸和扩展”。很多人默认人工智能的目标是“让机器像人一样”,但定义里写了延伸和扩展,意味着机器的某些能力可以超出人的水平,比如海量检索、长时间稳定计算、超高速数值运算。理解这一点,后面学“为什么不能用人类思维标准去评价模型”就不会别扭。
反过来,判断一个东西算不算人工智能研究,也可以拿这个定义当筛子:它有没有落到“模拟、延伸或扩展智能”这个目的上?它输出的是一套理论、方法、技术还是应用系统?两个问题都没答上的,往往只是普通软件工程,不是人工智能。
2.2 三次浪潮:自动推理、知识工程、数据学习
这门课的历史部分不是凑数,三次浪潮的中心思想、代表性成果和低谷原因,是概念题的高频出处。整理成表更清楚:
| 阶段 | 时间范围 | 中心思想 | 代表性成果 | 走向低谷的原因 |
|---|---|---|---|---|
| 第一次浪潮:自动推理 | 1956 年至 70 年代中期 | 赋予机器推理能力,机器就具有智能 | 具备自学习能力的棋类程序、自动定理证明程序、面向符号处理的人工智能语言、早期人形机器人、四色定理的机器证明、几何定理机器证明的机械化方法 | 有限的计算能力难以逾越,问题规模一大就组合爆炸,单层线性模型处理不了异或问题引发悲观情绪 |
| 第二次浪潮:知识工程 | 1980 年至 1987 年 | 以知识为中心开展研究,从理论转向实用 | 专家系统(如配置类专家系统)、带反馈连接的神经网络模型、反向传播算法 | 开发与维护成本高昂,知识量增加后规则之间前后不一致甚至互相矛盾 |
| 第三次浪潮:学习 | 90 年代至今 | 让机器自动学习知识,而不是把知识总结出来再教给计算机 | 深度学习 | 尚未结束,靠算法演进、理论基础、数据支撑、算力提升四方面协同推进 |
第一次浪潮的低谷里有两个经典案例值得记。一个是机器翻译的翻车故事:把一句话在两种语言间来回翻译,结果语义跑偏,成了“酒是好的,肉变质了”这类笑话,暴露出当时系统对语义的理解是空的。另一个是异或问题:平面上四个点,两个标“▲”、两个标“●”交叉分布,问能不能画一条直线把两类分开。答案是不能。单层感知机本质上是在找一个线性决策边界,线性边界解不了异或,所以它被当作“神经网络走不通”的证据。
这里补一句容易漏的逻辑:异或问题证明的不是“神经网络没用”,而是“单层线性模型不够用”。补法有三条路——加层(多层网络带来非线性)、换核(把样本映射到高维空间里再切)、换模型(用决策树这类按特征阈值切分的模型)。把这个区分想清楚,后面学深度学习的动机就顺了。
第二次浪潮的教训同样重要:知识工程把专家的经验写成规则,短期效果很好,但规则一多就互相打架,维护成本随规模非线性上升。这正是后来“让机器自己从数据里学”这条路线被重新捡起来的原因。
第三次浪潮的四个支撑条件建议按顺序记:算法演进、更坚实的理论基础、数据的支撑、硬件算力的提升。四者缺一不可,少了任何一个,深度学习都跑不起来。
2.3 机器学习在课程体系里的位置:先修与后续
概述部分有一张很容易被跳过的图:这门课在专业培养方案里的位置。往上走是高等数学、线性代数、概率论、Python、C++,往下走是深度学习、嵌入式人工智能实践、创新创业实践。这张图的用处是让你知道自己卡住时该补哪门课。
| 先修课 | 在机器学习里对应什么 | 不补会卡在哪 |
|---|---|---|
| 高等数学 | 极限、导数、偏导、多元函数、梯度 | 看不懂梯度下降的更新式,不知道为什么要沿负梯度方向走 |
| 线性代数 | 向量、矩阵运算、特征值与特征向量、正交变换 | 看不懂样本矩阵表示、PCA 的降维推导、矩阵分解类模型 |
| 概率论与数理统计 | 随机变量、常见分布、条件概率、贝叶斯公式、期望方差、极大似然 | 看不懂朴素贝叶斯、生成式模型、损失函数的概率解释、评估指标的置信问题 |
| Python | 数据处理与科学计算库的基本用法 | 实验跑不起来,算法只能看不能改 |
| C++ | 性能敏感场景的实现 | 只影响工程落地,不影响概念理解 |
反过来看后续课程也能帮你定位重点:往下是深度学习,说明这门课的重点在“基本范式和评估方法”,而不是把某个算法推到极致;往下是嵌入式人工智能实践,说明模型复杂度、算力约束这些工程视角迟早要用上,复习时别把“模型越大越好”当默认假设。
3. 机器学习的技术骨架:数据、模型、优化三件套
3.1 数据:机器学习的核心对象
定义里那句“机器学习的核心对象是数据”值得单独拎出来。目标写得很明确:提取数据特征,迭代抽象出数据的模型,发现数据中的知识也就是规律,最终做到对数据的分析或预测。注意这里的动词顺序——先有数据,再提特征,再抽象模型,最后才是分析和预测。顺序颠倒,就是典型的流程错位。
数据首先按类型分。从取值上分离散数据和连续数据,不同类型对应不同的算法模型:离散特征更适合树模型按阈值切,连续特征更适合线性模型和距离度量类模型。从载体上分数字、文字、图像、视频、音频以及它们的组合,这就是所谓的“数据多元化”,也是为什么同一套方法能横跨推荐、识别、自然语言处理这么多领域。
描述一份数据要用的四个词必须分清:样本是一条记录,特征是该记录的属性,标签是我们想预测的目标,数据集是样本的集合。监督学习里标签存在,无监督学习里标签不存在,这个差别决定了后面整章的学习范式划分。
真正干活时花时间最多的是特征处理,梳理下来大致五件事:缺失值处理(删除、均值或中位数填充、单独作为一类)、数值缩放(归一化到区间、标准化到零均值单位方差)、类别编码(独热编码、序数编码)、特征选择(过滤式、包裹式、嵌入式)、特征降维(主成分分析这类线性降维方法)。这些不属于任何一个算法,却决定了算法的上限。
数据划分是另一个高频考点。留出法把数据切成训练集和测试集;验证集从训练集里再分出来,用于调超参数;k 折交叉验证把训练集切成 k 份,轮流留一份做验证,最后取平均,样本量小的时候比单次留出更稳;分层抽样保证各折的类别比例和整体一致,类别不平衡时几乎是必选项。
提示:测试集在整个调参过程中只能用一次,用两次以上,你报出来的指标就不再是对泛化能力的估计了。
3.2 模型:从假设空间里挑一个函数
模型这个概念在概述里给了三种表述:条件概率分布、决策函数、线性函数。它们不是三个不同的东西,而是同一个东西的三种写法。决策函数写的是“给输入 x,输出 y 是多少”,形如 y=f(x);条件概率分布写的是“给输入 x,输出各个类别的概率分别是多少”,形如 P(y|x);线性函数是决策函数里最简单的一族,形式是特征的加权和。前者的输出可以直接拿来用,后者的输出能给出置信程度,很多场景里后者更有用,因为你能按概率排序做后续决策。
“学习的工程就是为了获得模型”这句话背后是假设空间的概念:所有候选模型的集合叫假设空间,学习就是在假设空间里按某种准则挑一个最合适的。所以模型选择本质上是搜索问题,搜索范围和评价准则共同决定了结果。
这里要分清参数和超参数。参数是模型自己从数据里学出来的,比如线性模型的权重、树模型的分裂阈值;超参数是人设定的,比如 k 近邻的 k、树的深度、正则化强度、学习率。参数靠优化算法求,超参数靠验证集选。混淆二者最直接的后果是:你会试图用训练数据去“调”超参数,然后得到一个漂亮但虚假的分数。
模型容量是另一个关键概念。容量太小,模型连训练集都拟合不好,叫欠拟合;容量太大,模型把训练集的噪声也记住了,训练集上几乎完美但换一批数据就崩,叫过拟合。从偏差方差角度看,欠拟合对应高偏差,过拟合对应高方差。这个二分法是后面所有正则化、早停、剪枝、数据增强手段的统一解释框架。
3.3 优化:损失函数与求解过程
优化这一步回答的是“怎么从假设空间里挑”。挑需要标准,标准就是损失函数。常见损失对应不同任务:
| 任务 | 常用损失 | 直观含义 |
|---|---|---|
| 回归 | 平方损失 | 预测值与真实值差的平方,对大误差惩罚重 |
| 回归 | 绝对值损失 | 对异常值更稳健,但零点不可导 |
| 分类 | 0-1 损失 | 分错记 1、分对记 0,不可导,多用于评价而非优化 |
| 分类 | 交叉熵损失 | 衡量预测概率分布与真实分布的差异,可导且梯度性质好 |
只在训练集上最小化损失叫经验风险最小化,它天然偏向复杂模型,因为复杂模型总能把训练集拟合得更死。所以实际目标通常是经验风险加一个正则项,正则项惩罚模型复杂度,合起来叫结构风险最小化。L1 正则偏向稀疏解,L2 正则偏向让权重整体变小,这两个性质在特征选择和防过拟合里反复出现。
求解的主力是梯度下降及其变体。核心更新式只有一句:参数沿损失函数梯度的反方向移动一小步。步长就是学习率。学习率太大会震荡甚至发散,太小则收敛慢到让人怀疑代码写错了。全量梯度下降每次用全部样本算梯度,稳但慢;随机梯度下降每次用一个样本,快但抖;小批量梯度下降取中间,是实践中的默认选择。
# 最小闭环:划分 -> 预处理与模型打包 -> 交叉验证 -> 最终评估 from sklearn.model_selection import train_test_split, StratifiedKFold, cross_val_score from sklearn.preprocessing import StandardScaler from sklearn.pipeline import Pipeline from sklearn.linear_model import LogisticRegression from sklearn.metrics import classification_report # 1) 先划分,再做任何 fit,避免测试集信息泄漏 X_train, X_test, y_train, y_test = train_test_split( X, y, test_size=0.2, random_state=42, stratify=y) # 2) 预处理与模型打包,保证标准化只在训练折内部 fit pipe = Pipeline([ ("scaler", StandardScaler()), ("clf", LogisticRegression(max_iter=1000)) ]) # 3) 训练集内部做 5 折交叉验证,看稳定性而不是只报一个数 cv = StratifiedKFold(n_splits=5, shuffle=True, random_state=42) scores = cross_val_score(pipe, X_train, y_train, cv=cv, scoring="f1") # 4) 用全部训练集拟合,最后只在测试集上评估一次 pipe.fit(X_train, y_train) print(classification_report(y_test, pipe.predict(X_test)))这段代码的关键不在模型,而在顺序。第一步先划分,是因为任何在划分前做的 fit 都会把测试集信息带进训练过程,也就是数据泄露。参数上,test_size控制测试集比例,二八分是常见起点;random_state固定随机种子保证可复现;stratify=y做分层抽样,类别不平衡时不加它,某一类可能在测试集里一个样本都没有;max_iter是迭代上限,逻辑回归在特征尺度差异大时容易触发不收敛警告,配合标准化通常能解决;n_splits是折数,5 折和 10 折是主流;scoring指定评估指标,分类任务在类别不平衡时用f1比默认的准确率更有信息量。用 Pipeline 把标准化和模型绑在一起的用意是:交叉验证时标准化只在训练折上拟合,不会偷看验证折的分布。
4. 学习范式与算法地图:监督、无监督、强化与半监督
4.1 监督学习:分类与回归的分工
监督学习的定义特征是训练数据带标签。按标签类型分成两支:标签是离散类别就是分类,标签是连续数值就是回归。这两支用的算法有大量重叠,但评估方式完全不同——分类看准确率、精确率、召回率、F1、AUC 等,回归看均方误差、平均绝对误差、决定系数。
分类里的代表算法要能说出各自的决策形式。k 近邻靠距离度量,看最近的 k 个邻居投票;决策树靠特征阈值逐层切分,可解释性强;朴素贝叶斯基于特征条件独立假设,用贝叶斯公式反推后验概率,训练极快;逻辑回归是线性决策边界加概率输出;支持向量机找最大间隔的分界面,配核函数可以处理非线性;集成方法把多个弱模型组合,随机森林靠样本和特征的双重随机化降方差,梯度提升靠逐步拟合残差降偏差。
还有一个常被忽略的划分维度:生成式模型和判别式模型。生成式学的是联合分布再转成条件概率,朴素贝叶斯是典型;判别式直接学条件概率或决策函数,逻辑回归、支持向量机是典型。生成式在小样本上有时更稳,判别式在数据充足时通常精度更高。
4.2 无监督学习:聚类、降维与关联
无监督学习没有标签,目标是发现数据内部结构。主要分三类任务:聚类把样本分成若干组,使组内相似、组间相异,代表算法有 k 均值、层次聚类、基于密度的聚类;降维把高维数据压到低维,保留主要信息,代表方法有主成分分析、流形学习方法;关联分析找特征之间的共现规律,典型场景是购物篮分析。
无监督最大的难点是评估。没有标签就没有标准答案,k 均值可以用轮廓系数看簇内紧致度和簇间分离度,但没有一个指标能像准确率那样直接告诉你“模型好不好”。实践中往往要靠下游任务验证:把聚类结果当特征喂给监督模型,看效果是否提升;或者靠业务解释,看分出来的组是不是真的有区分意义。
k 均值还有两个实操要点:k 需要人为指定,常用肘部法或轮廓系数辅助选择;结果对初始中心敏感,所以要多次随机初始化取最好的一次。基于密度的聚类不需要预先指定簇数,能识别任意形状的簇,但对密度参数非常敏感。
4.3 半监督与强化学习:两类容易被忽略的范式
半监督学习面对的是“少量标注加大量未标注”的现实场景。标注成本高是常态,所以用未标注数据辅助训练很有价值。常见思路是自训练,先用有标签数据训一个模型,给高置信度的未标注样本打伪标签,再一起训练;另一类是协同训练,用两个不同视角的特征各训一个模型,互相给对方挑样本。
强化学习和前三类的差别最大。它没有现成的“正确输入输出对”,只有智能体、环境、状态、动作、奖励这几个要素。智能体在某状态下采取动作,环境给出新状态和奖励,目标是学出一个策略,使长期累积奖励最大。延迟奖励、试错、探索与利用的权衡是它的三个关键词。和监督学习对比:监督学习每个样本都有即时正确答案,强化学习往往要等到一段交互结束才知道结果好不好。
| 范式 | 数据是否带标签 | 学习目标 | 典型任务 | 评估方式 |
|---|---|---|---|---|
| 监督学习 | 全部带标签 | 学输入到输出的映射 | 分类、回归 | 准确率、F1、AUC、均方误差 |
| 无监督学习 | 不带标签 | 发现数据结构 | 聚类、降维、关联分析 | 轮廓系数、下游任务效果、业务解释 |
| 半监督学习 | 少量带标签加大量未标注 | 用未标注数据提升效果 | 标注成本高的分类任务 | 同监督学习,但需对比只用标注数据的基线 |
| 强化学习 | 无标签,只有奖励信号 | 学长期累积奖励最大的策略 | 序列决策、控制 | 累积奖励、策略稳定性 |
4.4 算法速查表:按任务反查模型
复习到后期,建议按“任务类型到候选算法再到易踩坑”的顺序过一遍,比按算法名背要高效得多。
| 任务 | 常见算法 | 输出形式 | 容易踩的坑 |
|---|---|---|---|
| 二分类与多分类 | 逻辑回归、决策树、朴素贝叶斯、支持向量机、随机森林、梯度提升 | 类别或类别概率 | 类别不平衡时只看准确率,模型退化成全预测多数类 |
| 回归 | 线性回归、岭回归、决策树回归、梯度提升回归 | 连续数值 | 特征尺度差异大时正则项对各权重惩罚不等 |
| 聚类 | k 均值、层次聚类、密度聚类 | 簇编号 | k 值凭感觉定,不做多次初始化 |
| 降维 | 主成分分析、流形学习 | 低维表示 | 在主成分上做解释时误当因果 |
| 序列决策 | 强化学习算法族 | 策略 | 拿监督学习的评估习惯去评价策略,忽略探索成本 |
5. 易错点清单:概念混淆、评估陷阱与流程错位
5.1 易错点:训练误差、验证误差、泛化误差混为一谈
易漏点:把训练集上的误差当成模型效果的证据,或者把交叉验证的分数当成最终泛化能力。
为什么漏:这三个词长得太像,而且初学阶段的模型往往还没到过拟合的程度,训练集和测试集的差距不明显,于是默认它们等价。一旦模型复杂度上去,或者样本量很小,差距立刻暴露。
怎么补:建立三层对应关系。训练误差对应“拟合能力”,验证误差对应“超参数选择依据”,泛化误差对应“真实场景表现”,而泛化误差只能用独立测试集估计且只能估计一次。做题时看到“调参”就想到验证集,看到“最终报告”就想到测试集,看到“欠拟合或过拟合判断”就同时看训练和验证两条曲线,这个映射固定下来就不会混。
5.2 易错点:划分顺序错了,等于给模型开了后门
易漏点:先对全量数据做标准化或缺失值填充,再划分训练集和测试集。
为什么漏:代码写起来太自然了,读进来先清洗、再建模是数据处理的本能顺序,而且这样跑出来的分数通常更高,看着舒服,没人会主动怀疑。
怎么补:把“划分”当成建模流程的第一行代码,任何依赖数据分布的变换都放在划分之后,并且只在训练集上拟合。判断标准很简单:这个变换有没有用到全局的统计量,比如均值、方差、最大最小值、类别分布?用了就是泄露。工程上的解法是把预处理和模型打包成管道,交叉验证时管道内部会自动只在训练折上拟合,第 3 章那段代码就是按这个习惯写的。
5.3 易错点:类别不平衡时,准确率会骗人
易漏点:正负样本九比一的数据集上,模型把所有样本预测成多数类,准确率 90%,被当成好模型。
为什么漏:准确率的定义太直观,而精确率、召回率、F1 需要先理解混淆矩阵,多了几个概念就有了绕过去的冲动。
怎么补:先画混淆矩阵,再按场景选指标。关心“抓全”就用召回率,比如筛查类任务漏掉一个代价很大;关心“别误报”就用精确率;两者都要就取 F1 或看 AUC,AUC 衡量的是排序能力,不受阈值和类别比例影响,但不能替代对具体阈值的讨论。做实验时永远先加一个“全预测多数类”的基线,比它好才有讨论价值。
5.4 易错点:把算法、模型、结论三者等价
易漏点:说出“我用随机森林得出这个特征最重要,所以这个特征导致了结果”。
为什么漏:算法、模型、结论在日常表述里经常被混用,而且树模型的特征重要性会给出一个具体数字,看上去很有说服力。
怎么补:三者的链条要分清。算法是训练过程,模型是训练产物,结论是从模型输出里读出的推论,中间隔着数据和假设。特征重要性反映的是“在当前数据、当前模型、当前参数下,这个特征对预测的贡献”,不等于因果,也不等于换一批数据还成立。补法是做对照:换一个模型看排名是否稳定,打乱该特征看指标掉多少,用不同随机种子重复实验看波动范围。稳定性过不了关的重要性排名,只能当线索,不能当结论。
5.5 易错点:三次浪潮的时间线与标志性成果错位
易漏点:把专家系统放到第一次浪潮,把自动定理证明放到第二次浪潮,或者记不清每次浪潮走向低谷的具体原因。
为什么漏:三次浪潮的中心思想各是一句话,背起来很快,但时间、成果、低谷原因三组信息容易串行,考试里又专挑这种交叉点出题。
怎么补:按“中心思想、技术路线、代表成果、失败原因”四栏做一张自己的表,每栏只写关键词,然后强迫自己从任意一格出发把整行讲完。比如从“有限计算能力”出发,要能推到第一次浪潮、自动推理路线、组合爆炸问题。错位通常发生在相邻两次浪潮的交界处,所以重点记第二次浪潮的起点和第一次浪潮的终点,也就是 70 年代中期到 1980 年这段空档里发生了什么。
6. 复习路线与查漏补缺:一张可以照着走的自测表
复习到这儿,最有效的动作是停止翻书,拿一张白纸把地图默出来,再对照下表逐项打勾。打不上勾的地方就是你的漏洞,比反复看笔记准得多。
| 模块 | 自测问题 | 达标标准 |
|---|---|---|
| 概念 | 能否不看资料说出智能定义的三层结构和人工智能定义的三组关键词 | 三层和三个关键词都说全,且能解释“延伸和扩展”的含义 |
| 历史 | 三次浪潮的中心思想、代表成果、低谷原因各说三条 | 能按四栏表复述,不串行 |
| 异或问题 | 为什么一条直线分不开四类交叉分布的点 | 能说出单层线性模型的局限,以及三种补救路径 |
| 技术骨架 | 数据、模型、优化三件套各包含哪些内容 | 能各举三个具体概念并说明相互关系 |
| 范式 | 四种学习范式的标签情况、目标和评估方式 | 能填出完整的对比表 |
| 算法 | 分类、回归、聚类各说出三种算法及其决策形式 | 至少有一种能讲清楚为什么适合某场景 |
| 流程 | 划分、预处理、训练、调参、评估的先后顺序 | 能指出每个环节提前或推后会导致什么后果 |
| 指标 | 准确率、精确率、召回率、F1、AUC 的适用场景 | 能针对不平衡数据说明为什么不看准确率 |
| 易错点 | 五个易错点各自的“为什么漏”和“怎么补” | 能用自己的话讲一遍,不背原文 |
如果时间紧,就按“地图优先、细节后置”的顺序复习:先保证前四栏全绿,也就是概念、历史、技术骨架、范式,这四块占分最稳,也最容易讲清楚;再把算法和指标补上,这两块靠对比表记忆最省力;最后过易错点,它本质上是前几栏的反面清单。
还有一种查漏补缺的方法更狠但更有效:找一道综合题,不写答案,只写解题需要调用哪些知识点,写成一条链。比如“给一份不平衡的二分类数据,设计完整建模流程”,链条应该是:分层划分、训练集内部交叉验证、预处理管道化、基线模型、按 F1 选模型、混淆矩阵分析、阈值调整、测试集只评一次。链条断在哪一环,那一环对应的章节就回去重读。
# 查漏补缺专用:用一条链检查流程意识,而不是检查模型精度 steps = [ "分层划分训练集与测试集", "训练集内部切出验证折", "预处理只在训练折上 fit", "先跑全预测多数类的基线", "按场景选主指标(F1 或召回)", "在验证折上选超参数", "用全部训练集重新拟合", "测试集只评估一次并留档", ] for i, s in enumerate(steps, 1): print(i, s) # 逐条对照自己的实验代码,缺哪一步就补哪一步这段代码没有模型,只有流程清单,作用是逼自己把顺序念一遍。念的时候如果某一步说不出“为什么必须在此时”,那就是理解缺口,而不是记忆缺口。
我自己的血泪经验是:第一遍学的时候觉得概念都懂,直到做综合实验时把标准化写在了划分前面,分数虚高得离谱,被同学一句“你测试集的均值参与训练了”点破。从那以后我每次开新实验,都强制先写划分那行代码,再写任何 fit。希望帮到你。
本文还有配套的精品资源,点击获取