赞
踩
调用了Sklearn函数包中RandomForestRegressor.feature_importances_函数计算特征重要性。随机森林(RandomForest)是由一棵棵决策树(Decision Tree)组成,因此为了求得每个特征的重要性,首先需要知道每个特征在每一棵决策树上所做的贡献量,这种贡献量的计算方法是求解在该特征在某个节点上,分枝前后的基尼指数(Gini)差值,用同样的的方法求得其他特征的贡献值,最后将某个特征基尼指数变化值除以所有特征基尼指数变化值之,求得某个特征归一化后的贡献量,并根据贡献量大小进行排序。具体计算方法如下:
计算方法:
设:k表示有k个类别,而pk表示第k个类别的权重,则可得:
而,对于特征j,其在节点m上基尼指数变化量可以通过计算该特征在该节点分枝前的基尼指数与分枝后基尼指数的差,求得。设VIMjm表示特征j在节点m上的基尼指数变化值,GIm表示分枝前的基尼指数,GIl和GIr则为节点m分枝后,产生的两个新节点的基尼指数。可得:
设,特征j在决策树i中出现在节点集合M中,则我们可以求得特征j在第i棵决策树上的基尼指数变化量:
若,在随机森林中有n棵决策树,则特征j的总基尼指出变化量为:
则,第特征j贡献量归一化以后的值记为特征j的贡献量,计算方法如下:
VIM’j表示归一化以后得到特征j的贡献量,
表示所有特征的基尼指数差之和。
欢迎访问个人站:www.edumind.tech
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。