У мене є набір даних з безперервною змінною та бінарною змінною цілі (0 і 1).
Мені потрібно дискретизувати постійні змінні (для логістичної регресії) стосовно цільової змінної та з обмеженням, що частота спостереження в кожному інтервалі повинна бути врівноваженою. Я спробував алгоритми машинного навчання, такі як Chi Merge, дерева рішень. Чи злиття дало мені інтервали з дуже незбалансованими числами в кожному інтервалі (інтервал з 3 спостереженнями і ще один з 1000). Дерева рішень важко інтерпретувати.
Я дійшов висновку, що оптимальна дискретизація повинна максимально збільшити статистику між дискретизованою змінною та цільовою змінною і повинна мати інтервали, що містять приблизно однакову кількість спостережень.
Чи існує алгоритм вирішення цього питання?
Це, як це могло б виглядати в R (def - цільова змінна, а x - змінна, яку слід дискретизувати). Я обчислив Чупроу, щоб оцінити "кореляцію" між трансформованою та цільовою змінною, оскільки статистика має тенденцію до збільшення кількості інтервалів. Я не впевнений, чи це правильний шлях.
Чи є інший спосіб оцінити, чи моя оптимізація є оптимальною, крім Ччупрова (збільшується, коли кількість класів зменшується)?
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))
}