Кросвальдація за допомогою sklearn
Як пояснювалося в розділі 2, перенавчання на наборі даних — поширена проблема в аналітиці. Це трапляється, коли модель надто «вивчила» дані: вона показує чудові результати на наборі, на якому тренувалася, але не узагальнює на нові дані.
Хоча розбиття на тренувальну й тестову вибірки з розділу 2 допомагає уникнути перенавчання на тренувальній частині, підбір гіперпараметрів може призвести до перенавчання на тестовій частині, адже модель налаштовують так, щоб отримати найкращі результати саме на тестовій вибірці. Тому рекомендуємо перевіряти модель на різних тестових підмножинах. Кросвальдація з k фолдами дає змогу це зробити:
- вона ділить набір даних на тренувальну та тестову частини
- навчає модель, робить передбачення та обчислює метрику (можна вказати accuracy, precision, recall тощо)
- повторює процес загалом k разів
- виводить середнє з 10 оцінок
У цій вправі ви застосуєте кросвальдацію до нашого набору даних і оціните результати за допомогою функції cross_val_score.
Ця вправа є частиною курсу
HR Analytics: прогнозування плинності персоналу в 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))