将新特征视为模型的新发现的阈值?

数据挖掘 机器学习 深度学习 预测建模 统计数据 特征选择
2022-02-22 01:53:47

我正在研究具有 5K 记录和 60 个特征的二进制分类问题。

通过特征选择,我将其缩小到 14 个特征。

在现有文献中,我看到有 5 个众所周知的特征。

我开始我的项目的目的是找到可以帮助提高模型预测能力的新功能

但是,我看到,对于众所周知的特征(文献中报道),它产生的 AUC 为 84-85,而我的所有 14 个特征将其降低到 82-83。

所以我尝试了手动添加和删除,发现如果我只添加一个功能(比如说magic feature),它会增加AUC to 85-86.

我看到 AUC 有 1 个点的差异。

1)为模型添加一些信息而感到高兴是否有用?

2)或者我看AUC是不是衡量模型性能的正确方法?

3)这是否意味着我根据不同的特征选择/遗传算法选择的其他新特征(14 个中的 9 个)没有那么有用?因为我的遗传算法返回了 14 个特征,所以我假设这是最好的子集,但通过我之前的实验,我知道该模型在具有 5 个特征时具有更好的性能。这里有什么建议吗?我能做些什么?

4)我目前正在使用traintest拆分作为我的训练和测试数据。我申请10 fold cv了我的数据。我应该在这里做些不同的事情吗?

5)如果我添加大约 16-17 个功能,我会看到,AUC is increased to 87但这不能过度拟合,对吧?因为如果它过度拟合,我不应该看到AUC as97-100 or just100 ? I know we haveoccam razor 的原理to keep the model parsimonius but in this case, just having 16-17 features in model is not too complex or heavy. Am I right? Because it's increasing theAUC`。对此有何建议?

1个回答

这里有很多问题。这里有一些想法。

  • 你应该对 AUC 增加 1 点感到高兴吗?是的。效果可以是真实的,但很小。1分优势仍然是一种进步。但我相信这个结果吗?没有把握。
  • 你需要更多的数据。您的样本量不大。此外,交叉验证是一件很棒的事情,但是你已经在同一个小数据集上运行了很多测试,所以尽管有交叉验证——我们真的不知道你的分类器将如何处理全新的、看不见的数据.

  • 第 3 点。这听起来像是过拟合的问题。

  • 第 4 点。我不确定你在这里做什么。交叉验证是“训练”和“测试”集的替代方法,因为每个折叠都充当模型拟合数据“非折叠”部分的“测试”集。你的意思是说你在火车部分做 CV,然后使用“测试”部分对性能进行最终检查?那将是一件好事,但如果您一直使用相同的测试集来检查您尝试过的每个模型,那么该测试集开始看起来像一个训练集。您将需要另一个“测试”集。

  • 第 5 点。你不需要一个高得离谱的 AUC 来犯过度拟合的罪。当您将特征拟合到数据集中的噪声时,就会发生过度拟合。与最优模型相比,过拟合模型在新测试集上的均方误差更高,尽管它在训练集上会做得更好。如果实际上只有 5 个特征就可以很好地解释结果,那么拥有 16 到 18 个特征就太多了。

  • 鉴于您已将候选特征减少到 14 个,您现在的问题要小得多,并且应该可以从主题的角度检查这些特征。SME 会建议您保留哪些功能?您还可以检查 14 个特征之间的相关性并通过这种方式检查冗余。对于一个小数据问题(就是这样),您可以直接了解您的数据。这种方法可能会产生一些有趣的见解。

  • 您可能希望使用与最大 AUC 不同的模型选择方法。本文讨论了 AUC 的优点并提供了一种替代方案。可能很有趣。