2010-09-19 104 views

回答

0

只要满足分裂标准,那么你继续分裂(从现存的两个新节点形成)。

分裂准则通常是父节点信息增益,又名,之间的差的负值(或方差如果变量是离散的,而不是绝对的)和的加权平均IG假定子节点的加权平均信息增益

if weighted_mean(IG_child1, IG_child2) < IG_parent : 
    createNodes(IG_child1, IG_child2) 
else : 
    continue 

因此,这是微不足道的答案,但有可能有你的问题,而如果你不介意的背后更复杂的意图,我会重新WO rd略微如只要分裂准则满足,你应该继续创建节点吗?

正如你可能刚刚发现,如果你是一个编码ID3算法,应用分割标准无约束往往会导致过度拟合(即你从训练数据构建树没有按因为它没有将真正的模式与噪音区分开来,所以概括得很好)。

因此,这更可能是回答你的问题:技术,以“约束”节点分离(并因此处理过拟合问题)全部落入两个大类 - 自上而下下一个up。自上而下的一个例子:设置一些阈值(例如,如果子节点的加权平均值小于5%以下,那么不要分割)?

自下而上的示例:pruning。修剪意味着在分裂标准满足之后让算法分裂,然后停止,从底层的节点开始并“非分裂”任何节点,其中子节点与父节点之间的IG差异小于某些节点阈。

这两种方法并不具有相同的效果,事实上修剪是优越的技术。原因是:如果你自上而下执行分裂阈值,那么当然会阻止一些分裂;然而,如果它已被允许发生,则下一次拆分(两个子节点中的一个或两个拆分为孙子)可能是有效的拆分(即,高于阈值),但该拆分永远不会发生。修剪当然会对此作出解释。

2

当没有留下要分类的示例或者没有属性需要分类时,分支停止。 algorithm description on Wikipedia非常容易遵循,并且还有一些链接指向示例和讨论。

+1

+1等价说明,当节点上的所有示例都具有相同的目标类时(不需要分割) – Amro 2010-09-19 22:17:15