Ho un set di dati con variabile continua e una variabile di destinazione binaria (0 e 1).
Devo discretizzare le variabili continue (per la regressione logistica) rispetto alla variabile target e con il vincolo che la frequenza di osservazione in ciascun intervallo dovrebbe essere bilanciata. Ho provato algoritmi di machine learning come Chi Merge, alberi decisionali. L'unione Chi mi ha dato intervalli con numeri molto sbilanciati in ogni intervallo (un intervallo con 3 osservazioni e un altro con 1000). Gli alberi delle decisioni erano difficili da interpretare.
Sono giunto alla conclusione che una discretizzazione ottimale dovrebbe massimizzare la statistica tra la variabile discretizzata e la variabile target e dovrebbe avere intervalli contenenti approssimativamente la stessa quantità di osservazioni.
Esiste un algoritmo per risolvere questo?
Ecco come potrebbe apparire in R (def è la variabile target e x la variabile da discretizzare). Ho calcolato di Tschuprow per valutare la "correlazione" tra la trasformata e la variabile di destinazione perché × 2 statistiche tende ad aumentare con il numero di intervalli. Non sono sicuro se questo è il modo giusto.
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))
}