评估新功能

数据挖掘 机器学习 特征工程 评估
2021-10-02 13:28:11

我应该如何评估新功能是否有效?我是否应该建立一个具有新功能的新模型,然后与具有相同超参数的旧模型进行比较?

3个回答

实际上,在这些情况下,我通常会根据特征两两绘制数据。这种方法与观看非常相似covariance matrix. 通过这种方式,您应该看到新添加的功能是否具有相关性,是否与之前的每个功能线性变化。假设您已经有一个分类任务的特征。然后您可能想要添加另一个功能。您必须将每个特征作为一个轴绘制数据,并调查它们是否具有线性相关性。如果它们没有任何相关性或它们的相关性接近于零,您应该添加该功能,因为这可能会对您有所帮助,它们提供了一种以前的功能没有提供的知识。如果一个新特性与之前的特性有关联,这意味着添加它并不能帮助你对这个概念有新的认识或感知。虽然这里有争论由于计算复杂性,我不喜欢添加相关特征。那将非常耗时。

为了说明更多,假设您有一个数据集 A = {X1, X2, y},其中 X1 和 X2 是特征,y 是标签,并且都是二进制值。还假设它们之间的协方差矩阵如下。

在此处输入图像描述

  • 我们可以推断我们可以在分类过程中忽略 X1 而不会损失准确性,如果 e 等于 0,这意味着标签 y 独立于 X1,因为它们是二进制值的。我们可以在分类中忽略 X1,而不管其他值。

  • 我们可以推断,如果|d|,我们可以在分类过程中忽略任何一个特征而不会损失准确性。>> 0 这意味着 X1 和 X2 之间存在高度相关性,因此信息冗余。因此,我们可以毫无问题地忽略其中之一。

  • 我们可以推断,如果 d = 0 且 e 或 f 都不为零,则在分类过程中不能忽略 X1 和 X2。然后该特征是独立的,并且两者都对标签有影响。所以我们不能忽视其中任何一个。

添加新功能后,您应该检查功能中是否有任何功能。之后,您必须检查每个特征是否提供信息,同时考虑问题的目标变量。对于后者,您可以执行统计测试并检查 p 值以确定是否存在统计显着性,否则您可以计算每个新特征和目标变量之间的互信息。

一些算法在其模型中集成了特征重要性计算。除了使用 p 值和协方差矩阵执行统计检查之外,您还可以按重要性对特征进行排名。使用xgboost,您可以对这样的功能进行排名(关于 MachineLearningMastery 的完整解释)

在此处输入图像描述

除了线性检查特征重要性之外,使用 xgboost 和其他基于树的算法,您还可以检查特征在与其他特征交互时是否重要。

考虑到这一点,您可以先仅对旧功能进行排名,然后评估新功能是否比其中一些功能更好,哪些新功能没有提供足够的信息,甚至更糟地添加了噪音。

您还可以在Interpretable Machine LearningStats Stack Exchange上查看其他方法