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

Feature Selection in Machine Learning Question

我正在尝试使用特征 (X) 预测 y,一列 0 和 1(分类)。我正在使用像 XGBoost 这样的 ML 模型。

实际上,我的一个特征是具有高度预测性,我们称之为 X1。 X1 是 -1/0/1 的列。当X1 = 1时,80%的时间y = 1。当X1 = -1时,80%的时间y = 0。当X1 = 0时,与y无关。

所以实际上,抛开 ML,任何理智的人都会 select 在他们的模型中这样做,因为如果您看到 X1 = 1 或 X1 = -1,您有 80% 的机会预测 y 是否为 0或 1.

但是 X1 只有 5% 的时间为 -1 或 1,95% 的时间为 0。当我 运行 通过像顺序特征选择这样的特征 selection 技术时,它没有被选中!而且我可以理解为什么 ML 不选择它,因为 95% 的时间它是 0(因此与 y 不相关)。因此,对于我遇到的任何分数,带有 X1 的模型得分都不高。

所以我的问题更笼统,如何处理 ML 技术与现实生活逻辑之间的悖论?我可以在 ML 特征 selection/modelling 中做些什么不同的事情来利用 X1 -1 和 1 中嵌入的信息,我知道这些信息(实际上)具有高度预测性?如果我们对此一无所知,select离子技术的什么特征会发现 X1 的预测能力?到目前为止,我所知道的所有方法都需要无条件的预测能力。相反,这里 X1 高度预测 条件 不为 0(只有 5% 的时间)。有什么方法可以捕获它?

非常感谢您的任何见解!

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

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