在python中使用Adaboost选择重要功能

问题描述

我想使用 adaboost 选择重要功能。我发现“yellowbrick.model_selection”对于这项工作非常好且快速。我使用了这个代码。但它有问题。 “ValueError:无法将输入数组从形状(260200)广播到形状(1)
我的特征向量对于每个图像都有 1*260200。我无法理解 adaboost 如何制作模型,因此无法调试代码。 你能帮我吗? 非常感谢:)

   from sklearn.ensemble import AdaBoostClassifier
   from yellowbrick.model_selection import FeatureImportances

    model = AdaBoostClassifier(n_estimators=10,random_state=1)
    model.fit(X_train,Y_train)
    visualizer = FeatureImportances(model)
    visualizer.show()

解决方法

这段代码,为每个特征做一个排名

from sklearn.ensemble import AdaBoostClassifier

ab_model = AdaBoostClassifier(n_estimators=20,random_state=0)
ab_model.fit(x_train,y_train)
importances = ab_model.feature_importances_
non_zero=np.nonzero(importances)

non_zero 是一个向量,表示重要特征的 U 索引。 祝你好运