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

Machine learning 机器学习问题中的特征选择,machine-learning,feature-extraction,feature-selection,feature-engineering,Machine Learning,Feature Extraction,Feature Selection,Feature Engineering,我试图用特征(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不谈,任何理智的人都会在他们的模型中选择这个,因为如果你看到X1=1或X1=-1,你有80%的机会预测y是0还是1 然而,X1仅为-1或1,约占时间的5%,占时间的0.95%。当我通过像顺序特征选择这样的特征选择技术运

我试图用特征(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不谈,任何理智的人都会在他们的模型中选择这个,因为如果你看到X1=1或X1=-1,你有80%的机会预测y是0还是1

然而,X1仅为-1或1,约占时间的5%,占时间的0.95%。当我通过像顺序特征选择这样的特征选择技术运行它时,它不会被选择!我可以理解为什么ML不选择它,因为95%的时候它是0(因此与y不相关)。因此,对于我所遇到的任何分数,带有X1的模型都不会得到很好的分数

所以我的问题更一般,如何处理ML技术和现实逻辑之间的矛盾?在ML特征选择/建模中,我可以做什么不同的事情来利用X1-1和1中嵌入的信息,我知道(实际上)这些信息具有很高的预测性?如果我们对X1一无所知,什么样的特征选择技术会发现它的预测能力?到目前为止,我所知道的所有方法都需要无条件的预测能力。相反,这里X1是高度预测的条件,条件是不为0(仅为5%的时间)。有什么方法可以捕捉到这一点

非常感谢您的洞察力

可能是一个不错的选择,因为它实际上并不依赖于特征选择方法。我的意思是,它递归地适合你计划使用的估计器,在更小的特征子集上更小,递归地删除得分最低的特征,直到达到所需的特征量


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

在我看来,通过该功能获得的信息是尽可能压缩的。如果根据所使用的特征选择技术,它似乎不是一个相关的预测因子,那么忽略它。如果你知道它是相关的,那么就使用它。也许特征选择技术中使用的度量忽略了其预测能力。在我给出的示例中,很明显X1具有预测能力。我认为这是无可争议的。如果你看到X1=1或X1=-1,你有80%的机会成功预测,即使这种情况只发生5%。所以问题是,自动特征选择方法如何利用这一点?必须有一种方法(可能是不同的分数,或者X1的转换,或者不同的特征选择方法)。如果只是手动选择,则无法解决当前更普遍的问题。老实说,我不认为覆盖特性选择过程是解决问题的办法。我的意思是,直到什么时候你才需要自动化你的管道?如果只是为了这个特殊的病例,我想这个伤口不会那么严重。问题是,您知道该功能的预测能力。我建议你尝试不同的特征选择技术,看看你得到了什么特征的重要性。那就保留最符合你期望的,我想这就是我的问题。什么特征选择技术能够发现X1的预测能力?想象一下,我不知道X1是预测性的。我能做些什么不同的事情来发现X1实际上具有预测能力?到目前为止,我知道的所有方法都需要这种无条件的预测能力。相反,X1是预测条件,条件是不为0(占时间的5%)。有什么方法可以捕捉到这一点?这是我更一般的问题。