【问题标题】:CART Algorithm - why 2^m-1 -1 splits for categorical variables?CART 算法 - 为什么 2^m-1 -1 拆分分类变量?
【发布时间】:2018-03-05 14:55:31
【问题描述】:

我试图更多地了解 CART 算法,特别是为分类变量考虑了多少拆分。

我正在阅读,ftp://ftp.boulder.ibm.com/software/analytics/spss/support/Stats/Docs/Statistics/Algorithms/14.0/TREE-CART.pdf

http://www.stat.wisc.edu/~loh/treeprogs/guide/wires11.pdf

他们都声明对于分类变量,CART 将考虑 2^m-1 -1 拆分。

特别是在第二篇论文中,Loh 教授强调,对于一个包含 31 个离散值的分类变量,“仅在根节点上”就需要有 2^30 -1 个拆分。所以将近 20 亿次分裂。

我真的很难清楚地理解这一点,我误解了这个过程的一部分。如果我计算 31 个值的排列数,它会给我 8.22...e+33,这显然超过了 20 亿。然而,组合的数量是 31^2 = 961。

在这种情况下,我们如何达到 2^30 分割的需求?我似乎无法确定这里的规则或逻辑。它似乎不是基于组合学的,如果我们只有 31 个要拆分的值,我看不出我们如何需要 20 亿次拆分。

任何指导将不胜感激。

谢谢

大卫

【问题讨论】:

  • 提示:您希望将一组级别分成两个子集,一个用于左子树,一个用于右子树。一组大小为 m 的子集有多少个?
  • 谢谢@HongOoi,一边走一边修剪草坪,一边多想一边肯定有帮助。

标签: machine-learning statistics combinatorics decision-tree


【解决方案1】:

2^31 来自于算法正在考虑每个可能的分割的想法。因此,左孩子有一组值,而右孩子则有其余的值。

例如,如果前两个值向左,则拆分为 11000000000000。 .左边是“1”,右边是“0”。每个二进制数都是不同的分割(嗯,实际上是一半,因为左右对称)。

这是一个理论上的想法。在实践中发生的是确定每个值的纯度度量(31 次)。然后,这些按估计的目标值排序。 “较高”的值分配给左边的孩子,较低的分配给右边(取决于其他条件,并允许多个拆分和数字目标)。该算法不会对 2^31 种不同的组合进行强力比较。

2^30 来自简单的对称。您可以翻转 0 和 1 并获得相同的拆分,因此 111000000 。 . .与 000111111 相同。 . .孩子们交换了,但纯度是一样的。 - 1 是因为全 1 或全 0 的拆分根本不是拆分;该算法需要两个孩子用于递归分区部分。

【讨论】:

  • 你好戈登谢谢你的解释。根据您的回答,如果我有以下数量的离散值,我将有效地以这样的二进制序列结束......对于 3 个值 Val 1 |瓦尔 2 |瓦尔 3 ----- | ----- | ----- 0 | 0 | 0 * 不考虑 0 | 0 | 1 0 | 1 | 1 0 | 1 | 0 1 | 1 | 0 1 | 0 | 1 1 | 0 | 0 1 | 1 | 1 这在很大程度上涵盖了组合部分吗?
  • 多么令人沮丧,我无法以与主帖相同的方式进行格式化,并且只要我按 Enter 键就会发布评论。
  • @Bravid 。 . .我想你说得有道理。对于 3 个值,实际上有 6 个拆分 - 因为 000 和 111 不感兴趣:001、010、011、100、101、110。但是,通过对称性,001 和 100 实际上是相同的。这消除了额外的两个因素。真正的要点是:有很多组合。一旦它们按目标排序,找到最佳分割就容易得多。
  • 嗨,戈登,我明白你对 111 的意思,但我对 100 与 001 的对称部分感到困惑。100 的二进制表示意味着只有 Val 1 存在,而 001 意味着只有 Val 3 存在 - 我只是想知道我们将应用什么属性或逻辑来获得可互换的等价物?它是否有效地基于位置而不是可以说的价值。所以对于 4 个值,我们会说 1000 和 0001 是对称的,但没有其他值?
  • @Bravid 。 . .对称性为 100-011、101-010、110、011。
【解决方案2】:

你好戈登谢谢你的解释。根据您的回答,如果我有以下数量的离散值,我会有效地得到像这样的二进制序列...... 对于 3 个值

Val 1 | Val 2 | Val 3 
----- | ----- | -----
  0   |   0   |   0 * Not considered 
  0   |   0   |   1 
  0   |   1   |   1 
  0   |   1   |   0 
  1   |   1   |   0 
  1   |   0   |   1 
  1   |   0   |   0 
  1   |   1   |   1 

这在很大程度上涵盖了组合部分吗?

我可以看到基于纯度度量的优化可以减少大量重复,但我需要花一些时间消化这部分以便更好地理解。

感谢两位的帮助。

大卫

【讨论】:

    猜你喜欢
    • 2022-01-01
    • 2021-12-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-05-06
    • 2022-07-13
    相关资源
    最近更新 更多