增加特征重要性

Posted

技术标签:

【中文标题】增加特征重要性【英文标题】:Increase feature importance 【发布时间】:2019-02-28 06:06:36 【问题描述】:

我正在研究一个分类问题。我有大约 1000 个特征,目标变量有 2 个类。所有 1000 个特征的值都是 1 或 0。我正在尝试查找特征重要性,但我的特征重要性值在 0.0 - 0.003 之间变化。我不确定这么低的价值是否有意义。

有什么方法可以提高特征的重要性。

# Variable importance
rf = RandomForestClassifier(min_samples_split=10, random_state =1)  
rf.fit(X, Y)  
print ("Features sorted by their score:")
a =  (list(zip(map(lambda x: round(x, 3), rf.feature_importances_), X)))

非常感谢任何帮助!谢谢

【问题讨论】:

【参考方案1】:

由于您只有两个目标类,因此您可以执行不等方差 t 检验,当所有其他特征排名方法都失败时,这对于在二元分类任务中查找重要特征很有用。您可以使用scipy.stats.ttest_ind function 来实现这一点。它基本上是一个统计测试,检查两个分布是否不同。如果返回的 p 值小于 0.05,则可以假定它们是不同的分布。要实现每个功能,请按以下步骤操作:

    分别提取第 1 类和第 2 类的所有预测变量值。 对这两个分布运行 test_ind,指定它们的方差是未知的,并确保它是一个双尾 t 检验 如果 p 值小于 0.05,则此特征很重要。

或者,您可以对所有特征执行此操作,并使用 p 值作为特征重要性的度量。 p值越低,特征的重要性就越高。

干杯!

【讨论】:

以上是关于增加特征重要性的主要内容,如果未能解决你的问题,请参考以下文章

一文告诉你智能语音中的VAD模块为什么这么重要

XGBoost三种特征重要性计算方法对比

随机森林如何评估特征重要性

随机森林进行特征重要性度量的详细说明

删除特征后重新计算特征重要性

特征筛选(随机森林)