2016-04-08 26 views
0

Üretim kullanımı için rasgele bir orman sınıflandırıcı yetiştirmek için aşağıdaki iş akışını kullanıyorum. RandomizingSearchCV kullanarak, sonuçları yazdırarak ve RandomizedSearchCV sonuçlarını kullanarak yeni bir boru hattı oluşturarak sınıflandırıcının parametrelerini ayarlamak için kullanıyorum. Bir RandomizedSearchCV'nin en iyi sonucunu bir sınıflandırıcıya işaret etmenin bir yolu olması gerektiğini varsayıyorum, bu yüzden bunu manuel olarak yapmak zorunda değilim ama nasıl olduğunu anlayamıyorum.Bir sınıflandırıcı için RandomizedSearchCV İşaretleme

select = sklearn.feature_selection.SelectKBest(k=40) 
clf = sklearn.ensemble.RandomForestClassifier() 
steps = [('feature_selection', select), 
    ('random_forest', clf)] 
parameters = {"random_forest__max_depth": [3, None], 
      "random_forest__max_features": sp_randint(1, 21), 
      "random_forest__min_samples_split": sp_randint(1, 21), 
      "random_forest__min_samples_leaf": sp_randint(1, 21), 
      "random_forest__bootstrap": [True, False], 
      "random_forest__criterion": ["gini", "entropy"]} 
pipeline = sklearn.pipeline.Pipeline(steps) 
n_iter_search = 20 
cv = RandomizedSearchCV(pipeline, param_distributions = parameters, n_iter=n_iter_search) 
cv.fit(X,y) 
+0

Yapmaya çalıştığınız şey hakkında daha fazla bilgi verebilir misiniz? Hangi kodu denediniz? – dooms

+0

Sanırım kendi sorumu çözmüş olabilirim. Cv nesnesinin, bulduğu en iyi parametrelere sahip rasgele bir orman sınıflandırıcısı olduğunu anlayamadım (istediğim şey). Yeni bir RF sınıflandırıcı oluşturmam gerektiğini ve aramanın sonuçlarını aktarmam gerektiğini düşündüm. –

cevap

1

RandomizedSearchCV nesnesinde kalan tahmincisi iyi bir ya takılmış sonuncusu olup olmadığını bilmiyorum. En iyi modeli aldığınızdan emin olmak için best_estimator_ özniteliğine erişebilirsiniz.