2015-05-07 20 views
21

Scikit'teki bir sınıflandırıcının parametrelerini optimize etmek için GridSearch CV'yi çalıştırıyorum. İşim bittiğinde, hangi parametrelerin en iyi seçildiğini bilmek isterim.GridSearchCV (Rasgele Orman Sınıflandırıcı Scikit) 'de En İyi Tahmincisi nasıl elde edilir

Bunu yaptığımda, bir AttributeError: 'RandomForestClassifier' object has no attribute 'best_estimator_' alıyorum ve neden olduğunu anlayamıyorum, çünkü bu, documentation üzerinde yasal bir özellik gibi görünüyor.

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_ 

Verim: Daha iyi parametre kombinasyonu alabilirsiniz önce veri sığdırmak zorunda

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

cevap

45

.

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_ 
+0

Gerçekten çalıştı, teşekkürler! Neden olduğuna dair bir fikrin var mı? (GridSearch parametrelerini bulabilirim diye düşünmüştüm, ancak parametreleri takmadan bile geri alamadım) –

+9

Farklı veri kümeleri farklı optimize edilmiş parametre kombinasyonlarına sahip olacak, yani veriler olmadan, en uygun parametre kombinasyonu yok – Ryan

+0

Geçiş duygusu nedir Ayrıca, param_grid'de GridSearchCV'ye aktardığınızı göz önünde bulundurarak, RandomForestClassifier'a n_estimators? – sergzach