Walidacja krzyżowa z użyciem sklearn
Jak wyjaśniono w rozdziale 2., nadmierne dopasowanie (overfitting) do zbioru danych to częsty problem w analizie danych. Dzieje się tak, gdy model zbyt dokładnie „zapamiętał" dane treningowe – osiąga świetne wyniki na zbiorze, na którym był trenowany, ale słabo radzi sobie z nowymi danymi.
Technika podziału na zbiór treningowy i testowy, którą poznałeś w rozdziale 2., chroni przed nadmiernym dopasowaniem do zbioru treningowego. Jednak strojenie hiperparametrów może prowadzić do nadmiernego dopasowania do zbioru testowego – bo polega właśnie na optymalizacji modelu pod kątem jak najlepszych wyników na tym zbiorze. Dlatego zaleca się walidację modelu na różnych zbiorach testowych. Walidacja krzyżowa k-fold pozwala to osiągnąć:
- dzieli zbiór danych na część treningową i testową,
- dopasowuje model, generuje prognozy i oblicza wynik (możesz wybrać dokładność, precyzję, czułość i inne metryki),
- powtarza ten proces łącznie k razy,
- zwraca średnią z 10 wyników.
W tym ćwiczeniu zastosujesz walidację krzyżową na naszym zbiorze danych i ocenisz wyniki za pomocą funkcji cross_val_score.
To ćwiczenie jest częścią kursu
HR Analytics: Przewidywanie rotacji pracowników w Pythonie
Instrukcje do ćwiczenia
- Zaimportuj funkcję
cross_val_score()służącą do walidacji krzyżowej z modułusklearn.model_selection. - Wyświetl wynik walidacji krzyżowej dla swojego modelu, ustawiając 10 podziałów za pomocą hiperparametru
cv.
Interaktywne ćwiczenie praktyczne
Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.
# 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))