当前位置:首页 > 热点 > 注意这个数据科学错误,避免30多个小时的无用功……

注意这个数据科学错误,避免30多个小时的无用功……

2026-11-14 [知识] 来源:妇人之仁网

本文转载自公众号“读芯术”(ID:AI_Discovery)

下面这个模型在一项图像识别竞赛中经过了数天训练。这是个相对比较简单的模型,其AUC最初是0.9,符合比赛将AUC控制在0到1之间的要求,除此之外我对比赛也没有太高的期望。也正因如此,当我照例评估重量模型,对模型进行训练时注意,看到如下结果大吃一惊:

在当时比赛的实时排行榜中,排名首位的AUC值为0.965,而我当时的有效AUC值达到了0.9968,离获胜拿奖仅有一步之遥,在一百多个队伍中遥遥领先,让我难以置信。深度学习之神好像是在这天点化了我,让我在权重初始化上取得了这样傲人的成绩,简直像有了优化超能力一样这个厉害。

这个结果好的让人难以置信。虽然我很想相信模型给出的数据,但我仍持有一丝怀疑。我一次又一次地对模型预测进行评估,起初测试了部分数据,然后测试了全部数据。结果是肯定的:验证分数接近完美。

因此我确信自己找到了获胜的捷径,准备拿下第一名,带着激动的心情,我赶忙将模型对测试数据的预测提交了数据。奖金唾手可得。

而比赛分数令人震惊。

0.5分。即便是随便提交一个预测,或者是什么都不做仅仅是把比赛提供的样本文件提交都能拿到0.5分。我当时获得的魔法般的顿悟也就比瞎猜强了一点。

结果出来之后,我花了30多个小时,复盘数据,试图找出哪里出了问题,整个人精疲力竭。预测中肯定那儿除了问题,可能是科学文件传错了。

然而,这30个小时也不过是白费功夫。我花了九牛二虎之力更正结果,但预测结果值仍然很低。

到底是哪里出问题了?

答案是:数据泄露。数据泄露是个很简单的概念,但我就直直地走进了它的陷阱。在模型训练中,我的编程没有任何问题,模型也正确依照测试数据进行了训练,问题出现在了不易发现的地方错误。

简而言之,当模型遇到不该遇到的情况时,就会发生数据泄漏。在比赛中,我已经在多个会话中训练了模型,也就是说,我将从上一个会话中加载模型权重,训练模型并保存最佳性能的权重。由于计算时间限制,训练在多个会话中进行。

但是,在每个会话中,我都会重新运行整个代码,包括将数据随机分为训练和验,避证集的代码,因此每次培训的训练集并不相同。为避免这种情况,可以设置一个种子来划分训练/验证组,而这是我(非常)没有提前采取的措施。

尽管每次的训练数据都不同,但模型的权重(它所了解的信息)却被传递了下来。因此,经过足够的培训后,该模型已被暴露给整个数据集。

由于机器学习模型本身具有惰免3性,所以该模型会放弃学习,转而对数据进行记忆,这对没有感情的网络来说非常简单,也就导致这种现象发生过很多次。因此,面对从未见过的数据时,这个模型就无能为力了。

由于该模型已经在之前的训练中见过验证数据,所以才能得到近乎完美的0.9968,让我误以为这就是模型本身的能力。如果回忆一下模型0多早期的性能,想一想为什么验证分数会高于训练分数,就会明白这其实是一个相当奇怪且罕见的现象。

所以,大家在接下来的每一个实践中都要牢记这重要的一课:如果结果太过完美,让人不敢相信,那十有八九这个结果有问题。(这个方法在鉴别数据泄露中尤其重要。)

这是一种数据泄露,其他类型的泄露包括:

预个小处理。如果在拆分之前处理数据,那可能会导致信息泄漏。例如,如果你在整个数据集中使用均值之类的方法,则训练集将包含有关验证集的数据,反之亦然。 时间。如果在预测问题涉及到了时间,那简单的随机训练/验证拆分无效。也就是说,如果要基于A和B预测C,则应在[A,B]→C上训练模型,而不要像[时的C,A]→B那样训练。这是因为知道了之后的数据点C的值,模型就可以预测之前的数据点B。

在事情太过完美的时候三思是个好习惯,但也要注意其中微妙的细节。比如说,分数增加的幅度很大,但不一定是很奇怪的现象;而当模型对测试数据进行预测时,其性能又很差劲。

实际上,最好的办法是注意以任何方式分割数无用据的目的,以便将它们分为训练/验证/测试集,并尽早进行。此外,设置种子是强有力的保障。

从更开放的角度上讲,数据泄漏可能是有益的。如果模型看到了不应该看到的数据,但是看到的数据有助于提升其概括能力,帮助学习,那么数据泄漏是有好处的。

例如,Kaggle的排名系统。该系统由一个公共排行榜和一功…个私人排行榜组成。在比赛结束之前,用户可以访问所有训练内容和部分测试内容(在该系统中可访问25%的内容,用于确定公共排行榜上的位置)。但是,比赛结束后,测试内容的另75%将用于评估模型,以确定最终私人排行榜的排位。

