Python机器学习:4.9 利用随机森林评估特征重要性

在前面一节,你学习了如何利用L1正则将不相干特征变为0,使用SBS算法进行特征选择。另一种从数据集中选择相关特征的方法是利用随机森林。

随机森林能够度量每个特征的重要性,我们可以依据这个重要性指标进而选择最重要的特征。sklearn中已经实现了用随机森林评估特征重要性,在训练好随机森林模型后,直接调用feature_importances属性就能得到每个特征的重要性。

下面用Wine数据集为例,我们训练一个包含10000棵决策树的随机森林来评估13个维度特征的重要性(第三章我们就说过,对于基于树的模型,不必对特征进行标准化或归一化):

Python机器学习:4.9 利用随机森林评估特征重要性

Python机器学习:4.9 利用随机森林评估特征重要性

我们可以得出结论:‘Alcohol’是最能区分类别的特征。有趣地是,重要性排名前三的特征也在SBS的最优5特征子集中。

sklearn的随机森林实现,包括一个transform方法能够基于用户给定的阈值进行特征选择,所以如果你要用RandomFroestClassifier作为特征选择器,这就很easy了。举个例子:设置阈值为0.15,会选择出三个维度特征,Alcohol、Malic acid和Ash。

Python机器学习:4.9 利用随机森林评估特征重要性

Python机器学习中文版目录(http://www.aibbt.com/a/20787.html)

转载请注明出处,Python机器学习(http://www.aibbt.com/a/pythonmachinelearning/)

  • 7
    点赞
  • 70
    收藏
    觉得还不错? 一键收藏
  • 9
    评论
随机森林评估特征重要性的方法有多种。一种常用的方法是通过计算特征的平均-减少-不纯重要性来衡量。这种方法通过测量特征在减少不确定性(分类器)或方差(回归器)方面的有效性来计算特征重要性。然而,这种方法并不总是准确反映特征重要性,特别是在特征的度量尺度或类别数量有所不同的情况下。 另一种更可靠的方法是使用互换重要性法。该方法通过将验证集或袋外(OOB)样本导入随机森林,并记录基线准确性(分类器)或 R2 得分(回归器)。然后,对于每个特征,对单一预测特征的列值进行修正,并重新计算准确率或者 R2。特征重要性可以通过基线和因排列组合而造成的总体准确率或 R2 下降之间的差异来衡量。 虽然互换重要性法的计算成本较高,但结果更可靠。它能够更准确地评估特征重要性。 在构建随机森林模型时,可以使用随机森林库中提供的函数来评估特征重要性。例如,在Python中,可以使用scikit-learn库中的RandomForestClassifier类或RandomForestRegressor类来构建随机森林模型,并使用其中的feature_importances_属性来获取特征重要性。可以使用permutation_importance()函数来计算互换重要性。另外,可以使用plot_importances()函数来绘制特征重要性的热图。 综上所述,随机森林评估特征重要性的方法有多种,包括平均-减少-不纯重要性和互换重要性。互换重要性法更可靠且准确,但计算成本较高。在实际应用中,可以使用相应的函数和方法来计算和可视化特征重要性。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [机器学习笔记 十五:随机森林(Random Forest)评估机器学习模型的特征重要性](https://blog.csdn.net/amyniez/article/details/127618854)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值