利用随机森林对特征重要性进行评估

如题所述

第1个回答  2022-07-23

随机森林是以决策树为基学习器的集成学习算法。随机森林非常简单,易于实现,计算开销也很小,更令人惊奇的是它在分类和回归上表现出了十分惊人的性能,因此,随机森林也被誉为“代表集成学习技术水平的方法”。
本文是对随机森林如何用在特征选择上做一个简单的介绍。

只要了解决策树的算法,那么随机森林是相当容易理解的。随机森林的算法可以用如下几个步骤概括:

没错,就是这个到处都是随机取值的算法,在分类和回归上有着极佳的效果,是不是觉得强的没法解释~
然而本文的重点不是这个,而是接下来的特征重要性评估。

sklearn 已经帮我们封装好了一切,我们只需要调用其中的函数即可。 我们以UCI上葡萄酒的例子为例,首先导入数据集。

然后,我们来大致看下这是一个怎么样的数据集

输出为

可见共有3个类别。然后再来看下数据的信息:

输出为:

可见除去class label之外共有13个特征,数据集的大小为178。

按照常规做法,将数据集分为训练集和测试集。此处注意: sklearn.cross_validation 模块在0.18版本中被弃用,支持所有重构的类和函数都被移动到了model_selection模块。从sklearn.model_selection引入train_test_split

好了,这样一来随机森林就训练好了,其中已经把特征的重要性评估也做好了,我们拿出来看下。

输出的结果为

对的就是这么方便。
如果要筛选出重要性比较高的变量的话,这么做就可以

输出为

这样,帮我们选好了3个重要性大于0.15的特征。

相似回答