不过,如果我们能利用这25%的测试内容来提高私人排行榜上分数,这就算是数据注意泄露。

在Kaggle竞赛中,相对常见的做法是在了解其他25%测试数据的情况下对75%测试数据进行某种预处理。比如,可以采用PCA来降低尺寸。这通常都会提升模型性能,因为数据一般都是越多越好。

我们在寻找提高数据连接性方法的道路上应永不停歇;一般来说,永远不要将任何复杂的事件标记为纯粹的坏(这个或好)事件。

总而言之,数据科学家应致力于为模型提供更多的数据,但要把不同用处的数据区分开。此外,为了不让希望破灭,你应该消极地编程。毕竟,只有预期了最差的结果,面对问题才能淡定处理,面对成功也能欣喜若狂。

 

(责任编辑:用户研究)

推荐文章
  • 如何通过云计算集成提高移动应用程序的性能

    如何通过云计算集成提高移动应用程序的性能 由于全球用户对数字平台的高需求,移动应用程序开发已经增加了十倍。根据一项调查,移动应用程序的全球用户目前已经超过30亿,这是大多数企业希望利用的地方。 移动应用软件可以帮助企业在移动设备方面吸引更多的...[详细]
  • 标签: 特斯拉 xAI 马斯克 财报

    标签: 特斯拉 xAI 马斯克 财报 云梦级1月29日云梦级消息,特斯拉公司今天发布了 2025 年第四季度及全年财报。财报显示,按照美国通用会计准则 (GAAP) 计算,特斯拉第四季度总营收为 249.01 亿美元(现汇率约合 1734...[详细]
  • 标签: 海航控股 海南航空 辽宁方大集团 SKYTRAX五星航空

    标签: 海航控股 海南航空 辽宁方大集团 SKYTRAX五星航空 云梦级4月18日云梦级消息,海航控股披露2025年度报告,全年实现营业收入684.71亿元,同比提升4.96%;归母净利润19.80亿元,扣非后净利润9.30亿元,双双转正。 这份“双正”成绩单含金量...[详细]
  • 标签: 灵光 蚂蚁集团 AI助手 全模态

    标签: 灵光 蚂蚁集团 AI助手 全模态 云梦级11月18日云梦级消息,蚂蚁集团今日官宣推出全模态通用 AI 助手“灵光”。该助手支持“自然语言 30 秒生成小应用”,同时它也是“业内首个全代码生成多模态内容的 AI 助手”,支持 3D 数字...[详细]
  • 标签: 谷歌云 Wiz 云安全 Assaf Rappaport

    标签: 谷歌云 Wiz 云安全 Assaf Rappaport 云梦级3月11日云梦级消息,谷歌宣布,已完成对网络安全公司 Wiz 的 320 亿美元(现汇率约合 2200.49 亿元人民币)全现金收购交易,Wiz 即日起正式加入谷歌云。这是谷歌成立 26 年来规...[详细]
  • 标签: 曦华科技 AI Scaler 陈曦 港交所上市

    标签: 曦华科技 AI Scaler 陈曦 港交所上市 云梦级12月27日云梦级消息,深圳曦华科技股份有限公司(简称“曦华科技”)日前递交招股书,准备在港交所上市。曦华科技创立于2018年,创始人陈曦是1993年广西高考理科状元,曾在清华大学获得车辆工程、...[详细]
  • 标签: 索尼 TCL BRAVIA 合资公司

    标签: 索尼 TCL BRAVIA 合资公司 云梦级1月20日云梦级消息,今日,索尼公司(下称:索尼)与TCL电子控股有限公司(下称:TCL)签署意向备忘录,双方同意就未来在家庭娱乐领域的战略合作进行进步磋商。 根据意向备忘录,双方确认拟设立一家...[详细]
  • 谷歌深度学习专家Dustin Tran加盟马斯克xAI,开启Grok 5新篇章

    谷歌深度学习专家Dustin Tran加盟马斯克xAI,开启Grok 5新篇章 在人工智能领域的最新动态中,Dustin Tran 宣布从 Google DeepMind 跳槽至马斯克的 xAI,成为公司研发新一代 Grok 模型的重要成员。此消息在他于社交媒体上正式官宣后不久,...[详细]
  • 一套通用的数据分析学习指南,入门必看!

    一套通用的数据分析学习指南,入门必看! 最近收到了不少朋友的问题:我是做运营的想入门数据分析应该怎么学?新手做数据分析有哪些好用的工具?会用Excel但是做分析总是没思路怎么办?做数据分析有哪些方法等等一系列的问题,今天我就用这篇文章统一回...[详细]
  • Facebook首席营收官费舍尔宣布离职

    Facebook首席营收官费舍尔宣布离职 大卫·费舍尔(David Fischer) 新浪科技讯 北京时间3月31日凌晨消息,据报道,Facebook首席营收官大卫·费舍尔(David Fischer)周二宣布,他将从该公司离职。 费舍尔一直...[详细]