【问题标题】:distribution plot of feature importances特征重要性分布图
【发布时间】:2019-03-13 22:25:13
【问题描述】:

我基于此在我的数据框中进行了特征选择: https://towardsdatascience.com/feature-selection-using-random-forest-26d7b747597f

在第 7 部分,用于绘制重要性分布,提供了以下代码:

pd.series(sel.estimator_,feature_importances_,.ravel()).hist()

我认为没有语法错误应该是这样的:

pd.series(sel.estimator_,feature_importances_.ravel()).hist()

我收到了这个错误:

AttributeError: 模块 'pandas' 没有属性 'series'

我认为 estimator_ 和 feature_importances_ 也没有定义。 有没有办法调试这行代码?

【问题讨论】:

    标签: python matplotlib plot random-forest


    【解决方案1】:
    pd.Series(sel.estimator_.feature_importances_.ravel()).hist()
    

    这是“系列”而不是“系列”

    https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.Series.hist.html

    绘制特征重要性

    importances = sel.estimator_.feature_importances_
    indices = np.argsort(importances)[::-1]
    # X is the train data used to fit the model 
    plt.figure()
    plt.title("Feature importances")
    plt.bar(range(X.shape[1]), importances[indices],
           color="r", align="center")
    plt.xticks(range(X.shape[1]), indices)
    plt.xlim([-1, X.shape[1]])
    plt.show()
    

    这应该呈现如下条形图,其中 x 轴是特征索引,y 轴是特征重要性。特征按重要性排序。

    【讨论】:

    • NameError: name 'feature_importances_' 未定义
    • @CFD 通常 feature_importances_ 是基于树/森林的分类器的成员。在您的情况下检查它是否是 sel 的成员,即 sel.feature_importances_
    • 不是。使用 sel.feature_importances_ 收到此错误:AttributeError: 'SelectFromModel' object has no attribute 'feature_importances_
    • @CFD 我现在已经更正了,您基于代码的网站做了非常糟糕的校对:( 不要忘记使用 plt.show() 来呈现直方图
    • 感谢它的工作。但是这个情节并没有表现出任何特别之处! (用情节图片更新了问题)
    猜你喜欢
    • 2019-06-09
    • 2021-04-15
    • 2018-12-14
    • 2021-12-23
    • 2020-10-15
    • 2019-02-28
    • 2021-02-03
    • 2016-11-07
    • 1970-01-01
    相关资源
    最近更新 更多