Eu tenho um conjunto de dados com variável contínua e uma variável de destino binário (0 e 1).
Preciso discretizar as variáveis contínuas (para regressão logística) com relação à variável alvo e com a restrição de que a frequência de observação em cada intervalo seja equilibrada. Tentei algoritmos de aprendizado de máquina como Chi Merge, árvores de decisão. A mesclagem de Chi me deu intervalos com números muito desequilibrados em cada intervalo (um intervalo com 3 observações e outro com 1000). As árvores de decisão eram difíceis de interpretar.
Cheguei à conclusão de que uma discretização ideal deve maximizar a estatística entre a variável discretizada e a variável alvo e deve ter intervalos contendo aproximadamente a mesma quantidade de observações.
Existe um algoritmo para resolver isso?
É assim que pode parecer em R (def é a variável alvo ex x a variável a ser discretizada). Calculei o de Tschuprow para avaliar a "correlação" entre a variável transformada e a variável alvo, porque as estatísticas do χ 2 tendem a aumentar com o número de intervalos. Não tenho certeza se esse é o caminho certo.
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))
}