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_'
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_
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.