RandomForestRegressor and feature_importances_ error

Svarto picture Svarto · Nov 4, 2017 · Viewed 7.3k times · Source

I am struggling to pull out the feature importances from my RandomForestRegressor, I get an:

AttributeError: 'GridSearchCV' object has no attribute 'feature_importances_'.

Anyone know why there is no attribute? According to documentation there should exist this attribute?

The full code:

from sklearn.ensemble import RandomForestRegressor
from sklearn.model_selection import GridSearchCV

#Running a RandomForestRegressor GridSearchCV to tune the model.
parameter_candidates = {
    'n_estimators' : [650, 700, 750, 800],
    'min_samples_leaf' : [1, 2, 3],
    'max_depth' : [10, 11, 12],
    'min_samples_split' : [2, 3, 4, 5, 6]
}

RFR_regr = RandomForestRegressor()
CV_RFR_regr = GridSearchCV(estimator=RFR_regr, param_grid=parameter_candidates, n_jobs=5, verbose=2)
CV_RFR_regr.fit(X_train, y_train)

#Predict with testing set
y_pred = CV_RFR_regr.predict(X_test)

#Extract feature importances
importances = CV_RFR_regr.feature_importances_

Answer

Vivek Kumar picture Vivek Kumar · Nov 6, 2017

You are trying to use the attribute on the GridSearchCV object. Its not present there. What you actually need to do is to access the estimator on which the grid search is done.

Access the attribute by :

importances = CV_RFR_regr.best_estimator_.feature_importances_