不同的测试集和训练集分布


15

我正在参加一个数据科学比赛,其测试集的分布与训练集的分布不同。我想从与测试集非常相似的训练集中对观察结果进行子采样。

我怎样才能做到这一点?


随机欠采样,随机过采样,基于集群的过采样,信息过采样:合成少数过采样技术,改良的合成少数过采样技术(MSMOTE)等。–
Aditya

如果您对其中任何一个感到满意,则最好将其中一个答案标记为“可接受的答案”。
TwinPenguins

Answers:


17

很好的问题,这就是机器学习范式中所谓的“协变量偏移”,“模型漂移”或“非平稳性”等。

建立机器学习模型以进行未来预测的一个关键假设是,看不见的数据(测试)来自与训练数据相同的分布!但是,实际上,这种相当简单的假设很容易打破,由于许多原因,即将到来的数据(其分布)会随时间变化。对于那些可能不熟悉这个非常重要的问题的人,我建议您在此处发布信息

对我来说,您的问题属于同一类。尽管我没有完美的解决方案(提供的实现),但我认为您可能会看到:

  • 这篇博客文章为您提供了一种简单的方法,可以使用Python提供的代码来处理训练数据的二次采样!
  • 检查这篇研究论文。他们建议通过对训练数据进行加权来解决该问题,以使训练的分布更接近基于“ Kullback-Leibler散度 ”定理的Kullback-Leibler重要性估计程序进行的测试分布。我不知道他们是否提供实施方案或可以轻松实施,但我认为值得一探,因为这听起来是解决发行不匹配问题的专业方法。

快速更新(一个很好的解决方案):我找到了该研究论文的KLIEP算法Python实现(最后一点),以找到这些权重。它似乎易于使用!基本上,它通过放置权重(通过KLIEP算法)对训练进行重新采样,从而使训练和测试的分布相似的假设尽可能成立。


5

我想从与测试集非常相似的训练集中对观察结果进行子采样。

我不确定您是否愿意这样做。整个目的是训练您的算法,以便将其很好地推广到看不见的数据。

通常,一个人应该使其测试数据适应其火车数据(例如,根据火车数据标准化测试数据),而不是相反。实际上,您知道测试数据。


3

训练组子采样可能不是最佳解决方案!

在有监督的学习任务中,测试/执行集与训练集的分布/功能之间的差异非常普遍(这是诸如Kaggle之类的比赛具有挑战性的原因之一)。这就是为什么我们说过去的表现(仅)可以用作估算未来表现的指南,但并不能表示或保证它。因此,与可能在列车(子)集上表现很好但在看不见的数据上表现不佳的微调模型相比,泛化模型始终是首选。

虽然这种差异是正常的,但过去和将来的样本之间的差距过大可能被称为概念漂移的示例,而概念漂移本身就是一个活跃的研究领域。鉴于您的问题,我无法判断您的案件是正常的ML案件,还是概念漂移确实在发生。

这些是我的建议:

  1. 训练具有高泛化能力的许多模型。使用火车数据集中的引导抽样,您可以轻松计算误差的偏差方差分量。回想一下,您正在寻找的是低方差模型(数据变化会对数据性能产生边际影响),而不是低偏差高方差模型(可能过度适合您的训练(子)集)。现在,您可以选择最佳算法,并根据测试集对其进行评估。注意,在训练期间,我们应该不看测试集!

  2. 与其进行几次随机下采样,不如寻找标准化/归一化以及功能选择/工程。这些技术对于学习更通用的模型可能是实用的。例如,有时特征域的范围可能随时间而变化,而分布的形状(无论是什么形状)几乎保持不变(例如,向左或向右移动的相同分布)。在这种情况下,简单的标准化(即使用不同的映射功能将训练样本和测试样本映射到预定义的空间,例如[0,1])可以减轻症状。

  3. 仅当您基于有关问题的一些知识(不仅仅是为了在测试数据集上获得更好的准确性)进行系统下采样时,才可以使用系统下采样。例如,您可能知道火车数据中的某些记录是很久以前从远场采样的,或者受特定因素的影响,这些因素将来都不会发生(在测试数据收集中)。在这种情况下,你可能会删除这些样本,可以是因为你有信心,你会不会在将来看到这样的模式不相关的(我的意思是,你应该有一个合理的训练子集的选择背后,而不是寻找到测试组实际上,您没有访问权限)。在这种情况下,我称之为离群值去除 而不是下采样。


1
pÿ|X

-1

python中有一个很好的软件包(scikit学习)

http://scikit-learn.org/stable/modules/generation/sklearn.model_selection.train_test_split.html

您可以使用此软件包从训练集中对观察结果进行抽样。


1
据我了解的问题,训练/测试分布是不同的,如果不加以考虑,将导致所谓的“协变量偏移”。在scikit学习中使用“ train_test_split”实现的简单子样本将不会考虑拆分期间的分布!因此,答案是无关紧要的。
TwinPenguins
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.