[英]Feature importance in sklearn using adaboost
I am sing python library sklearn. 我正在唱歌python库sklearn。 I am using adaboost classifier and want to identify which features are most important in classification.
我正在使用adaboost分类器,希望确定分类中最重要的功能。 Following is my code:
以下是我的代码:
ada = AdaBoostClassifier(n_estimators=100)
selector = RFECV(ada, step=1, cv=5)
selector = selector.fit(np.asarray(total_data), np.asarray(target))
selector.support_
print "featue ranking", selector.ranking_
I am getting following error: 我收到以下错误:
selector = selector.fit(np.asarray(total_data), np.asarray(target))
File "C:\Python27\lib\site-packages\sklearn\feature_selection\rfe.py", line 336, in fit
ranking_ = rfe.fit(X_train, y_train).ranking_
File "C:\Python27\lib\site-packages\sklearn\feature_selection\rfe.py", line 148, in fit
if estimator.coef_.ndim > 1:
AttributeError: 'AdaBoostClassifier' object has no attribute 'coef_'
Does anyone have any idea about it, and how to correct it. 是否有人对此有任何想法,以及如何纠正它。
Thanks!! 谢谢!!
Straight from the docstring of RFECV
: 直接来自
RFECV
的文档字符串:
Parameters
----------
estimator : object
A supervised learning estimator with a `fit` method that updates a
`coef_` attribute that holds the fitted parameters. Important features
must correspond to high absolute values in the `coef_` array.
For instance, this is the case for most supervised learning
algorithms such as Support Vector Classifiers and Generalized
Linear Models from the `svm` and `linear_model` modules.
In other words, RFE is currently only implemented for linear models. 换句话说,RFE当前仅用于线性模型。 You could make it work for other models by changing it to use
feature_importances_
instead of coef_
and submit a patch. 您可以通过将其更改为使用
feature_importances_
而不是coef_
并提交补丁来使其适用于其他模型。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.