分类和回归树背后的数学


14

有人可以帮助解释CART中分类背后的一些数学吗?我想了解两个主要阶段是如何发生的。例如,我在数据集上训练了CART分类器,并使用测试数据集来标记其预测性能,但是:

  1. 如何选择树的初始根?

  2. 每个分支为何以及如何形成?

我的数据集包含15列23类的40万条记录,从混淆矩阵中获得了100%的准确性,我对数据集使用了10倍交叉验证。如果有人能帮助解释CART分类的阶段,我将非常感激。

Answers:


24

CART和决策树(例如算法)通过对训练集进行递归划分来工作,以获得对给定目标类别尽可能纯的子集。树的每个节点都与特定的记录集相关联,该记录集T由对功能的特定测试进行了拆分。例如,在连续的属性分裂可由试验来诱导X。然后将记录集T分为两个子集,这两个子集通向树的左分支和右分支。TAAxT

Tl={tT:t(A)x}

Tr={tT:t(A)>x}

类似地,分类特征可以用于根据其值来引起分裂。例如,如果= { b 1... b ķ }每个分支可以由测试来诱导= b BB={b1,,bk}iB=bi

用于推导决策树的递归算法的划分步骤考虑了每个特征的所有可能划分,并根据选择的质量度量(划分标准)尝试找到最佳划分。如果您的数据集是根据以下方案得出的

A1,,Am,C

其中是属性,C是目标类,将生成所有候选拆分并通过拆分标准进行评估。如上所述,生成了连续属性和分类属性的拆分。最佳分割的选择通常通过杂质测量来进行。父节点的杂质必须通过拆分来减少。令E 1E 2E k是在记录集E上引起的分裂,利用杂质测度I 的分裂准则为:AjC(E1,E2,,Ek)EI()

Δ=I(E)i=1k|Ei||E|I(Ei)

标准的杂质度量是香农熵或基尼系数。更具体地说,CART如下使用为集合定义的基尼索引。令p j为类c的 E中记录的分数j p j = | { Ê [ C ^ ] = c ^ Ĵ } |EpjEcj 那么 GiniE=1- Q j=1p 2 j 其中Q是类数。

pj=|{tE:t[C]=cj}||E|
Gini(E)=1j=1Qpj2
Q

当所有记录都属于同一类时,导致零杂质。

作为一个例子,让我们说,我们有一个二进制类集记录的其中类分布为1 / 2 1 / 2 -以下是一个很好的分裂ŧT(1/2,1/2)T

拆分效果好

Tl(1,0)Tr(0,1)TlTr|Tl|/|T|=|Tr|/|T|=1/2Δ

Δ=11/221/2200=1/2

Δ分裂不良

Δ=11/221/221/2(1(3/4)2(1/4)2)1/2(1(1/4)2(3/4)2)=1/21/2(3/8)1/2(3/8)=1/8

第一个分割将被选作最佳分割,然后算法以递归方式进行。

使用决策树对新实例进行分类很容易,实际上只要遵循从根节点到叶子的路径就足够了。记录按到达的叶子的多数类别进行分类。

假设我们要对该图上的正方形进行分类

两要素数据集

A,B,CCAB

可能的诱导决策树可能如下: 在此处输入图片说明

很显然,记录将通过决策树分类为圆鉴于记录落在标有圆叶。

在这个玩具示例中,训练集的准确性为100%,因为树没有错误地分类记录。在上面训练集的图形表示中,我们可以看到树用于对新实例进行分类的边界(灰色虚线)。

关于决策树的文献很多,我只想写下一个粗略的介绍。另一个著名的实现是C4.5。


1
很棒的图表!
Cam.Davidson.Pilon

谢谢,很遗憾,该编辑器似乎不支持PDF格式的上传。他们是矢量。
西蒙妮

2

我不是CART的专家,但是您可以尝试免费在线获得“统计学习的要素”这本书(有关CART的信息,请参阅第9章)。我相信这本书是由CART算法的创建者之一(Friedman)写的。


那很有帮助!+1精彩发现!
G Gr 2012年

@GarrithGraham没问题,我认为这本免费书是“众所周知的秘密”。
按位
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.