Разница между GridSearchCV и Cross_Val_Score

#python #scikit-learn #cross-validation #gridsearchcv

#python #scikit-учиться #перекрестная проверка #gridsearchcv

Вопрос:

У меня проблема с классификацией двоичных временных рядов.

Поскольку это временной ряд, я не могу использовать только train_test_split свои данные. Итак, я использовал объект tscv = TimeSeriesSplit() из этой ссылки и получил что-то вроде этого:

введите описание изображения здесь

Я вижу из GridSearchCV и cross_val_score, что я могу передать в качестве параметра свою стратегию разделения cv = tscv . Но мой вопрос в том, в чем разница между GridSearchCV и coss_val_score ? Использования одного из них достаточно для обучения / тестирования моей модели? или я должен использовать оба? Сначала GridSearchCV , чтобы получить лучшие гиперпараметры, а затем cross_val_score ?

Комментарии:

1. По сути, они выполняют одни и те же задания, но по-разному. Фактически, GridSearchCV он сам использует cross_val_score для поиска оптимизированной комбинации параметров. Известно, что GridSearch является очень медленным методом настройки ваших гиперпараметров, и вам гораздо лучше придерживаться RandomSearchCV или более продвинутых байесовских методов оптимизации гиперпараметров

Ответ №1:

Поиск по сетке — это метод оценки моделей с использованием различных настроек гиперпараметров (значения которых вы определяете заранее). Вы GridSearch можете использовать перекрестную проверку (следовательно, GridSearchCV существует), чтобы получить окончательную оценку для различных настроек параметров вашей модели. После обучения и оценки (после завершения поиска по сетке) вы можете взглянуть на параметры, с которыми ваша модель работала лучше всего (взглянув на атрибут best_params_dict ). Таким образом, поиск по сетке — это, по сути, стратегия перебора, при которой вы запускаете модель со всеми возможными комбинациями гиперпараметров. При coss_val_score этом вы не выполняете поиск по сетке (вы не используете стратегию, упомянутую выше, со всеми предопределенными параметрами), но вы получаете результат после перекрестной проверки. Надеюсь, теперь это понятно.