机器学习基础核心:模型训练流程、三大范式与过拟合欠拟合

发布时间:2026/11/4 8:41:56
机器学习基础核心:模型训练流程、三大范式与过拟合欠拟合 帮学生改人工智能课程大作业看多了代码能跑、指标很高、一问却讲不清楚的案例后我越发觉得很多人学机器学习不是从“它到底要解决什么问题”开始的而是从“怎么把代码跑起来”开始的。后者当然不算错但顺序一但没有理顺后面所有细节都会变成一堆散装概念期末复习时尤其痛苦。这篇文章就是把机器学习基础篇里那条主线抽出来讲清楚它和人工智能是什么关系、一个模型到底怎么被训练出来、有监督无监督分别是什么意思、过拟合和欠拟合是怎么回事以及学完这些之后课程考试和大作业应该怎么安排。适合三类人读正在为机器学习期末复习的大学生、要交人工智能大作业却不知从哪下手的新手还有刷了不少入门视频但始终觉得隔着一层窗户纸的自学者。不涉及太高深的公式推导但会让你在动手之前先把地图在脑子里铺开。1. 先厘清一层关系机器学习在人工智能里扮演什么角色很多新手最容易犯的一个错是把人工智能、机器学习、深度学习这三个词当成同义词混着用。我见过不少项目汇报PPT把“基于人工智能大作业”写成“用深度学习做了一个机器学习模型”这个表述其实很乱。要理解机器学习基础篇第一件事就是把这三层关系摆正。1.1 人工智能是个大目标机器学习只是实现路径之一人工智能是研究“如何让机器完成那些原本需要人类智能才能完成的任务”的领域。它是一个宏大的目标集合比如让机器会说话、会看、会推理、会规划。而机器学习是当前实现这个目标最主流的一条路径核心思想是不再由人手工编写规则而是让机器从大量数据中自己归纳规律。我习惯用一个类比人工智能像是一个“想考高分的学生”机器学习是“通过大量刷题、归纳出解题套路”的学习方法。当然这个学生还有其他打法比如符号主义、知识图谱、专家系统那一路相当于靠背教科书和公式去解题。二者没有绝对优劣但在近十年里机器学习这条“数据驱动”的打法明显赢在了绝大多数场景上。有朋友问过我agent到底是什么从一个更宽泛的角度说agent属于人工智能体系里的一个重要概念指的是能够感知环境并采取行动的主体但它在机器学习基础篇里并不是核心不用被这个概念分散注意力。1.2 传统编程与机器学习的差别规则由谁来决定把传统编程和机器学习放在一起对比你会发现它们解决问题的方向是反过来的。传统编程是先有规则再处理数据最后出结果。比如写一个垃圾短信过滤程序你会这样做判断短信里有没有“中奖”“点击链接”“转账”这些关键词命中就拦截。程序逻辑很清晰但它很僵硬——诈骗短信换了说法你就得继续加规则规则越堆越长最终维护成本爆炸。机器学习的思路完全不同你收集一万条短信每条都标注好“垃圾”或“正常”把这些数据丢给算法算法自动找出哪些字词组合更容易出现在垃圾短信里训练完成后你得到的是一个“模型”。这个模型本质上是数据里归纳出来的一套判断规则只是这套规则复杂到无法用几行if-else写出来而已。更关键的是当出现新的诈骗话术时只要重新往标注数据里补充样本、再做一次训练模型自己就会跟着变化。从“人写规则”到“机器从数据里学规则”这个转变解决了现实里大量“规则说不清楚”的任务比如识别一张照片里是不是猫、判断一段评论是正面还是负面、预测用户明天会不会下单。这些任务中人类能轻松做出判断却完全说不出自己依据的精确规则恰恰是机器学习出手的地方。1.3 数据、模型、算法三要素里最被低估的是数据机器学习体系里有一句老话模型的上限由数据决定算法只是逼近这个上限。这句话怎么理解数据决定了模型能从什么信息里学习算法只是想办法把这份信息榨干。如果你的数据里根本没有“促销活动”这一条记录模型再怎么调参也学不会预测促销对销量的影响。反过来数据足够干净、特征足够丰富哪怕用最简单的线性回归效果也可能吊打硬凑出来的深度网络。所以我在基础篇里会反复强调不要一上来就迷信复杂模型先检查你手里的数据。数据里带偏见模型就学偏见数据里有脏值模型就学脏值。很多人以为人工智能“偏见”是模型的错其实大部分时候是训练数据本身的分布问题——样本本身就不均衡或者标注时本身就不一致模型只是忠实地复述了这些偏差。2. 把一次模型训练拆开看数据、特征、切分、评估很多新手在sklearn里跑通fit和predict之后就以为自己“会训练模型”了。但真正上台面的大作业里训练只是一小步完整流程是数据清洗、特征工程、数据集划分、模型训练、评估调参最后才是预测。哪一步都不许省。2.1 进门第一关数据清洗不是小事拿到一份原始数据先别急着喂模型先干三件事——看形状、看缺失、看分布。首先要看数据的规模和类型判断每列是数值还是文本有没有空值。然后处理缺失值常见做法是直接删除缺失比例过高的行或者用中位数、均值、众数填补文本特征可以用“未知”填充。很多新手不假思索地直接drop掉所有含空值的行结果样本量少了一半模型自然学不动。再说异常值这里最忌一刀切。我见过有同学看到价格字段里出现负值二话不说全部删掉结果那其实是原始系统里另一个字段的错误标记正确做法是找到对应关系修正。反过来高净值客户的年薪可能是普通人百倍看起来像异常值但你把它删了模型就学不到长尾分布。判断异常值是测量错误还是真实极端情况一定要结合业务场景不能只靠统计学。最后是量纲问题。如果特征里有“年龄”和“年收入”两列年龄范围是0到100收入范围可能是0到百万级那很多基于距离的算法比如K近邻、SVM、线性回归就会被数值大的特征完全主导。解决办法是标准化或归一化把不同尺度拉平到同一量级。这里有个细节树模型决策树、随机森林不受量纲影响因为它们做的是切分而非距离计算所以是否需要标准化取决于你选了什么算法。2.2 特征工程把原始字段变成模型听得懂的语言特征工程说白了就是想办法让模型从数据里“看到”更多有效信号。原始字段往往不能直接表达规律需要你人为加工。举一个常见的例子预测用户是否会流失。原始数据里有“注册时间”这个时间字段如果你直接把它当数值喂给模型模型只能学到一个毫秒级时间戳基本毫无意义。但如果你把时间戳拆开衍生出“注册天数”“最近7天是否登录”“平均每天使用时长”模型立刻就能感知到用户活跃度的差异。这就是特征工程的价值——它不改变算法但改变了模型能看到的世界。还有一个很实用的原则一个特征是否有用看它能否让“明明是同一类问题的样本”在特征空间里更靠近。判定技巧是先做相关性分析剔除掉强相关的冗余特征再用业务直觉尝试交叉特征比如“人均面积面积/卧室数”“点击率点击量/曝光量”。不需要一开始就追求几十个特征先把信息密度高的核心特征做好比堆数量更有效。2.3 数据集的三种切分相当于考试的“真题/模拟题/考题”训练集、验证集、测试集这三个概念是机器学习基础篇里绕不开的考点但我发现很多人根本没有认真理解它们背后的防作弊思想。可以把训练集当成平时做作业的题目模型从这些数据里学习验证集当成考前模拟卷用来调超参数、选择模型测试集则是最终高考只能最后考一次分数才是真实的模型水平。用途训练集验证集测试集模型是否看到过是用于学习参数否但会用于调参否最后才用一次典型占比60%-70%15%-20%15%-20%常见操作训练、计算梯度选择超参数、比较模型最终评估性能很多新手只划分训练集和测试集调参时反复看测试集结果这等于拿着答案复习最终“成绩”必然虚高。测试集一旦被反复使用信息就会泄漏进模型的选择过程上线后真实性能通常一落千丈这是数据泄漏最常见的形态。还有两个容易忽略的细节。一是划分时建议采用分层采样如果二分类任务的样本类别比例是9:1那么训练集和测试集里也最好保持9:1否则可能出现训练集里全是多数类、测试集里全是少数类的极端情况。二是时间序列数据不能随机划分必须按时间先后切因为过去预测未来才是真实场景随机划分等于让模型偷看未来。2.4 训练评估闭环损失函数与评价指标模型训练过程听上去很玄本质其实很简单定义一个损失函数来衡量预测和真实答案的差距然后用优化算法不断调整模型参数让这个差距越来越小。如果预测房价损失可以是预测值和真实值差的平方这叫均方误差如果是分类任务常用交叉熵损失。参数学习常靠梯度下降把损失函数想象成一座山谷你在山顶往下走梯度方向是坡度最陡的方向每一次更新就是往低处迈一步直到走不动为止。评估阶段则是另一个容易被忽略的重灾区。讲个最常见的问题一个“预测明天是否下雨”的模型如果某地只有2%的日子下雨那么一个永远预测“不下雨”的“聪明”模型也能拿到98%的准确率——但它是废物。所以准确率并不是唯一标准尤其是类别不均衡时要看精确率、召回率、F1值。精确率关注“我预测下雨的日子里有几次真下雨了”召回率关注“真正下雨的日子里有几次被我抓住了”你关心哪个取决于场景漏报一次洪灾的代价远高于虚报一次。3. 三类学习任务只知道监督学习是不够的机器学习基础篇里的“三大范式”划分几乎贯穿所有教材和期末考点有监督学习、无监督学习、强化学习。它们的核心差异在于训练时使用的信号不同而不是算法名称听起来有多高级。3.1 有监督学习给答案的练习册有监督学习指的是训练数据里每个样本都带着正确答案标签模型需要学习从输入到标签的映射。比如一组学生的出勤率、作业成绩、平时成绩预测期末会不会挂科每条样本都有“挂了/没挂”的真实标签。这是目前应用最成熟、也最贴近课程大作业的一类。子任务分成两种。一种是回归预测连续值比如房价、气温、销量另一种是分类预测离散类别比如垃圾邮件判断、用户是否流失。基础篇里常出现的算法有线性回归、逻辑回归、决策树、随机森林、K近邻、朴素贝叶斯、SVM每一种算法背后的建模假设不同但在入门阶段你不需要逐个深入原理先建立“知道它适合处理什么输入输出、有什么优缺点”的意识就赢了。3.2 无监督学习没有答案也要找结构无监督学习训练时根本没有标签只有一堆数据样本它要做的是发现数据内部的结构。两个最典型的任务是聚类和降维。聚类最经典的算法是K-means它的思路特别直觉先在数据里随机挑K个“中心点”把每个样本分给离它最近的中心点然后重新计算每个簇的中心位置再重新分配样本如此反复迭代直到中心点不再移动。K值怎么选可以画不同K值下的总距离平方和找一个明显的拐点也叫肘部法则。这个算法的缺点是初始中心点选择会影响结果所以实际中常常要用k-means来初始化。降维的代表是PCA通过找出数据方差最大的投影方向把高维数据压到更低的维度上。降维的作用不是让你“少看几个字段”而是可视化高维数据、压缩存储、加快后续算法运行。举个例子用户画像数据有几百个特征时没法画图用PCA降到二维平面就能直观观察用户群体分布。3.3 强化学习从环境回报里学策略强化学习跟前两种有本质区别它没有静态的数据集而是让一个智能体在环境里不断尝试动作、获取奖励或惩罚目标是最大化长期累计奖励。你可以把它理解成“无人监督地自学成才”下棋输了就调整策略机器人走路摔了就换姿势。一个容易被误解的地方是强化学习不等于“没有标签”它的标签来自环境反馈只是这个反馈不是直接告诉模型正确答案而是告诉它“你这一步做得有多好”。在课程和基础篇里你只需要能区分清楚有监督是“给你答案学”、无监督是“没有答案找结构”、强化学习是“边试边学求奖励”。另外近年大火的半监督学习、自监督学习预训练是从另外两个维度对这个体系做的延展入门阶段知道它们的存在即可。下表可以把三个范式放在一起对比考前复盘会非常方便维度有监督学习无监督学习强化学习训练信号有标注标签无标签环境奖励或惩罚典型任务分类、回归聚类、降维游戏、控制、决策代表性思路线性模型、树模型K-means、PCAQ-learning、策略梯度一句话记忆最小化预测与标签的差找出数据里的分组与结构最大化累积奖励4. 过拟合和欠拟合模型能力的两条边界模型训练完你会立刻遇到两种诡异现象训练集上表现极好一到测试集就垮掉或者训练集上分数就一直上不去。前者是过拟合后者是欠拟合。这两个概念不仅是期末考点更是你后续所有调参工作都要围绕的核心矛盾。4.1 偏差与方差从物理世界的直觉说起把偏差和方差想成射箭。欠拟合对应高偏差每次射箭都偏在同一个方向离靶心很远说明你的模型系统性理解错了太简单学不动数据里的规律。过拟合对应高方差箭落点忽东忽西平均值可能还行但单次表现极不稳定说明模型把训练数据里那些“纯粹偶然的噪声”也当成了规律。训练集上表现差通常意味着欠拟合也就是模型复杂度不够。比如用一条直线去拟合带明显波动趋势的曲线无论怎么调权重都无能为力。而训练集分数很高、验证集分数明显下降就是过拟合的经典信号——模型记住了训练集的个性而不是共性。4.2 过拟合长什么样拿高阶多项式举例用一个特别直观的例子说明过拟合。假设你手里有20个散点样本真实规律是一个二次曲线但你用九次多项式去拟合结果必然是把每个点都穿过去了训练集误差几乎为零。可这时候你把新样本拿来预测预测值会非常离谱因为九次多项式为了穿过所有点已经大幅扭曲成波浪形完全脱离真实的平滑曲线。决策树也存在同样的问题如果你不限制树的深度也不设置叶子节点最小样本数它就能不断切分直到每个训练样本都落在独立的一片叶子里训练集准确率拉到100%不是难事。问题是这样一棵树在新样本上几乎没有泛化能力。所以判断一个模型是否过拟合有一条非常好用的经验先看训练损失再看验证损失训练损失持续下降而验证损失开始反弹就赶紧停止增加模型复杂度。4.3 缓解手段从简到繁别一上来就上大模型面对过拟合有效手段不少但重点是顺序。我建议按“代价从小到大”来试而不是一听过拟合就马上换更复杂的模型。简化模型降低多项式次数、减少树的深度、限制叶子节点数用更小的模型容量去交换泛化能力。加正则化L1正则倾向于把不重要的特征权重压缩成零L2正则让权重整体变小通俗讲就是给模型“减负”不许它过于自信。增加数据更多样本、数据增强图像翻转、加噪声等。数据是最有效的正则化手段没有之一。早停训练过程中实时监控验证集损失一旦验证损失不再下降或开始上升立刻停止训练。交叉验证把训练集切成K份轮流拿其中一份做验证其余做训练最终取K次结果的平均。它能降低“某一次数据划分恰好很走运”造成的评估偏差。有一个坑我必须单独拿出来讲交叉验证分数不是越高越好它的真正价值在于稳定性。如果一个模型在第一折上跑到95%第二折却只有75%说明它在某些数据分区上完全不稳定这时候你要担心的不是平均分而是为什么波动那么大。还有绝对不要在测试集上反复做特征选择或调参否则测试集就变成了第二个验证集最终分数会高得虚假上线时原形毕露。5. 从“学过”到“会做”课程、考试和大作业怎么安排基础篇说到底要落地到两件事期末能过、大作业能交明白。我根据带学生和辅导课程的经验把这块讲透一点。5.1 先读懂大多数课程的考察逻辑市面上常见的人工智能导论、机器学习课程期末考察无非三类第一类是概念辨析比如区分监督与无监督、判断过拟合与欠拟合、解释偏差和方差的含义第二类是算法过程题比如让你写出K-means的一次迭代步骤、计算决策树的信息增益、用贝叶斯公式求后验概率第三类是综合设计题给一个业务场景让你选择合适的模型并说明理由。备考资料上我比较推荐“一本教材一门视频课”的组合。教材首选周志华的《机器学习》即“西瓜书”它的公式推导和知识体系非常完整配合“图解机器学习算法”这类工具书看算法可视化视频课程我比较推荐吴恩达的经典课程它对数学基础薄弱的人极度友好。另一个容易被忽略的是平台练习比如头歌这类在线教学平台上面有不少和期末题型接近的实操题考前刷一圈手感和记忆都会有明显提升。5.2 大作业和入门项目一条可以直接照搬的启动路线很多同学面对“人工智能大作业”时最痛苦的不是不会写代码而是不知道该做什么、从哪里开始。这里给出一个完整的启动路线按顺序执行即可。第一步选一个表格类的结构化数据集而不是一上来做图像或文本。经典选项有Kaggle上的泰坦尼克号生存预测、房价预测、经典鸢尾花分类。选表格数据的理由是它最贴近基础篇所学的内容不涉及深度学习那些工程复杂度。第二步用sklearn写一个最朴素的基线模型。比如逻辑回归先不看分数先把整条pipeline跑通读取数据、划分训练测试集、训练、预测、输出准确率。这个baseline的意义是打个底子后续所有改动都有参照。第三步做一轮特征工程。看看数据集里哪些字段是真正有预测力的把时间拆开、把类别变量做编码、把数值量纲标准化。第四步拿多个模型做对比。逻辑回归、决策树、随机森林、K近邻各跑一遍用交叉验证比较平均分数再选最好的模型做超参数调优。第五步给结果做分析和可视化写报告。大作业报告不用堆代码重点是说明每一步为什么这么选模型有哪些局限。这五步走下来大作业的“过程完整度”已经超过大多数人。记住一个心态能跑通只是开始能解释清楚每一步为什么这么做才是大作业真正想考察的能力。5.3 三个最常见的学习误区误区一觉得数学必须很好才能学机器学习。说实话入门阶段你真正需要的数学只有求导、矩阵乘法、基本概率论高中的底子加大学公共课就已经够用了。遇到复杂的推导要用的时候再针对性地补不需要一口气学完微积分线代概率统计再动手。误区二一上来就研究深度学习和大模型。我理解心情看到别人用PyTorch跑出图像模型很酷但深度学习是机器学习的一个子集背后仍是基础篇里讲的训练闭环。你连训练集测试集划分、过拟合都没吃透直接上深度网络只会更晕。建议先把传统模型用熟再进入深度学习的门槛你会发现自己其实已经站在半山腰了。误区三只看不写、只抄不改。机器学习的动手性极强光看视频没有用甚至会形成“我已经懂了”的错觉。写代码时一定要自己动手改参数、调特征、观察分数变化这个过程才是真正建立直觉的路径。最后顺带提一句人工智能相关岗位的热度这两年一直很高从人工智能训练师到算法工程师机器学习基础是这些岗位共同的能力底座。基础不牢后面面试也好、实际业务也好都会处处卡壳。最后分享一个我比较受用的习惯学任何一个算法之前先在本子上回答三个问题——输入是什么输出是什么训练时它用什么信号来改自己能答出来说明你真的懂了答不出来就算代码照抄跑通也只是把别人的结论搬过来。别怕慢基础篇打牢一点后面学深度学习和大模型时你会发现自己越跑越快。

关于本文作者

来自尧图内容编辑团队

尧图内容编辑团队 内容团队

尧图内容编辑团队

本文由尧图网络内容编辑团队执笔。团队由资深项目经理、前端工程师与设计师组成,所有内容均来自亲手交付的真实项目,先讲清问题、再给出可落地的解法。尧图深耕北京网站建设十年,服务过京华建材集团、智造科技等各行业客户,把一线经验沉淀为可复用的行业观察。

  • 十年建站经验,覆盖建材、制造、服务、文创等
  • 项目经理把关选题与事实准确性
  • 工程师与设计师联合撰写专业细节
  • 统一编辑规范,保证文风与排版一致
  • 每月复盘转化数据,迭代选题方向

延伸阅读

相关资讯与近期热门内容

深度阅读推荐

建站决策前值得细读的三篇

网站改版的5个关键决策
2024-08-12

网站改版的5个关键决策

什么时候该改版、改到什么程度、如何避免流量掉光,京华建材集团改版复盘给出答案。

获取专属建站方案

看完文章,把您的行业与预算告诉我们,免费获取一份量身定制的官网建设方案与报价。

立即免费咨询