Comment obtenir le meilleur estimateur sur GridSearchCV (Random Forest Classifier Scikit)

je lance GridSearch CV pour optimiser les paramètres d'un classificateur dans scikit. Une fois que j'ai fini, j'aimerais savoir quels paramètres ont été choisis comme étant les meilleurs.

Chaque fois que je faire si je reçois un AttributeError: 'RandomForestClassifier' object has no attribute 'best_estimator_' et on ne peut pas dire pourquoi, car il me semble légitime que l'attribut de l' documentation.

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_

rendements:

`AttributeError: 'GridSearchCV' object has no attribute 'best_estimator_'
25
demandé sur sapo_cosmico 0000-00-00 00:00:00
la source

2 ответов

vous devez ajuster vos données avant de pouvoir obtenir la meilleure combinaison de paramètres.

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_
51
répondu Ryan 2015-05-07 18:24:28
la source

Juste pour ajouter un point de plus pour la protéger.

Le document dit la chose suivante:

best_estimator_ : estimateur ou dict:

estimateur qui a été choisi par la recherche, c.-à-d. estimateur qui a donné le score le plus élevé (ou la plus petite perte si précisé) sur les données exclues.

lorsque la recherche de grille est appelée avec divers paramètres, elle choisit celui avec le score le plus élevé basé sur le marqueur func donné. Le meilleur estimateur de donne l'information des params qui ont abouti au score le plus élevé.

par conséquent, cela ne peut être appelé qu'après ajustement des données.

1
répondu rohithnama 2018-03-24 23:50:47
la source