python - 在多输出随机森林回归器中获取特征重要性
问题描述
我有一个多输出随机森林回归器,我想计算它的特征重要性
正如在其他问题中所读到的,有人说要计算估计器的特征重要性。我没有定义任何估算器,如下所示,我不知道它创建了多少。这(出于某种原因)没有引发异常,但是在运行下面的代码后,它说对象 MultiOutputRegressor 没有估计器,但它对 RFR 有。如果我尝试访问模型列表中的原始 RFR,则会收到异常“元组没有属性特征重要性”
此代码抛出一个
multioutput object has no attribute feature importance
m4 = MultiOutputRegressor(RandomForestRegressor())
m5 = m4.estimator[0]
feature_importances = pd.DataFrame(m4.feature_importances_, index = X_train.columns, columns=['importance']).sort_values('importance')
print(feature_importances)
feature_importances.plot(kind = 'barh')
此代码返回
tuple object has no feature importance
m4 = models[5]
#m5 = m4.estimator[0]
feature_importances = pd.DataFrame(m4.feature_importances_, index = X_train.columns, columns=['importance']).sort_values('importance')
print(feature_importances)
feature_importances.plot(kind = 'barh')
我之前只处理过分类问题,我希望能够以类似的方式显示特征重要性
解决方案
m5 = m4.estimator[0]
替换.estimator[0]
为.estimators_[0]
和替换m4.feature_importances_
为m5.feature_importances_
打电话后
m4 = MultiOutputRegressor(RandomForestRegressor())
您应该使用适合一些数组,m4.fit(array1, array2)
并且可以通过调用来查看估算器m4.estimators_
。然后,您可以更进一步,并通过以下方式找到特征重要性m4.estimators_[0].feature_importances_
推荐阅读
- tableau-api - Tableau 查找和标记重复行
- r-markdown - 将多个图形与 `fig.align` 对齐
- javascript - 打字稿将映射元素传递给函数onclick
- javascript - 如何将对象数组中的项目映射为另一个数组的状态
- sql - 通过属性相等来匹配多个实体的正确方法是什么?
- python - 将 pandas df 单元格转换为列名
- java - AWS EC2 能否用于在远程位置运行自动化 Selenium 测试
- javascript - 根据 API 响应更新特定组件上的 prop
- r - 从 R 闪亮的应用程序更新 PostgreSQL 数据库
- android - 我如何从android studio中的坐标获取地址