决策树-随机森林-两种Feature importances排序方法

第一种方法:

这种方法是唐宇迪老师视频课里的,做了很小的改动,代码如下:

# 得到特征重要性
importances = list(rf.feature_importances_)  
feature_importances = [(feature, round(importance, 2)) for feature, importance in zip(feature_list, importances)] 
print(type(feature_importances))
# 排序-降序,key参数决定按哪一列进行排序,lambda函数确定出按第二列排序
feature_importances = sorted(feature_importances, key =lambda x:x[1], reverse = True)
print(feature_importances)
# 对应进行打印
[print('Variable: {}         Importance: {}'.format(*pair)) for pair in feature_importances]

显示结果:
在这里插入图片描述

第二种方法:

自己写的:

importances=np.reshape(np.round(np.array(rf.feature_importances_),2),(-1,1))
feature_list=np.reshape(np.array(feature_list),(-1,1))
feature_importances=np.hstack((feature_list, importances))
#print(importances,feature_list,feature_importances)

feature_importances=pd.DataFrame(feature_importances,columns=('features','importance'))
print(feature_importances)
feature_importances.sort_values(by=['importance'],ascending = [False],inplace=True)
print(feature_importances)

在这里插入图片描述

  • 11
    点赞
  • 55
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
在Matlab中使用sklearn库可以方便地构建随机森林模型,并使用feature_importances属性计算影响因素。具体步骤如下: 1. 准备数据集:将数据集分为训练集和测试集,其中训练集用于构建随机森林模型,测试集用于评估模型的性能。 2. 构建随机森林模型:使用sklearn库中的RandomForestRegressor或RandomForestClassifier函数构建随机森林模型。其中,可以设置的参数包括树的数量、每棵树中随机选取的特征数量、叶节点最小样本数等。 3. 计算影响因素:使用feature_importances属性可以计算每个特征对模型预测结果的影响程度。该属性返回一个数组,其中每个元素表示对应特征重要性。 4. 评估模型性能:使用测试集来评估模型的性能,可以计算出模型的准确率、精确率、召回率等指标。 下面是一个简单的示例代码,用于演示如何在Matlab中使用sklearn库构建随机森林模型,并计算影响因素: ```matlab % 准备数据集 load fisheriris X = meas; y = species; rng(1); % 设置随机种子 cv = cvpartition(y,'HoldOut',0.3); Xtrain = X(cv.training,:); ytrain = y(cv.training,:); Xtest = X(cv.test,:); ytest = y(cv.test,:); % 构建随机森林模型 mdl = fitensemble(Xtrain,ytrain,'RandomForest',100,'Tree',... 'Type','Classification','PredictorNames',{'SepalLength','SepalWidth','PetalLength','PetalWidth'}); yfit = predict(mdl,Xtest); % 计算影响因素 importance = mdl.FeatureImportance; % 评估模型性能 accuracy = sum(strcmp(ytest,yfit))/length(ytest); ``` 在上述代码中,我们使用fitensemble函数构建随机森林模型,并设置树的数量为100,随机选取的特征数量为默认值,即sqrt(p)。使用FeatureImportance属性可以计算每个特征重要性,最后使用测试集计算模型的准确率。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值