Grenzen aan cross-validatie testen
Je kunt zeer grote waarden opgeven voor zowel nfold als num_boost_round als je extreem veel cross-validatie wilt uitvoeren. Het gegevensframe cv_results_big is al in de werkruimte geladen en is gemaakt met de volgende code:
cv = xgb.cv(params, DTrain, num_boost_round = 600, nfold=10,
shuffle = True)
Hier heeft cv() 600 iteraties van cross-validatie uitgevoerd! De parameter shuffle geeft aan dat de functie de records elke keer door elkaar husselt.
Bekijk deze gegevens om te zien wat de AUC-waarden zijn en controleer of ze via cross-validatie 1.0 bereiken. Je zou ook de test-AUC-score moeten plotten om de ontwikkeling te zien.
Het gegevensframe cv_results_big is in de werkruimte geladen.
Deze oefening maakt deel uit van de cursus
Kredietrisicomodellering in Python
Oefeninstructies
- Print de eerste vijf rijen van het CV-resultatenframe.
- Print het gemiddelde van de testset-AUC uit het CV-resultatenframe, afgerond op twee decimalen.
- Plot een lijngrafiek van de testset-AUC in de loop van elke iteratie.
Praktische interactieve oefening
Probeer deze oefening eens door deze voorbeeldcode in te vullen.
# 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.____()