什么是决策树?
决策树是一种类似流程图的树机制,其中每个内部节点表示对一个属性的测试,每个部门定义测试的结果,叶子节点描述类或类分布。树中最高的节点是根节点。
学习决策树的算法
算法-根据给定的训练信息创建决策树。
Input-训练样本,样本,由离散值属性描述;学生属性集,属性列表。
输出-决策树。
方法
创建节点N;
如果样本都属于同一类,则C
将N作为标记为C类的叶节点返回
如果属性列表为空,则
将N作为叶节点返回,标记为样本中最常见的类。//多数票
选择test-attribute,attribute-list中信息增益最高的属性。
用测试属性标记节点N。
对于测试属性的每个已知值ai//划分样本。
从节点N为条件test-attribute=ai生成一个分支。
让si是样本中test-attribute=ai的样本集。
如果si为空,则
它可以连接一个标记有样本中最常见类的叶子。
否则附加生成决策树返回的节点(si,attribute-list-test-attribute)
决策树归纳
例如决策规则的自动产生被称为规则归纳或自动规则归纳。它可以在决策树的隐式设计中创建决策规则,也经常称为规则归纳,但经常选择术语树归纳或决策树归纳。
决策树归纳的基本算法是贪心算法。它用于以自上而下的递归分而治之的方式生成决策树。学习决策树的基本算法,是ID3的一种形式,一种著名的决策树归纳算法。
基本方法如下-
树从定义训练样本的单个节点开始。
如果样本都是相似的类,则节点变成叶子并用该类标记。
该算法应用一种称为信息增益的基于熵的度量作为启发式方法,用于选择将样本划分为单个类的属性。该属性在节点上发展为“测试”或“决策”属性。在这种形式的算法中,所有属性都是分类的,即离散值的。连续值的属性应该被离散化。
对每个已知的测试属性值生成一个部门,并对样本进行适当的划分。
该算法使用类似的过程循环来为每次分离的样本形成决策树。因为某个属性已经出现在某个节点上,所以要求在该节点的某些后代中不进行处理。