webentwicklung-frage-antwort-db.com.de

Wie man Best Estimator auf GridSearchCV erhält (Random Forest Classifier Scikit)

Ich führe GridSearch CV aus, um die Parameter eines Klassifizierers in scikit zu optimieren. Sobald ich fertig bin, würde ich gerne wissen, welche Parameter als die besten ausgewählt wurden.

Immer wenn ich dies tue, bekomme ich einen AttributeError: 'RandomForestClassifier' object has no attribute 'best_estimator_' und kann nicht sagen warum, denn es scheint ein legitimes Attribut in der documentation zu sein. 

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_

Erträge: 

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

Sie müssen Ihre Daten anpassen, bevor Sie die beste Parameterkombination erhalten.

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_
55
Ryan

Fügen Sie einfach einen weiteren Punkt hinzu, um es klar zu halten. 

Das Dokument sagt Folgendes:

best_estimator_: Schätzer oder Diktat: 

Schätzer, der von der Suche ausgewählt wurde, d. 

Wenn die Rastersuche mit verschiedenen Parametern aufgerufen wird, wählt sie diejenige mit der höchsten Punktzahl basierend auf der angegebenen Zählerfunktion. Bester Schätzer gibt die Informationen der Parameter an, die zur höchsten Punktzahl geführt haben. 

Daher kann dies nur nach dem Anpassen der Daten aufgerufen werden.

1
rohithnama