Tengo un conjunto de datos con variable continua y una variable objetivo binaria (0 y 1).
Necesito discretizar las variables continuas (para la regresión logística) con respecto a la variable objetivo y con la restricción de que la frecuencia de observación en cada intervalo debe estar equilibrada. Intenté algoritmos de aprendizaje automático como Chi Merge, árboles de decisión. La combinación de Chi me dio intervalos con números muy desequilibrados en cada intervalo (un intervalo con 3 observaciones y otro con 1000). Los árboles de decisión fueron difíciles de interpretar.
Llegué a la conclusión de que una discretización óptima debería maximizar el estadístico entre la variable discretizada y la variable objetivo y debería tener intervalos que contengan aproximadamente la misma cantidad de observaciones.
¿Hay algún algoritmo para resolver esto?
Así podría verse en R (def es la variable objetivo yx la variable a discretizar). Calculé la de Tschuprow para evaluar la "correlación" entre la variable transformada y la variable objetivo porque las estadísticas de χ 2 tienden a aumentar con el número de intervalos. No estoy seguro si esta es la forma correcta.
chitest <- function(x){
interv <- cut(x, c(0, 1.6,1.9, 2.3, 2.9, max(x)), include.lowest = TRUE)
X2 <- chisq.test(df.train$def,as.numeric(interv))$statistic
#Tschuprow
Tschup <- sqrt((X2)/(nrow(df.train)*sqrt((6-1)*(2-1))))
print(list(Chi2=X2,freq=table(interv),def=sum.def,Tschuprow=Tschup))
}