机器学习系列13:通过随机森林获取特征重要性

我们已经知道通过 L1 正则化和 SBS 算法可以用来做特征选择。

我们还可以通过随机森林从数据集中选择相关的特征。随机森林里面包含了多棵决策树,我们可以通过计算特征在每棵决策树决策过程中所产生的的信息增益平均值来衡量该特征的重要性。

你可能需要参考:《机器学习系列06:决策树

这种方法无需对特征做归一化或者标准化预处理,也不假设数据集是否线性可分。

以红酒数据集为例。我们可以直接通过 feature_importances_ 属性获取每个特征的重要性,所有特征重要性之和为 1.0。

我们可以更直观地可视化观察一下。

可以看到上面随机森林选出的前 3 个特征最重要的特征中有 2 也出现在了之前在

机器学习系列12:减少过拟合------降维(特征选择)》中使用 SFS 算法选择的 3 个最重要的特征中。

我们可以通过 scikit-learn 提供的 SelectFromModel 来通过 threshold 参数设定一个阈值 ,选择满足这个贡献度阈值的特征出来。

可以看到选择了 5 个特征,现在我们就用这 5 个特征拟合一下 kNN 算法。

可以对比一下在用 SFS 算法选择的 3 个特征拟合的 kNN 算法。

选择 5 个特征时,模型在训练集和测试集上的表现和选择全部特征的表现相当!

相关推荐
风象南10 小时前
普通人用AI加持赚到的第一个100块
人工智能·后端
牛奶11 小时前
2026年大模型怎么选?前端人实用对比
前端·人工智能·ai编程
牛奶11 小时前
前端人为什么要学AI?
前端·人工智能·ai编程
哥布林学者13 小时前
高光谱成像(一)高光谱图像
机器学习·高光谱成像
罗西的思考14 小时前
AI Agent框架探秘:拆解 OpenHands(10)--- Runtime
人工智能·算法·机器学习
冬奇Lab15 小时前
OpenClaw 源码精读(2):Channel & Routing——一条消息如何找到它的 Agent?
人工智能·开源·源码阅读
冬奇Lab15 小时前
一天一个开源项目(第38篇):Claude Code Telegram - 用 Telegram 远程用 Claude Code,随时随地聊项目
人工智能·开源·资讯
格砸16 小时前
从入门到辞职|从ChatGPT到OpenClaw,跟上智能时代的进化
前端·人工智能·后端
可观测性用观测云16 小时前
可观测性 4.0:教系统如何思考
人工智能
sunny86516 小时前
Claude Code 跨会话上下文恢复:从 8 次纠正到 0 次的工程实践
人工智能·开源·github