Статистика кросс-валидации
Вы использовали поиск по сетке с кросс-валидацией для настройки классификатора на основе случайного леса и теперь хотите проверить результаты кросс-валидации, чтобы убедиться в отсутствии переобучения. В частности, вас интересует разность между средним значением тестовой метрики и средним значением метрики на обучении для каждого блока. Набор данных доступен в виде X_train и y_train, пайплайн — как pipe, а также предварительно загружены необходимые модули, включая pandas как pd и GridSearchCV().
Это упражнение является частью курса
Проектирование рабочих процессов машинного обучения на Python
Инструкции к упражнению
- Создайте объект поиска по сетке с тремя блоками кросс-валидации и убедитесь, что он возвращает статистику как по обучающей, так и по тестовой выборке.
- Обучите объект поиска по сетке на обучающих данных.
- Сохраните результаты кросс-валидации, доступные в атрибуте
cv_results_обученного объекта CV, в датафрейм. - Выведите разность между столбцом со средним значением тестовой метрики и столбцом со средним значением метрики на обучении.
Интерактивное практическое упражнение
Попробуйте выполнить это упражнение, дополнив этот пример кода.
# Fit your pipeline using GridSearchCV with three folds
grid_search = GridSearchCV(
pipe, params, ____=3, return_train_score=____)
# Fit the grid search
gs = grid_search.____(____, ____)
# Store the results of CV into a pandas dataframe
results = pd.____(gs.____)
# Print the difference between mean test and training scores
print(
results[____]-results['mean_train_score'])