Кросс-валидация с помощью sklearn
Как было рассмотрено во второй главе, переобучение на наборе данных — распространённая проблема в аналитике. Она возникает, когда модель слишком точно запомнила обучающие данные: она показывает отличные результаты на тех данных, на которых обучалась, но плохо обобщается на новых.
Метод разбивки на обучающую и тестовую выборки, с которым вы познакомились во второй главе, защищает от переобучения на обучающей выборке. Однако подбор гиперпараметров может привести к переобучению на тестовой части, поскольку в процессе настройки модель оптимизируется именно под результаты на тестовой выборке. Поэтому рекомендуется проверять модель на разных тестовых выборках. Для этого применяют k-кратную кросс-валидацию:
- набор данных разбивается на обучающую и тестовую выборки;
- модель обучается, делает предсказания и вычисляет метрику (можно выбрать точность, precision, recall и другие);
- процесс повторяется k раз;
- в итоге возвращается среднее значение k метрик.
В этом упражнении вы применените кросс-валидацию к нашему набору данных и оцените результаты с помощью функции cross_val_score.
Это упражнение является частью курса
HR-аналитика: прогнозирование текучести кадров на Python
Инструкции к упражнению
- Импортируйте функцию для кросс-валидации
cross_val_score()из модуляsklearn.model_selection. - Выведите на экран результат кросс-валидации модели, указав 10 фолдов с помощью гиперпараметра
cv.
Интерактивное практическое упражнение
Попробуйте выполнить это упражнение, дополнив этот пример кода.
# Import the function for implementing cross validation
from sklearn.model_selection import ____
# Use that function to print the cross validation score for 10 folds
print(____(model,features,target,____=10))