2016-04-08 2 views
0

Я использую рабочий процесс ниже, чтобы обучить случайный классификатор леса для использования в производстве. Я использую RandomizedSearchCV для настройки параметров классификатора, распечатывая результаты, а затем создавая новый конвейер, используя результаты RandomizedSearchCV. Я предполагаю, что должен быть способ просто указать лучший результат RandomizedSearchCV для классификатора, так что мне не нужно делать это вручную, но я не могу понять, как это сделать.Указание RandomizedSearchCV на классификатор

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

Можете ли вы дать более подробную информацию о том, что вы пытаетесь сделать? Какой код вы пробовали? – dooms

+0

Я думаю, что, возможно, я решил свой собственный вопрос. Я не понимал, что объект cv был фактически случайным классификатором леса с лучшими параметрами, которые он нашел (чего я хотел). Я думал, что мне нужно создать новый классификатор RF и передать результаты поиска. –

ответ

1

Я не знаю, если в объекте RandomizedSearchCV, остальные оценки является лучшим один или последний установлен. Вы можете получить доступ к атрибуту best_estimator_, чтобы убедиться, что вы получаете лучшую модель.

Смежные вопросы