Ograniczenia testowania za pomocą walidacji krzyżowej
Możesz ustawić bardzo duże wartości zarówno dla nfold, jak i num_boost_round, jeśli chcesz przeprowadzić intensywną walidację krzyżową. Ramka danych cv_results_big została już wczytana do przestrzeni roboczej i powstała przy użyciu następującego kodu:
cv = xgb.cv(params, DTrain, num_boost_round = 600, nfold=10,
shuffle = True)
W tym przypadku cv() wykonało 600 iteracji walidacji krzyżowej! Parametr shuffle nakazuje funkcji losowe przetasowanie rekordów przy każdej iteracji.
Przyjrzyj się tym danym, sprawdź uzyskane wartości AUC i zweryfikuj, czy przy użyciu walidacji krzyżowej osiągają one 1.0. Narysuj też wykres wyniku AUC ze zbioru testowego, aby zobaczyć, jak zmienia się on w kolejnych iteracjach.
Ramka danych cv_results_big została wczytana do przestrzeni roboczej.
To ćwiczenie jest częścią kursu
Modelowanie ryzyka kredytowego w Pythonie
Instrukcje do ćwiczenia
- Wyświetl pierwsze pięć wierszy ramki danych z wynikami walidacji krzyżowej.
- Wyświetl średnią wartość AUC ze zbioru testowego z ramki danych z wynikami walidacji krzyżowej, zaokrągloną do dwóch miejsc po przecinku.
- Narysuj wykres liniowy przedstawiający wartość AUC ze zbioru testowego w kolejnych iteracjach.
Interaktywne ćwiczenie praktyczne
Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.
# Print the first five rows of the CV results data frame
print(____.____())
# Calculate the mean of the test AUC scores
print(np.____(____[____]).round(2))
# Plot the test AUC scores for each iteration
plt.____(____[____])
plt.title('Test AUC Score Over 600 Iterations')
plt.xlabel('Iteration Number')
plt.ylabel('Test AUC Score')
plt.____()