我正在尝试使用scikit学习和随机森林分类器预处理递归特征消除,OOB ROC作为对递归过程中创建的每个子集进行评分的方法.
然而,当我尝试使用RFECV方法时,我得到一个错误,说AttributeError:’RandomForestClassifier’对象没有属性’coef_’
随机森林本身没有系数,但是他们确实按Gini得分排名.所以,我想知道如何摆脱这个问题.
请注意,我想使用一种方法,将明确告诉我,在我使用递归特征选择尝试最小化我将输入到最终分类器的数据量时,我的大熊猫DataFrame中的最佳分组中选择了哪些功能.
以下是一些示例代码:
from sklearn import datasets
import pandas as pd
from pandas import Series
from sklearn.ensemble import RandomForestClassifier
from sklearn.feature_selection import RFECV
iris = datasets.load_iris()
x=pd.DataFrame(iris.data, columns=['var1','var2','var3', 'var4'])
y=pd.Series(iris.target, name='target')
rf = RandomForestClassifier(n_estimators=500, min_samples_leaf=5, n_jobs=-1)
rfecv = RFECV(estimator=rf, step=1, cv=10, scoring='ROC', verbose=2)
selector=rfecv.fit(x, y)
Traceback (most recent call last):
File "", line 1, in
File "/Users/bbalin/anaconda/lib/python2.7/site-packages/sklearn/feature_selection/rfe.py", line 336, in fit
ranking_ = rfe.fit(X_train, y_train).ranking_
File "/Users/bbalin/anaconda/lib/python2.7/site-packages/sklearn/feature_selection/rfe.py", line 148, in fit
if estimator.coef_.ndim > 1:
AttributeError: 'RandomForestClassifier' object has no attribute 'coef_'