Seleccionar la siguiente mejor variable
El método de selección de variables forward stepwise empieza con un conjunto vacío y avanza por pasos, añadiendo en cada paso la siguiente mejor variable. Para ayudarte a implementarlo, ya tienes dos funciones muy prácticas.
La función auc calcula, para un conjunto de variables variables, el AUC del modelo que las usa como predictores. La función next_best calcula qué variable se debería añadir en el siguiente paso a la lista de variables.
En este ejercicio, vas a experimentar con estas funciones para entender mejor su finalidad. Calcularás el AUC de un conjunto de variables dado, decidirás qué variable conviene añadir a continuación y comprobarás que esto efectivamente conduce a un AUC óptimo.
Este ejercicio forma parte del curso
Introducción al análisis predictivo en Python
Instrucciones del ejercicio
- La función
aucya está implementada. Calcula el AUC de un modelo que usa"max_gift","mean_gift"y"min_gift"como predictores. Debes pasar estas variables en una lista como primer argumento de la funciónauc. - La función
next_bestya está implementada. Calcula qué variable se debería añadir a continuación, sabiendo que"max_gift","mean_gift"y"min_gift"están actualmente en el modelo, y que"age"y"gender_F"son los predictores candidatos. El primer argumento denext_bestes una lista con las variables actuales y el segundo es una lista con los predictores candidatos. - Calcula el AUC de un modelo que usa
"max_gift","mean_gift","min_gift"y"age"como predictores. - Calcula el AUC de un modelo que usa
"max_gift","mean_gift","min_gift"y"gender_F"como predictores.
Ejercicio interactivo práctico
Prueba este ejercicio y completa el código de muestra.
# Calculate the AUC of a model that uses "max_gift", "mean_gift" and "min_gift" as predictors
auc_current = ____([____, ____, ____], ["target"], basetable)
print(round(auc_current,4))
# Calculate which variable among "age" and "gender_F" should be added to the variables "max_gift", "mean_gift" and "min_gift"
next_variable = ____([____, ____, ____], [____, ____], ["target"], basetable)
print(next_variable)
# Calculate the AUC of a model that uses "max_gift", "mean_gift", "min_gift" and "age" as predictors
auc_current_age = ____([____, ____, ____, ____], ["target"], basetable)
print(round(auc_current_age,4))
# Calculate the AUC of a model that uses "max_gift", "mean_gift", "min_gift" and "gender_F" as predictors
auc_current_gender_F = ____([____], ["target"], basetable)
print(round(auc_current_gender_F,4))