我有一个包含连续变量和二进制目标变量(0和1)的数据集。
我需要相对于目标变量离散化连续变量(用于逻辑回归),并约束每个间隔的观察频率应该保持平衡。我尝试了机器学习算法,例如Chi Merge,决策树。Chi merge给我的间隔在每个间隔中具有非常不平衡的数字(一个间隔有3个观测值,另一个间隔有1000个观测值)。决策树很难解释。
我得出的结论是,最佳离散化应最大化离散化变量和目标变量之间的统计量,并且其间隔应包含大致相同数量的观察值。
有解决这个问题的算法吗?
这在R中看起来是这样(def是目标变量,x是要离散化的变量)。我计算了Tschuprow的来评估转换后的变量与目标变量之间的“相关性”,因为统计量倾向于随着间隔数的增加而增加。我不确定这是否是正确的方法。χ 2
除了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))
}
2
您也许知道这一点;但是,根据记录,(1)既不需要也不经常要离散逻辑回归的预测变量,&(2)使用响应来定义预测变量会在模型的预测性能估计中引入乐观偏见,并且因此,对验证整个拟合过程(即包括用于形成预测变量的方法)进行验证非常重要。
—
Scortchi-恢复莫妮卡
好的,我如何验证离散化,这如何工作?
—
夏洛特
如果您正在使用例如交叉验证,那么在每个折叠中,您不仅会使用从整个样本中确定的预测变量的“最优”离散化来进行逻辑回归,而且还要重新计算“最优”离散化。
—
Scortchi-恢复莫妮卡