Estou procurando o método ideal de binning (discretização) de uma variável contínua em relação a uma variável binária de resposta (destino) e com o número máximo de intervalos como parâmetro.
exemplo: eu tenho um conjunto de observações de pessoas com variáveis "height" (numeral contínuo) e "has_back_pains" (binário). Eu quero discretizar a altura em 3 intervalos (grupos), no máximo, com diferentes proporções de pessoas com dores nas costas, para que o algoritmo maximize a diferença entre os grupos (com restrições dadas, por exemplo, que cada intervalo tenha pelo menos x observações).
A solução óbvia para esse problema seria usar árvores de decisão (um modelo simples de uma variável), mas não consigo encontrar nenhuma função em R que tivesse "número máximo de ramificações" como parâmetro - todas elas dividem a variável em 2 gropus (<= x e> x). O minerador SAS tem um parâmetro "ramo máximo", mas estou procurando uma solução não comercial.
algumas de minhas variáveis possuem apenas alguns valores exclusivos (e podem ser tratadas como variáveis discretas), mas quero discretizá-las também em um número menor de intervalos.
A solução mais próxima do meu problema é implementada no pacote smbinning no R (que depende da função ctree do pacote party), mas tem duas desvantagens: é impossível definir o número de intervalos (no entanto, você pode encontrar uma maneira de contornar isso alterando o parâmetro p) e não funciona quando o vetor de dados possui menos de 10 valores exclusivos. De qualquer forma, você pode ver o exemplo de saída aqui (as colunas Cutpoint e Odds são cruciais):
Cutpoint CntRec CntGood CntBad CntCumRec CntCumGood CntCumBad PctRec BadRate Odds LnOdds WoE IV
1 <= 272 9081 169 8912 9081 169 8912 0.1874 0.9814 0.0190 -3.9653 -0.6527 0.0596
2 <= 311 8541 246 8295 17622 415 17207 0.1762 0.9712 0.0297 -3.5181 -0.2055 0.0068
3 <= 335 2986 163 2823 20608 578 20030 0.0616 0.9454 0.0577 -2.8518 0.4608 0.0163
4 Missing 27852 1125 26727 48460 1703 46757 0.5747 0.9596 0.0421 -3.1679 0.1447 0.0129
5 Total 48460 1703 46757 NA NA NA 1.0000 0.9649 0.0364 -3.3126 0.0000 0.0956
Estou ciente de que o binning resulta em perda de informações e que existem métodos melhores, mas vou usá-lo para visualização de dados e tratar essas variáveis como um fator.
SPSS Algorithms Optimal Binning
.