Ich habe einen Datensatz mit kontinuierlicher Variable und einer binären Zielvariablen (0 und 1).
Ich muss die kontinuierlichen Variablen (für die logistische Regression) in Bezug auf die Zielvariable und mit der Einschränkung diskretisieren, dass die Beobachtungshäufigkeit in jedem Intervall ausgeglichen sein sollte. Ich habe maschinelle Lernalgorithmen wie Chi Merge und Entscheidungsbäume ausprobiert. Durch Chi-Merge erhielt ich Intervalle mit sehr unausgeglichenen Zahlen in jedem Intervall (ein Intervall mit 3 Beobachtungen und ein weiteres mit 1000). Die Entscheidungsbäume waren schwer zu interpretieren.
Ich kam zu dem Schluss, dass eine optimale Diskretisierung die Statistik zwischen der diskretisierten Variablen und der Zielvariablen maximieren und Intervalle aufweisen sollte, die ungefähr die gleiche Anzahl von Beobachtungen enthalten.
Gibt es einen Algorithmus zur Lösung dieses Problems?
So könnte es in R aussehen (def ist die Zielvariable und x die zu diskretisierende Variable). Ich habe Tschuprows berechnet , um die "Korrelation" zwischen der transformierten und der Zielvariablen zu bewerten, da die Statistik tendenziell mit der Anzahl der Intervalle zunimmt. Ich bin mir nicht sicher, ob dies der richtige Weg ist.
Gibt es eine andere Möglichkeit zu bewerten, ob meine Diskretisierung optimal ist als Tschuprows (nimmt zu, wenn die Anzahl der Klassen abnimmt)?
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))
}