如何找到和评估连续变量的最佳离散化χ2χ2标准?

机器算法验证 r 机器学习 卡方检验 离散数据 监督学习
2022-03-06 18:28:07

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

我需要相对于目标变量离散化连续变量(用于逻辑回归),并限制每个区间内的观察频率应该平衡。我尝试了像 Chi Merge、决策树这样的机器学习算法。Chi 合并给了我每个区间中数字非常不平衡的区间(一个有 3 个观测值的区间,另一个有 1000 个观测值的区间)。决策树很难解释。

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

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

这就是它在 R 中的样子(def 是目标变量,x 是要离散化的变量)。我计算了 Tschuprow 的T评估转换变量和目标变量之间的“相关性”,因为χ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))
}
1个回答

离散连续变量的方法有很多:参见[Garcia 2013]

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

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

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