Comment trouver et évaluer la discrétisation optimale pour une variable continue avec le critère

9

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.χ2

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.Tχ2

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)?T

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))
}
Charlotte
la source
2
Vous le savez peut-être; mais, pour mémoire, (1) il n'est ni nécessaire ni, souvent, souhaitable de discrétiser les prédicteurs pour la régression logistique, & (2) l'utilisation de la réponse pour définir les prédicteurs introduit un biais optimiste dans l'estimation des performances prédictives de votre modèle, et c'est il est donc important de valider l' ensemble de la procédure d'ajustement (c'est-à-dire y compris la méthode que vous utilisez pour former les prédicteurs).
Scortchi - Réintégrer Monica
Ok, comment valider la discrétisation, comment ça marche?
Charlotte
Si vous utilisez par exemple la validation croisée, dans chaque pli, vous ne vous contentez pas d'effectuer la régression logistique en utilisant la discrétisation "optimale" des prédicteurs déterminés à partir de l'échantillon entier, mais vous recalculez également la discrétisation "optimale".
Scortchi - Réintégrer Monica

Réponses:

8

Il existe plusieurs façons de discrétiser une variable continue: voir [Garcia 2013]

À la page 739, je pouvais voir au moins 5 méthodes basées sur le chi carré. L'optimalité de la discrétisation dépend en fait de la tâche dans laquelle vous souhaitez utiliser la variable discrétisée. Dans votre cas, régression logistique. Et comme discuté dans Garcia2013, trouver la discrétisation optimale donnée à une tâche est NP-complet.

Il y a cependant beaucoup d'heuristiques. Dans cet article, ils discutent d'au moins 50 d'entre eux. Compte tenu de mon expérience en apprentissage automatique (je suppose que les gens en statistiques préfèrent autre chose), je suis souvent partisan de la méthode de la longueur minimale de description (MDL) de Fayyad et Irani. Je vois qu'il est disponible dans la discrétisation du package R

Comme vous l'avez dit, le chi carré est biaisé vers un nombre élevé d'intervalles et de nombreuses autres statistiques (comme le gain d'information utilisé dans la méthode MDL) le sont. Cependant, MDL essaie de trouver un bon compromis entre le gain d'informations de la variable discrétisée et la classe et la complexité (nombre d'intervalles) de la variable discrétisée. Essaie.

Simone
la source
Votre lien Garcia 2013 semble être rompu ... cela vous dérangerait-il de publier plus de détails sur cet article ou de le relier?
Kiran K.
2
@KiranK. Merci de me le faire savoir. J'ai corrigé le lien.
Simone