39、为什么我的结果不如我想的那么好?你可能过度拟合了

我们都知道运行分析的满意度,并看到结果以我们希望的方式回归:80%的准确度; 85%; 90%?

只是转向我们正在编写的报告的结果部分,并将数字放入其中,这种诱惑很强烈。但是等待:一如既往,这并不是那么简单。

屈服于这种特殊的诱惑可能会破坏其他完全有效的分析的影响。

对于大多数机器学习算法,考虑如何生成这些结果非常重要:不仅仅是算法,而是数据集及其使用方式会对获得的结果产生重大影响。应用于太小数据集的复杂算法可能导致过度拟合,从而导致误导性良好的结果。

隧道尽头的光线
照片由darkday提供,保留一些权利

什么是过度拟合?

当机器学习算法(例如分类器)不仅识别数据集中的信号而且识别噪声时,发生过度拟合。所有数据集都很吵。实验中记录的值可能会受到许多问题的影响:

  • 机械问题,例如热量或湿度改变记录装置的特性;
  • 身体问题:有些老鼠比其他老鼠大;
  • 或者只是被调查系统中的固有噪音。例如,来自DNA的蛋白质的产生本质上是有噪声的,不是如通常可视化的那样在稳定的流中发生,而是在一系列步骤中,每个步骤是随机的,取决于在适当时间存在合适的分子。
  • 从人类受试者收集的数据同样受到诸如一天中的时间,受试者的健康状况,甚至他们的情绪等因素的影响。

随着数据集中参数数量的增加,情况会恶化。例如,具有100个记录的数据集(每个具有500个观测值)非常容易过度拟合,而具有5个观测值的1000个记录每个将远不是问题。

当您的模型相对于数据点数量的参数太多时,您很容易高估模型的效用。

为什么过度拟合问题?

大多数机器学习算法的目的是找到从数据中的信号,重要值到输出的映射。噪声干扰了这种映射的建立。

过度拟合的实际结果是,似乎在其训练数据上表现良好的分类器可能对来自同一问题的新数据表现不佳,可能非常糟糕。从数据集到数据集,数据中的信号几乎相同,但噪声可能非常不同。

如果分类器适合噪声和信号,它将无法将信号与新数据上的噪声分开。开发大多数分类器的目的是让它们以可预测的方式推广到新数据。

过度拟合的模型通常具有较差的预测性能,因为它可能夸大数据中的微小波动

克服过度拟合

克服过度拟合有两种主要方法:三组验证和交叉验证。

三套验证

道德分析师如何克服过度拟合的问题?最简单,最难实现的解决方案就是拥有大量的数据。有了足够的数据,分析师就可以在一组数据(训练集)上开发和算法,然后在一个全新的,看不见的数据集上测试其性能,这些数据集由相同的方法(测试集)生成。

仅使用两个数据集的问题是,只要您使用测试集,它就会被污染。对集合1进行训练,对集合2进行测试,然后使用这些测试的结果来修改算法的过程意味着集合2实际上是训练数据的一部分。

为了完全客观,需要第三个数据集(验证集)。验证集应保持光荣隔离,直到所有培训完成。验证集上训练的分类器的结果是应该报告的结果。

一种流行的方法是在训练集上训练分类器,并且每几次迭代,在测试集上测试其性能。最初,当数据集中的信号拟合时,训练集和测试集的误差将下降。

然而,最终,分类器将开始适应噪声,尽管训练集上的错误率仍然降低,但测试集上的错误率将开始增加。此时应停止训练,并将训练好的分类器应用于验证集以估计实际性能。

这个过程因此变成:

  1. 开发算法;
  2. 第1组训练(训练集);
  3. 测试第2组(测试装置);
  4. 使用步骤3的结果修改算法或停止训练;
  5. 迭代步骤1到4直到满意算法的结果;
  6. 在第3组(验证集)上运行算法;
  7. 报告步骤6的结果。

可悲的是,很少有项目产生足够的数据,使分析师能够沉迷于三数据集方法的奢侈品。必须找到一种替代方案,其中每个结果由分类器生成,该分类器在其训练中未使用该数据项。

交叉验证

通过交叉验证,整个可用数据集被分成大小相等或更小的子集。假设我们有100个观测数据集。我们可以将它分成33个,33个和34个观察值的三个子集。我们将这三个子集称为set1,set2和set3。

为了开发我们的分类器,我们使用了三分之二的数据; 说set1和set2,训练算法。然后,我们在set3上运行分类器,到目前为止看不见,并记录这些结果。

然后使用另外的三分之二,例如set1和set3重复该过程,并记录set2上的结果。类似地,在set2和set3上训练的分类器产生set1的结果。

然后组合三个结果集,并成为整个数据集的结果。

上述过程称为三重交叉验证,因为使用了三个数据集。可以使用任意数量的子集; 十倍交叉验证被广泛使用。当然,最终的交叉验证方案是在除了一个案例之外的所有数据上训练每个分类器,然后在左边的情况下运行它。这种做法被称为留一法验证。

交叉验证对于防止数据建议的测试假设(称为“III型错误”)非常重要,特别是在进一步的样品有害,昂贵或无法收集的情况下。

交叉验证的优点,以避免过度拟合

任何形式的交叉验证的主要优点是每个结果都是使用未经过该结果训练的分类器生成的。

此外,因为每个分类器的训练集由大多数数据组成,所以分类器虽然可能略有不同,但应该大致相同。在留一法的情况下尤其如此,其中每个分类器在几乎相同的数据集上训练。

交叉验证的缺点

使用交叉验证有两个主要缺点:

  1. 用于生成结果的分类器不是单个分类器,而是一组密切相关的分类器。如前所述,这些分类器应该非常相似,并且这个缺点通常不被认为是主要的。
  2. 测试集不能再用于修改分类算法。因为算法是针对大多数数据进行训练,然后在较小的子集上进行测试,所以这些结果不再被视为“看不见”。无论结果如何,都应该报告。从理论上讲,这是一个重大缺陷,但在实践中很少出现这种情况。

总之,如果数据充足,则应使用三组验证方法。但是,当数据集有限时,交叉验证会以原则方式最佳地利用数据。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 214,776评论 6 496
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,527评论 3 389
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 160,361评论 0 350
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,430评论 1 288
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,511评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,544评论 1 293
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,561评论 3 414
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,315评论 0 270
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,763评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,070评论 2 330
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,235评论 1 343
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,911评论 5 338
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,554评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,173评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,424评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,106评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,103评论 2 352

推荐阅读更多精彩内容