首页 > 解决方案 > Vowpal Wabbit:数据与多通道打乱的数据 - 为什么在学习之前打乱文件有助于提高指标

问题描述

我尝试探索大众的多通道:

  1. 我为相同的训练数据运行 vw 进行常规运行(1 次通过)并通过 2 到 5 次(在检查的通过之间删除缓存)并使用不同的测试文件检查模型。结果表明,我的指标在通过之间恶化(过度拟合)。
  2. 然后我检查了对数据进行洗牌时结果的表现。我想在每次传递数据时检查我的指标的行为(--passes 3 将在第一次和第二次内部传递之后进行改组),但是因为我有一个大的训练数据文件,我只在每次之前随机改组训练数据一次通过(再次 2 到 5,在检查的通过之间删除缓存)。当我使用测试文件检查模型时,结果显示我的指标在通过之间有所改善。
  3. 我在不同的数据集上做了几次这个实验,并且在使用多通道+随机播放时总是得到改进。

我试图了解我得到的结果。我不明白为什么在学习之前对文件进行一次改组有助于改进指标。为什么它也不是过拟合?它与使用原始数据集(无随机播放)有何不同?

标签: data-sciencevowpalwabbitmultipass

解决方案


VW 默认使用在线学习,众所周知,训练数据排序很重要(与批量学习不同)。想象一个二元分类,其中所有负面训练示例都排在所有正面示例之前——最终模型很可能将所有内容预测为正面。因此需要(并推荐)对数据进行洗牌。

关于是否需要在每个 epoch(通过)之后进行洗牌(当数据在整个学习之前已经洗牌时)有不同的意见(和经验结果)。它不应该受到伤害,但它需要一些时间。大型数据集不需要它(但对于非常庞大的数据集,单次传递需要大量时间,因此通常无论如何您都负担不起超过 3 次传递)。


推荐阅读