gpt4 book ai didi

machine-learning - 交叉验证中的信息泄漏

转载 作者:行者123 更新时间:2023-11-30 08:50:21 27 4
gpt4 key购买 nike

分类问题描述:

  • 假设常规数据集 X 具有 n 个样本和 d 个特征。
  • 此分类问题有些困难(特征较多,样本较少,整体 AUC ~70% 较低)。
  • 提到特征选择/提取、降维、内核和许多分类器的应用可能会很有用。所以我没有兴趣尝试这些。
  • 我并不期待看到整体 AUC 有所改善。目标是在特征的大海捞针中找到相关特征。

我的方法的描述:

  1. 我选择 d 特征的所有成对组合,并使用 n 个样本创建许多二维子数据集 x
  2. 在每个子数据集 x 上,我执行 10 倍交叉验证(使用主数据集 X 的所有样本)。这是一个非常漫长的过程,假设需要数周的计算。
  3. 我选择前 k 对(例如根据最高 AUC)并将它们标记为 +。所有其他对都标记为 -
  4. 对于每一对,我可以计算几个属性(例如,使用专家的知识计算每对之间的关​​系)。这些属性可以在不使用主数据集X中的标签的情况下计算。
  5. 现在我有标记为 +- 的对。此外,每一对都有许多基于专家知识计算的属性(即特征)。因此,我有一个新的分类问题。我们将这个新生成的数据集称为 Y
  6. 我在遵循交叉验证规则的同时在 Y 上训练分类器。令人惊讶的是,我可以用 90% AUC 预测 +- 标签。

据我所知,这意味着我能够选择相关功能。然而,看到 90% AUC 让我担心在这个漫长的过程中某个地方会发生信息泄露。特别是在第3步中。我想知道是否有人可以看到这种方法中的任何泄漏。

<小时/>

信息泄露:

  • 将目标标签纳入实际功能中。您的分类器将在没有学到任何东西的情况下产生良好的预测。
  • 在训练阶段向分类器显示您的测试集。您的分类器将“记住”测试集及其相应的标签,而无需“学习”任何内容。

更新 1:

我想强调的是,我确实在步骤 1 中使用了 X 的所有数据点。但是,我不会再使用它们(即使是为了测试)。最终的 90% AUC 是通过预测数据集 Y 的标签获得的。另一方面,值得注意的是,即使我随机化主数据集 X 的值,数据集 Y 的计算特征也将是相同的。但是,Y 中的示例标签会发生变化,因为之前的 + 对可能不再是一个好的标签。因此它们将被标记为 -

更新 2:

虽然我没有任何意见,但我将陈述我在与模式识别研究人员交谈的 4 天中所得到的结果。简而言之,我确信没有信息泄漏(只要我不会返回第一个数据集 X 并使用其标签)。后来,如果我想检查我是否可以在 X 中获得更好的性能(即预测样本标签),我只需要使用数据集 X 的一部分用于成对比较(作为训练集)。然后,我可以使用 X 中的其余样本作为测试集,同时使用正预测的 Y 对作为特征。我会将其设置为答案,以防没有人可以拒绝此方法。

最佳答案

如果您在步骤 1 中的进程使用了​​所有数据。那么你正在学习的特征就有来自整个数据集的信息。由于您是根据整个数据集进行选择并然后进行验证,因此您正在泄漏严重的信息。

在尝试像这样的奇怪策略之前,您可能应该坚持使用众所周知/已经为您完成的工具。尝试使用具有 L1 正则化的模型来为您进行特征选择,或者从一些更简单的搜索开始,例如顺序向后选择。

如果最终正确地进行了交叉验证,每次训练都会执行自己独立的特征选择。如果你先进行一项全局特征选择,然后再进行 CV,那么你就会做错,并且可能会泄露信息。

关于machine-learning - 交叉验证中的信息泄漏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25601259/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com