Costruire le curve AUC
La procedura di selezione delle variabili forward stepwise fornisce un ordine ottimale con cui aggiungere le variabili all’insieme dei predittori. Per decidere dove fermarti con le variabili, puoi costruire le curve AUC di train e di test. Queste curve tracciano l’AUC di train e di test usando la prima, le prime due, le prime tre, … variabili nel modello.
In questo esercizio imparerai a tracciare queste curve AUC. Il metodo auc_train_test per calcolare i valori di AUC è già stato implementato per te e può essere usato così:
auc_train, auc_test = auc_train_test(variables, target, train, test)
qui variables è l’insieme delle variabili usate nel modello di regressione logistica, target è una lista con il nome del target, e train e test sono rispettivamente le basetable di train e di test.
Le variabili ordinate secondo la procedura forward stepwise sono fornite nella lista variables. Puoi esplorarla nella console. Inoltre, sono state definite per te tre liste vuote:
auc_values_train, che conterrà i valori AUC di train del modello a ogni iterazioneauc_values_test, che conterrà i valori AUC di test del modello a ogni iterazionevariables_evaluate, che conterrà le variabili valutate a ogni iterazione
Questo esercizio fa parte del corso
Introduzione alla Predictive Analytics in Python
Istruzioni dell'esercizio
- Itera sulle variabili.
- A ogni iterazione, aggiungi la variabile successiva in
variablesavariables_evaluate. - A ogni iterazione, calcola l’AUC di train e di test usando il metodo
auc_train_test. I DataFrametrainetestcontengono rispettivamente i dati di train e di test. - A ogni iterazione, aggiungi i valori calcolati a
auc_values_traineauc_values_test
Esercizio pratico interattivo
Prova a risolvere questo esercizio completando il codice di esempio.
# Keep track of train and test AUC values
auc_values_train = []
auc_values_test = []
variables_evaluate = []
# Iterate over the variables in variables
for v in ____:
# Add the variable
variables_evaluate.append(____)
# Calculate the train and test AUC of this set of variables
auc_train, auc_test = ____(____, ["target"], ____, ____)
# Append the values to the lists
auc_values_train.append(____)
auc_values_test.append(____)
# Make plot of the AUC values
import matplotlib.pyplot as plt
import numpy as np
x = np.array(range(0,len(auc_values_train)))
y_train = np.array(auc_values_train)
y_test = np.array(auc_values_test)
plt.xticks(x, variables, rotation = 90)
plt.plot(x,y_train)
plt.plot(x,y_test)
plt.ylim((0.6, 0.8))
plt.show()