如何解释特定特征的重要性?

数据挖掘 机器学习 特征选择 生物信息学
2022-02-18 17:34:56

为一个非常具体的问题道歉。我有一个基因数据集,我正在使用机器学习来预测基因是否会导致疾病。我拥有的特征之一是 beta 值(这是基因对疾病影响的影响大小),我不确定如何最好地解释和使用这个特征。

我将 beta 值从变体级别压缩到基因级别,因此一个基因会留下多个 beta 值,如下所示:

Gene         Beta
ACE      -0.7, 0.1 ,0.6
NOS      0.2, 0.4, 0.5
BRCA     -0.1 ,0.1, 0.2

目前我正在尝试两种选择每个基因的单个β值的选项,一种是我选择每个基因的绝对值(并忽略它是否是以前的负值),另一种是我选择绝对值并返回以前的负数消极。我正在尝试这个,因为对于 beta 值,正向或负向表明基因对疾病的影响的大小,所以我认为保留负面信息很重要(据我所知)。

但是,我被建议只使用绝对值而不保留负状态,我不确定是否有办法让我知道从机器学习的角度来看一个选项是否比另一个更好。在任何一种情况下,我的模型都认为这个特征比我数据集中的任何其他特征更重要,我也遇到了问题。例如,梯度提升赋予它 0.01 的重要性,下一个最重要的特征是 0.001。

所以我的问题是,我怎样才能最好地解释这样一个非常重要的特性?如果它更重要,它实际上是一种偏见吗?这可能是由于我自己对功能的处理/预处理,还是它非常重要是可以接受的?我可以设置我的模型来重新衡量这个特定功能的重要性吗?我有生物学背景,所以不确定什么是正常的或最少偏见的方法。

1个回答

您可以使用以下两种方法之一:

第一个是无监督的:

使用PCA算法提取最能代表数据集方差的特征向量。当它提取的第一个特征是最重要的特征而最后一个是最不重要的特征时,PCA 算法提取新特征,其中每个特征都是其他特征(独立于标签)的线性组合。然后,您可以在最重要的特征处检索每个“Beta”值的权重。这是一个示例: https ://stackoverflow.com/a/34692511/6677037

另一种方法是有监督的:

使用标签,您应该谨慎使用标签,而不是根据测试集选择特征。通过这些方法,您可以使用“Xi Square”、“互信息增益”等查看最重要的特征。然后删除最不重要的特征。这是最简单的方法: https ://hub.packtpub.com/4-ways-implement-feature-selection-python-machine-learning/

祝你好运。