You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何让文本分类模型主动过拟合?附过拟合示例构建方法

直观展示模型过拟合与泛化失效的实验分享

最近我特意设计了一个实验,用来演示模型在测试集上表现优异,但完全没法适配未来新数据的过拟合场景,步骤和结果如下:

数据集拆分

我把手头的新闻文本数据集拆成了三个独立集合:

  • 训练集:用来训练模型基础能力
  • 测试集:用来做参数调优的参考(故意没做交叉验证,就是为了制造过拟合)
  • 未来验证集:专门模拟“完全没见过的新数据”,用来检验模型泛化能力

模型与参数调优流程

  1. 用CountVectorizer完成文本到数值特征的转换,这是文本分类的基础步骤
  2. 搭配LogisticRegression做分类任务,然后用无交叉验证的网格搜索来调参:
    • 针对CountVectorizer,搜索min_df(忽略出现频次过低的词)、max_df(忽略出现频次过高的词)等参数
    • 针对LogisticRegression,搜索C(正则化强度)、fit_intercept(是否拟合截距)、tol(收敛阈值)等参数

实验结果:过拟合的典型表现

网格搜索结束后,我得到了一组在测试集上得分极高的参数组合,看起来模型性能完美。但当我把这个“最优模型”放到未来验证集上运行时,得分直接暴跌——和测试集的表现差了好几个档次,完全暴露了它过拟合的问题:模型只是记住了测试集里的特定模式和噪声,根本没学到文本数据的通用规律,自然没法应对真正的新数据。

背后的原因

问题就出在无交叉验证的网格搜索上:这种调参方式相当于把测试集当成了训练的一部分,反复根据测试集的表现调整参数,模型逐渐“适配”了测试集的特有属性,而不是学习泛化能力。这也是很多新手容易踩的坑:只看测试集得分,忽略了真正的泛化能力检验。


内容的提问来源于stack exchange,提问作者rolele

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 09:21:00