J'ai un ensemble de données avec une variable continue et une variable cible binaire (0 et 1).
Je dois discrétiser les variables continues (pour la régression logistique) par rapport à la variable cible et avec la contrainte que la fréquence d'observation dans chaque intervalle soit équilibrée. J'ai essayé des algorithmes d'apprentissage automatique comme Chi Merge, des arbres de décision. La fusion de Chi m'a donné des intervalles avec des nombres très déséquilibrés dans chaque intervalle (un intervalle avec 3 observations et un autre avec 1000). Les arbres de décision étaient difficiles à interpréter.
Je suis arrivé à la conclusion qu'une discrétisation optimale devrait maximiser la statistique entre la variable discrétisée et la variable cible et devrait avoir des intervalles contenant à peu près la même quantité d'observations.
Existe-t-il un algorithme pour résoudre ce problème?
Voici à quoi cela pourrait ressembler dans R (def est la variable cible et x la variable à discrétiser). J'ai calculé le de Tschuprow pour évaluer la "corrélation" entre la variable transformée et la variable cible car les statistiques ont tendance à augmenter avec le nombre d'intervalles. Je ne suis pas certain que ce soit la bonne façon.
Existe-t-il une autre façon d'évaluer si ma discrétisation est optimale autre que le de Tschuprow (augmente lorsque le nombre de classes diminue)?
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))
}