Construyendo las curvas de AUC
El procedimiento de selección de variables hacia adelante (forward stepwise) proporciona un orden óptimo en el que se añaden variables al conjunto de predictores. Para decidir dónde cortar las variables, puedes trazar las curvas de AUC de train y de test. Estas curvas representan el AUC de train y de test usando la primera, las dos primeras, las tres primeras, … variables del modelo.
En este ejercicio aprenderás a trazar estas curvas de AUC. El método auc_train_test para calcular los valores de AUC ya está implementado y puedes usarlo así:
auc_train, auc_test = auc_train_test(variables, target, train, test)
donde variables es el conjunto de variables usadas en el modelo de regresión logística, target es una lista con el nombre del objetivo y train y test son las basetables de train y test, respectivamente.
Las variables ordenadas según el procedimiento forward stepwise se encuentran en la lista variables. Puedes explorarlas en la consola. Además, se han definido para ti tres listas vacías:
auc_values_train, que contendrá los valores de AUC de train del modelo en cada iteraciónauc_values_test, que contendrá los valores de AUC de test del modelo en cada iteraciónvariables_evaluate, que contendrá las variables evaluadas en cada iteración
Este ejercicio forma parte del curso
Introducción al análisis predictivo en Python
Instrucciones del ejercicio
- Itera sobre las variables.
- En cada iteración, añade la siguiente variable de
variablesavariables_evaluate. - En cada iteración, calcula el AUC de train y de test usando el método
auc_train_test. Los DataFramestrainytestcontienen los datos de train y de test, respectivamente. - En cada iteración, añade los valores calculados a
auc_values_trainyauc_values_test
Ejercicio interactivo práctico
Prueba este ejercicio y completa el código de muestra.
# 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()