Я использую рабочий процесс ниже, чтобы обучить случайный классификатор леса для использования в производстве. Я использую 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)
Можете ли вы дать более подробную информацию о том, что вы пытаетесь сделать? Какой код вы пробовали? – dooms
Я думаю, что, возможно, я решил свой собственный вопрос. Я не понимал, что объект cv был фактически случайным классификатором леса с лучшими параметрами, которые он нашел (чего я хотел). Я думал, что мне нужно создать новый классификатор RF и передать результаты поиска. –