机器学习问题中的特征选择

时间:2020-06-25 14:26:54

标签: machine-learning feature-extraction feature-selection feature-engineering

我正在尝试使用特征(X)来预测y,即0和1s(分类)的列。我正在使用XGBoost之类的ML模型。

实际上,我的功能之一是高度可预测的,我们称之为X1。 X1是-1/0/1的列。当X1 = 1时,时间y的80%=1。当X1 = -1时,时间y的80%=0。当X1 = 0时,它与y不相关。

因此,实际上,除了ML之外,任何理智的人都会在他们的模型中选择它,因为如果您看到X1 = 1或X1 = -1,则您有80%的机会预测y是0还是1。

但是,X1大约只有5%的时间是-1或1,而有95%的时间是0。当我通过诸如顺序特征选择之类的特征选择技术来运行它时,它不会被选中!而且我能理解为什么ML不选择它,因为95%的时间它是0(因此与y不相关)。因此,对于我遇到的任何得分,使用X1的模型得分都不高。

所以我的问题更笼统地说,如何处理ML技术与现实逻辑之间的这一悖论?我可以在ML特征选择/建模中做些什么以利用嵌入在X1 -1和1中的信息(实际上我知道它们具有很高的预测性)?如果我们不了解X1的预测能力,那么哪种特征选择技术会发现它的预测能力呢?到目前为止,我所知道的所有方法都需要无条件的预测能力。取而代之的是,这里X1是高度预测性的有条件的,而不是0(只有5%的时间)。有什么方法可以捕捉到这一点?

非常感谢您的见解!

1 个答案:

答案 0 :(得分:1)

可能sklearn.feature_selection.RFE是一个不错的选择,因为它实际上并不依赖于特征选择方法。我的意思是,它递归地适合您计划使用的估计量,并且在较小的特征子集上较小,并且递归地删除具有最低分数的特征,直到达到所需的特征量

这似乎是一个很好的方法,因为无论所讨论的特征对您而言是一个或多或少的良好预测指标,此特征选择方法都会告诉您该特征对模型的重要性 。因此,如果不考虑某个功能,则该功能与所讨论的模型不相关。