为什么模型评分很高,却依然没有实用价值?
如果用模型学习过的同一批数据来测试,它即使得分很高,也可能毫无用处,因为它可能只是记住了这些例子,而没有学到能应用于新客户的规律。
设想一家虚构的餐食食材包订阅企业“潘特里盒子”,有 120 名员工。分析师科菲建立了一个模型,预测哪些订阅用户下个月会取消订阅,让客户挽留团队优先联系他们。他向客户业务负责人希安汇报:'模型 A:准确率 99%!!使用 85 列数据,包括客户 ID、邮政编码、每次历史订单的日期。模型 B(简单,2 列):训练集准确率 69%,测试集 68%。模型 A 在上个月新数据上的准确率:71%。每月约有 30% 的客户取消订阅。' 希安想知道该用哪个模型,以及为什么那个准确率达 99% 的模型上个月表现那么差。
| 模型 | 训练准确率 | 测试准确性 | 它提出了什么建议 |
|---|---|---|---|
| 模型 A,85 列 | 99% | 71% | 过拟合:记住了训练数据中的客户 |
| 模型 B,2 列 | 69% | 68% | 欠拟合:仅略好于始终猜测“留下” |
如何逐步诊断过拟合和欠拟合?
要诊断这两类问题,需比较模型在训练数据和从未见过的数据上的表现,再将两者与一个简单基准进行比较。这三个数值呈现的规律能告诉你存在的是哪一类问题。
1. 留出部分数据
训练前,先留出一组模型从未见过的测试数据。用模型学习过的数据来测试模型,是一个基本错误,因为模型只需重复见过的内容就能获得满分,却没有任何预测能力。
2. 设定基准
算一算最简单的规则能得多少分。在食品盒公司,每月约有 70% 的客户会留下,因此把所有客户都预测为'留下',得分就能达到约 70%。有用的模型必须明显优于这个水平。
3. 比较训练与测试
训练集得分高、测试集得分低得多,表明存在过拟合。两者得分都低且接近基线,表明存在欠拟合。两者得分相近且都较高,说明拟合较为合理。
4. 检查稳定性
交叉验证会使用训练数据的不同子集,多次训练和测试模型,再对结果取平均值。如果不同子集的得分波动很大,说明模型不够稳健。
5. 根据问题选择相应的解决办法
过拟合与欠拟合需要相反的解决方法,因此在做任何调整之前,先确定问题是什么。
如何解决过拟合和欠拟合问题?
要解决过拟合,可以简化模型,或让数据更具代表性;要解决欠拟合,可以为模型提供更多有用信息,或提高模型的灵活性。简单来说:
针对过拟合
删除用于识别个人而非反映行为的列,例如客户编号;使用能够代表实际待评分客户的训练数据;优先选择更简单的模型;并采用正则化,在训练过程中惩罚复杂度,让模型更倾向于简单的模式。
针对欠拟合
添加可能与取消订购有关的特征,例如跳过配送、近期投诉或价格变动;允许使用更灵活的模型;并检查数据是否存在过多噪声或错误标签,以至于任何模型都无法从中学习。
两者均适用
在最后评估之前,不要使用测试集。如果反复根据测试集调整模型,测试集的信息就会泄漏到模型中,测试分数也就无法再如实反映模型表现。
基于较差做法和改进后做法的客户流失模型决策分别是什么样的?
不可靠的决策会选择模型 A,因为 99% 是幻灯片上最大的数字。但在实际使用中,它只比猜测略好一点,客户挽留团队也因此把电话浪费在了根本不会流失的客户身上。
改进后的决策是:'模型 A 记住了具体客户:它包含客户 ID 和准确的订单日期,因此它识别出的是以前见过的人,而不是学会了人们为什么取消订阅。模型 B 过于简单,无法超过 70% 的基准水平。下一步:模型 C 使用六项行为特征,包括上个月跳过的配送次数、客服工单,以及距上次更换菜单的周数,同时移除客户 ID 和邮政编码。目标:在客户留存团队依赖它之前,通过五折交叉验证,确认测试得分明显高于 70%,且与训练得分的差距在几个百分点以内。' 现在,希安知道了得分 99% 的模型为什么失败,也知道了合格的模型应达到什么标准。
如何检查模型既没有过拟合,也没有欠拟合?
检查模型时,确认测试得分与训练得分接近、明显优于基准,并且在交叉验证的各折以及新一个月的数据上表现稳定。还要检查是否有某个特征只有在结果发生后才能获知,例如取消原因。这属于数据泄漏,会让这两项得分看起来都优于模型的实际水平。
处理过拟合和欠拟合时,有哪些常见错误?
最常见的错误是把训练准确率当作实际应用中的准确率来报告。其他错误包括:忽略基准表现,导致 70% 看起来很出色,实际上靠猜也能达到;为了提高分数而加入所有可用列;调参时偷看测试集;以及把过拟合当成增加复杂度的理由,而通常需要的恰恰相反。
这节课在 Tosheo.ai 中属于哪一部分?
本课属于机器学习分类,接在机器学习课程的模型入门课之后。在 Tosheo.ai 中,实操任务会给你一份虚构的模型报告,让你分析问题,评分反馈会检查你是否在建议修复方案前比较了训练结果、测试结果和基准结果。这是一门帮助你与数据团队协作的职业基础课;选修编程学习路径涵盖用代码训练和评估模型的内容。
来源与范围
Google 机器学习速成课程:过拟合(核查于 19 October 2026) ↗