如何使用准则找到和评估连续变量的最佳离散化?


9

我有一个包含连续变量和二进制目标变量(0和1)的数据集。

我需要相对于目标变量离散化连续变量(用于逻辑回归),并约束每个间隔的观察频率应该保持平衡。我尝试了机器学习算法,例如Chi Merge,决策树。Chi merge给我的间隔在每个间隔中具有非常不平衡的数字(一个间隔有3个观测值,另一个间隔有1000个观测值)。决策树很难解释。

我得出的结论是,最佳离散化应最大化离散化变量和目标变量之间的统计量,并且其间隔应包含大致相同数量的观察值。χ2

有解决这个问题的算法吗?

这在R中看起来是这样(def是目标变量,x是要离散化的变量)。我计算了Tschuprow的来评估转换后的变量与目标变量之间的“相关性”,因为统计量倾向于随着间隔数的增加而增加。我不确定这是否是正确的方法。χ 2Tχ2

除了Tschuprow的(当班级数量减少时会增加)之外,还有其他方法可以评估我的离散化是否最佳吗?T

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-恢复莫妮卡

Answers:


8

离散变量的离散化有多种方法:请参见[Garcia 2013]

在第739页上,我可以看到至少5种基于卡方的方法。离散化的最优性实际上取决于您要在其中使用离散化变量的任务。在您的情况下,逻辑回归。并且如Garcia2013中所述,找到给定任务的最佳离散化是NP完全的。

虽然有很多启发式方法。在本文中,他们至少讨论了其中的50个。考虑到我的机器学习背景(我想统计人员会喜欢其他东西),我经常偏向于Fayyad和伊朗的最小描述长度(MDL)方法。我看到它在R包离散化中可用

如您所说,卡方偏向于大量的间隔和许多其他统计数据(如MDL方法中使用的信息增益)。但是,MDL试图在离散变量的信息增益与离散变量的类别和复杂度(间隔数)之间找到一个良好的折衷。试试看。


您的Garcia 2013链接似乎已损坏……您介意发布有关此文章的更多详细信息还是重新链接?
Kiran K.

2
@KiranK。谢谢你让我知道。我修复了链接。
西蒙妮
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.