标签:
在构造决策树时, 需要解决的第一个问题就是, 当前数据集上哪个特征在划分数据分类时起决定性作用。为了找到决定性的特征,划分出最好的结果,必须评估每个特征。
完成测试之后, 原始数据集就被划分为几个数据子集。这些数据子集会分布再第一个决策点的所有分支上。如果摸个分支下的数据属于同一类型,则当前已经正确地划分数据分类,无需进一步对数据集进行分割。如果数据子集内的数据不属于同一类型,则需要重复划分数据子集的过程。划分数据子集的算法和划分原始数据集的算法相同。持续整个过程知道所有具有相同类型的数据均在一个数据子集内。
创建分支的伪代码如下
1 | 检测数据集中的每个子项是否属于同一分类 |
2 |
if 属于同一匪类: return 类标签 |
3 |
else: |
4 | 寻找划分数据集的最好要特征 |
5 | 划分数据集 |
6 | 创建分支节点 |
7 |
for 每个划分的子集: 递归调用函数,并增加返回结果到分支节点中 |
8 | return 分支节点 |
决策树的一般流程
1 | 收集数据 | 可以使用任何方法 |
2 | 准备数据 | 树构造算法只适用于标称型数据,因此数值型数据必须离散化 |
3 | 分析数据 | 可以使用任何方法,构造树完成之后,我们应该检查图形是否符合预期 |
4 | 训练算法 | 构造树的数据结构 |
5 | 测试算法 | 使用经验树计算错误率 |
6 | 使用算法 | 此步骤可以适用于任何监督学习算法,而使用决策树可以更好地理解数据的内在含义 |
一些决策树算法采用二分法划分数据。
标签:
原文地址:http://www.cnblogs.com/keltoy/p/5388976.html