我有一个包含连续变量和二进制目标变量(0 和 1)的数据集。
我需要相对于目标变量离散化连续变量(用于逻辑回归),并限制每个区间内的观察频率应该平衡。我尝试了像 Chi Merge、决策树这样的机器学习算法。Chi 合并给了我每个区间中数字非常不平衡的区间(一个有 3 个观测值的区间,另一个有 1000 个观测值的区间)。决策树很难解释。
我得出的结论是,最优离散化应该最大化离散变量和目标变量之间的统计量,并且应该具有包含大致相同数量的观察值的区间。
有解决这个问题的算法吗?
这就是它在 R 中的样子(def 是目标变量,x 是要离散化的变量)。我计算了 Tschuprow 的评估转换变量和目标变量之间的“相关性”,因为统计量随着区间数的增加而增加。我不确定这是否是正确的方法。
除了 Tschuprow 之外,还有其他方法可以评估我的离散化是否是最优的(课程数量减少时增加)?
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))
}