我们可以删除与目标/标签零相关的特征吗?

数据挖掘 分类 scikit-学习 熊猫 海运
2021-09-19 08:20:25

因此,我从数据集的特征相关性中绘制了一个配对图/热图,并查看了一组具有零相关性的特征

  • 所有其他功能和
  • 还带有目标/标签

.python中的参考代码片段如下:

corr = df.corr()
sns.heatmap(corr) # Visually see how each feature  is correlate with other (incl. the target)
  1. 我可以放弃这些功能以提高分类问题的准确性吗?
  2. 如果明确给出这些特征是派生特征,我可以删除这些特征以提高分类问题的准确性吗?
3个回答

我可以放弃这些功能以提高分类问题的准确性吗?

如果您使用的是简单的线性分类器,例如逻辑回归,那么可以。那是因为您的绘图为您提供了模型如何利用数据的直接可视化。

一旦你开始使用非线性分类器,它可以结合学习模型中的特征,那么它就不是那么简单了。您的绘图不能排除此类模型可能能够利用的复杂关系。通常,唯一的方法是在有和没有特征的情况下训练和测试模型(使用某种形式的交叉验证)。

绘图可能在视觉上显示具有零线性相关性的强非线性关系 - 例如,特征与目标的完整钟形曲线将具有接近于零的线性相关性,但表明正在发生一些有趣的事情,这将在预测模型中有用。如果您看到这样的图,您可以尝试通过一些特征工程将它们变成线性关系,或者您可以将其视为您应该使用非线性模型的证据。

一般来说,无论这些特征是否是派生特征,这个建议都适用。对于线性模型,与目标完全不相关的派生特征仍然没有用。对于非线性模型而言,派生特征可能更容易学习,也可能不容易学习,您无法从旨在帮助您找到线性关系的绘图中轻松分辨。

这些不相关的特征对于与其他非目标特征相关的目标可能很重要。因此,删除它们可能不是一个好主意,特别是如果您的模型很复杂。

删除它们之间高度相关的非目标特征之一可能是个好主意,因为它们可能是多余的。

尽管如此,使用像 PCA 这样的特征减少技术可能会更好,因为 PCA 最大化方差,而不是删除整个特征,而是将其包含在主成分中。

在序数或二元特征的情况下,相关性不会告诉你很多。所以我想,如果一个特征与目标不相关,测试一个特征是否重要的​​最好方法是直接比较有和没有这个特征的模型的性能。但是对于不同的算法,不同的特征可能具有不同的重要性。

如果我很了解您,您会问是否可以删除具有零相关性的特征:

  1. 具有其他功能
  2. 使用您要预测的标签


这是两种不同的情况:

1.我们通常建议删除它们之间具有相关性的特征(稳定模型)。如果它们是零相关的,你不能在这里得出结论。这是通过训练您的模型,您将看到该功能是否值得。

Don't drop those ones.


2.如果一个特征与你的标签密切相关,这意味着一个线性函数(或模型)应该能够很好地预测后者。即使它不相关,它也不会告诉您非线性模型使用此功能不会表现良好。

Don't drop this one either !


我希望我回答了你的问题。