RandomForestRegressor and feature_importances_ error

10,466

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_
Share:
10,466
Svarto
Author by

Svarto

Updated on June 09, 2022

Comments

  • Svarto
    Svarto almost 2 years

    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_
    
  • Admin
    Admin about 2 years
    Your answer could be improved with additional supporting information. Please edit to add further details, such as citations or documentation, so that others can confirm that your answer is correct. You can find more information on how to write good answers in the help center.