ComenzarEmpieza gratis

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ón
  • auc_values_test, que contendrá los valores de AUC de test del modelo en cada iteración
  • variables_evaluate, que contendrá las variables evaluadas en cada iteración

Este ejercicio forma parte del curso

Introducción al análisis predictivo en Python

Ver curso

Instrucciones del ejercicio

  • Itera sobre las variables.
  • En cada iteración, añade la siguiente variable de variables a variables_evaluate.
  • En cada iteración, calcula el AUC de train y de test usando el método auc_train_test. Los DataFrames train y test contienen los datos de train y de test, respectivamente.
  • En cada iteración, añade los valores calculados a auc_values_train y auc_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()
Editar y ejecutar código