决策树 - 分类特征的拆分是如何发生的?

数据挖掘 机器学习 随机森林 决策树 算法
2021-09-26 10:36:35

决策树在执行递归二元分裂时,会选择一个自变量(比如 Xj)和一个阈值(比如说 ) 使得预测空间被分割成区域 {X|Xj<} 和 {X|Xj>=},这导致成本函数的最大降低。

现在让我们假设我们有一个变量,其categorical值在 {X}。假设我们对它进行了标签编码,并且它的值在 0 到 9 的范围内(10 个类别)。

  1. 如果 DT 使用上述算法拆分节点并将这 10 个值视为真实数值,是否会导致错误/误解的拆分?
  2. 它是否应该基于此变量==执行拆分?!=但是,算法如何知道它是一个分类特征呢?
  3. 此外,在这种情况下,one-hot 编码值是否更有意义?
3个回答

你在所有方面都是对的:

  1. 如果 DT 使用上述算法拆分节点并将这 10 个值视为真实数值,是否会导致错误/误解的拆分?

是的,绝对是因为您在下面提到的原因:

  1. 它是否应该基于此变量==执行拆分?!=但是,算法如何知道它是一个分类特征呢?

是的,因为您正确地假设(真正的)分类变量应该只比较是否相等,而不是顺序。

一般来说,算法无法猜测特征的性质,在实现中必须有一些参数为其提供此信息。一些实现允许这样做,例如,使用Weka 的特征是使用“数字”或“名义”(分类)类型来键入的。

  1. 此外,在这种情况下,one-hot 编码值是否更有意义?

再次更正,如果实现将所有特征都视为数值,则应该对分类特征执行此操作。

无论如何,决策树必须将连续变量转换为具有类别。有多种方法可以找到数值变量的最佳拆分。在 0:9 范围内,这些值仍然有意义,并且无论如何都需要像常规连续变量一样进行拆分。如果您将每个值视为单独的类别,那么您基本上只是在每个可能的点上进行拆分。

  1. 是的,由于我们插入的排序不是类别固有的,因此会增加一定的偏差

  2. 并不真地。处理具有 L 个类别的分类特征的自然方法是探索所有可能的分区!这意味着2大号-1 分区!

  3. 只是部分。OHE 在理论上是有意义的,但不适用于高基数特征。一般来说,对于回归和二元分类问题,最佳解决方案是目标编码,正如 Breiman 在其关于分类和回归树的原始论文 (1984) 中所表达的那样。事实上,他证明了通过按平均响应值(或概率)对类别进行排序,可以找到类别之间的最佳分割。2大号-1 通过仅评估如此排序的类别的 L-1 拆分可能的结果。

一种热编码对树来说并不是那么好,因为它迫使它们进行许多只能分离少数特征的稀疏分割,并且在高基数的情况下尤其有害。从这个意义上说,二进制编码甚至数字编码可能有助于以更小的深度实现更好的分离,即使它们确实对某些类型的分割产生了偏见。