【问题标题】:Find best attribute in decision tree在决策树中找到最佳属性
【发布时间】:2011-07-29 06:45:47
【问题描述】:
我遇到了一个问题
Color Flavor Edibility
Red Grape Yes
Red Cherry Yes
Green Grape Yes
Green Cherry No
Blue Grape No
Blue Cherry No
在这个问题中,它说只是分析而不进行任何计算,猜测最好的属性(颜色或味道)
有人可以解释如何在不计算熵等的情况下猜测这个
【问题讨论】:
标签:
decision-tree
entropy
【解决方案1】:
我知道这个问题有点老了,但如果您仍然感兴趣:一般来说,更短、更宽的树会“更好”。考虑一下这样一个事实,即到达一棵高大的树中的节点需要额外的决策。
您真正需要查看的是每个内部决策节点的熵和增益。
熵是特定变量的不确定性或随机性的量。换个角度想,它是衡量特定节点上的训练样本的同质程度。例如,考虑一个具有两个类的分类器,YES 和 NO(在您的情况下为真或假)。如果一个特定的变量或属性,比如 x 有 3 个 YES 类的训练样本和 3 个 NO 类的训练样本(总共 6 个),则熵将为 1。这是因为这两个类的数量相同变量并且是您可以获得的最“混淆”。同样,如果 x 具有特定类的所有六个训练示例,假设是,那么熵将为 0,因为该特定变量将是纯的,因此使其成为我们决策树中的叶节点。
熵可以通过以下方式计算:
(来源:dms.irb.hr)
现在考虑增益。请注意,在决策树的每一层,我们选择为该节点呈现最佳增益的属性。增益只是通过学习随机变量 x 的状态而实现的熵的预期减少。增益也称为 Kullback-Leibler 散度。增益可以通过以下方式计算:
(来源:dms.irb.hr)
虽然问题要求您不要计算增益或熵,但有必要进行解释以说明我选择特定属性的原因。在您的情况下,我将假设可食用性是学习的属性。
如果您选择风味或颜色,请注意在这两种情况下您的熵均为 1 [0-1],因为无论属性。在这一点上,你应该看看增益。如果你用属性“颜色”锚定你的树,你将拥有更少的熵,因为属于集合 S 的每个属性的比例会更少。例如,注意“Red”和“Green”的叶子节点已经是纯的,分别是“yes”和“no”。从那时起,您就剩下一个属性可以使用,风味。显然,如果剩下的不止一个,则必须计算每个属性的增益,以确定哪个效果最好,并将其用作下一个“层”
另外,尝试绘制它并使用颜色属性锚定树并计算增益 - 你会发现你更快地收敛到你的答案(纯节点)。
【解决方案2】:
熵和增益绝对是信息论中更好的启发式方法,有助于选择最佳特征。然而,一种选择不如熵准确但效果很好的最佳属性的方法是 1 步前瞻,其工作原理如下:
CHOOSEBESTATTRIBUTE(S)
choose j to minimize J, computed as follows:
S0 = all <x,y> in S with xj = O;
S1 = all <x,y> in S with xj = 1;
Y0 = the most common value of y in S0
Y1 = the most common value of y in S1
J0 = number of examples <x, y> in S0 with y not equal to y0
J1 = number of examples (x, y) in S1 with y not equal to y1
Ji = J0 + J1 (total errors if we split on this feature)
return j
来源:机器学习:Tom M. Mitchell,第 3 章