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

技术问询:划分训练集与测试集前后删除重复行哪种更合理?

训练/测试集划分前后删除重复行的最佳实践

没有绝对的“正确”选择,核心得看你的重复行是怎么来的,以及你想让模型学到什么。下面分场景说清楚:

先删重复,再划分数据集

  • 适用情况:重复行是数据采集/录入时的冗余(比如爬虫重复抓取同一条数据、手动输入时的重复提交),这些重复本身不带任何有用信息。
  • 为什么这么做:
    • 彻底避免训练集和测试集出现完全一样的样本——要是划分后才删,万一测试集里留着训练集见过的重复样本,模型评估出来的准确率会虚高,根本反映不了真实泛化能力。
    • 减少数据量,节省训练时间,尤其大数据集里冗余重复多的时候。
  • 注意:如果重复行是业务上的合理重复(比如同一个用户连续三次提交相同的订单,这种重复本身就是用户行为模式的一部分),绝对不能提前删,不然模型就学不到这种真实场景里的规律。

先划分,再分别删各自的重复行

  • 适用情况:
    1. 你提到的「去除标签后特征相同」的情况——这种其实不算传统意义的重复(标签可能不一样),属于数据里的矛盾样本,得先划分再处理,避免训练集和测试集之间的信息干扰。
    2. 重复行是有业务意义的,你需要让模型学习这种重复模式(比如用户高频重复点击某类商品)。
  • 为什么这么做:
    • 严格保证训练集和测试集的独立性,不会因为提前删重复导致测试集的样本泄露到训练集里。
    • 训练集里的重复行可以让模型更好拟合真实数据的分布,毕竟真实场景里本来就存在重复行为。
  • 注意:如果划分前就有大量「特征+标签完全一致」的冗余重复,划分后再删训练集里的重复,可能会让模型因为见过太多相同样本而过拟合,这时候还是建议先清掉这类无意义重复再划分。

总结一下

  1. 先判断重复行的性质:是无意义的冗余垃圾,还是有业务价值的重复模式。
  2. 无意义冗余:先删重复再划分,杜绝数据泄露和虚高评估。
  3. 有意义重复:先划分,再分别清理训练集、测试集内部的冗余重复(别跨集删),保留训练集里的重复模式供模型学习。
  4. 遇到「特征相同但标签不同」的矛盾样本,别直接当重复删,先查数据是不是录错了,或者根据业务逻辑决定怎么处理(比如取众数标签、删除这类样本)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.27 07:50:03