我需要绘制DecisionTreeClassifier的特征重要性。特征已经找到,目标结果也已实现,但我的老师告诉我要绘制特征重要性来查看各个贡献因素的权重。我不知道该如何做。
model = DecisionTreeClassifier(random_state=12345, max_depth=8,class_weight='balanced') model.fit(features_train,target_train)model.feature_importances_
它返回的是:
array([0.02927077, 0.3551379 , 0.01647181, ..., 0.03705096, 0. , 0.01626676])
为什么它没有与像max_depth这样的参数相关联,而只是一个数字数组?
回答:
特征重要性指的是一类技术,用于为预测模型的输入特征分配分数,以表明在进行预测时每个特征的相对重要性。
特征重要性分数可以用于预测数值的问题,称为回归,以及用于预测类别标签的问题,称为分类。
将特征重要性加载到一个由数据框列名索引的pandas series
中,然后使用其绘图方法。
来自Scikit Learn
特征重要性由拟合属性feature_importances_提供,它们被计算为每个树内不纯度减少的累积的平均值和标准偏差。
RandomForestClassifier中的feature_importances是如何确定的?
对于您的例子:
feat_importances = pd.Series(model.feature_importances_, index=df.columns)feat_importances.nlargest(5).plot(kind='barh')
更多绘制特征重要性的方法 – 使用Python绘制随机森林特征重要性图表