如何构建决策树?
决策树是一种类似流程图的树形机制,其中每个内部节点表示对属性的测试,每个分支定义测试的结果,叶节点描述类或类分布。树中最大的节点是根节点。
构建决策树的问题可以递归地定义。首先,选择一个属性放在根节点,并为每个可能的值创建一个分支。这将示例集划分为子集,每个子集对应于属性的一个值。该过程可以递归地对每个分支重复,只使用到达该分支的实例。如果节点中的一些实例具有相似的分类,则停止创建该树的元素。
我们将使用的纯度度量称为信息,并以比特为单位进行测量。与树的每个节点相关联,它表示需要指定新实例是否应分类为“是”或“否”的预期信息量,前提是实例到达该节点。
剪枝是减小决策树大小的过程。它用于通过描述树的大小或去除提供少量功效的树区域来降低过拟合的风险。剪枝通过修剪由于噪声或异常值而遵循训练数据中异常的分支来实现,并以提高树的泛化有效性的方式提供初始树。
几种方法经常使用统计度量来去除最不可靠的分支,这通常会导致更快的分类和提高树准确分类独立测试数据的能力。
学习决策树的算法
算法 - 从给定的训练信息中创建一个决策树。
输入 - 由离散值属性描述的训练样本;属性集,属性列表。
输出 - 决策树。
方法
创建一个节点N;
如果样本都属于同一个类C,则
返回N作为标记为类C的叶节点
如果属性列表为空,则
返回N作为标记为样本中最频繁类的叶节点。// 多数投票
选择测试属性,即属性列表中信息增益最大的属性。
用测试属性标记节点N。
对于测试属性的每个已知值ai //划分样本。
为条件测试属性= ai 从节点N生长一个分支。
令si 为样本中测试属性= ai 的样本集。
如果si 为空,则
它可以连接到标记为样本中最常见类的叶节点。
否则附加由生成决策树(si, 属性列表 - 测试属性)返回的节点
广告