Cómo obtener el mejor estimador en GridSearchCV (Scikit clasificador de bosque aleatorio)

Estoy ejecutando GridSearch CV para optimizar los parámetros de un clasificador en scikit. Una vez que termine, me gustaría saber qué parámetros fueron elegidos como los mejores.

Cada vez que lo hago, obtengo un AttributeError: 'RandomForestClassifier' object has no attribute 'best_estimator_' , y no puedo decir por qué, ya que parece ser un atributo legítimo en la documentación .

 from sklearn.grid_search import GridSearchCV X = data[usable_columns] y = data[target] X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=0) rfc = RandomForestClassifier(n_jobs=-1,max_features= 'sqrt' ,n_estimators=50, oob_score = True) param_grid = { 'n_estimators': [200, 700], 'max_features': ['auto', 'sqrt', 'log2'] } CV_rfc = GridSearchCV(estimator=rfc, param_grid=param_grid, cv= 5) print '\n',CV_rfc.best_estimator_ 

Rendimientos:

 `AttributeError: 'GridSearchCV' object has no attribute 'best_estimator_' 

Debe ajustar sus datos antes de poder obtener la mejor combinación de parámetros.

 from sklearn.grid_search import GridSearchCV from sklearn.datasets import make_classification from sklearn.ensemble import RandomForestClassifier # Build a classification task using 3 informative features X, y = make_classification(n_samples=1000, n_features=10, n_informative=3, n_redundant=0, n_repeated=0, n_classes=2, random_state=0, shuffle=False) rfc = RandomForestClassifier(n_jobs=-1,max_features= 'sqrt' ,n_estimators=50, oob_score = True) param_grid = { 'n_estimators': [200, 700], 'max_features': ['auto', 'sqrt', 'log2'] } CV_rfc = GridSearchCV(estimator=rfc, param_grid=param_grid, cv= 5) CV_rfc.fit(X, y) print CV_rfc.best_params_ 

Solo para agregar un punto más para que quede claro.

El documento dice lo siguiente:

best_estimator_: estimador o dict:

Estimador que fue elegido por la búsqueda, es decir, el estimador que dio la puntuación más alta (o la pérdida más pequeña si se especifica) en los datos omitidos.

Cuando se llama a la búsqueda de cuadrícula con varios parámetros, elige el que tiene la puntuación más alta en función de la función del anotador dado. El mejor estimador da la información de los parámetros que dieron como resultado la puntuación más alta.

Por lo tanto, esto solo se puede llamar después de ajustar los datos.