目录
决策树算法
原理
决策树是一种比较常用的分类算法,理解相对容易,所谓决策树分类就是用决策条件构成的一个树状预测模型,通过这个模型,我们可以对未知类别的数据进行分类。
例如:(评选三好学生)
在考虑某位同学是否有资格成为三好学生时,可能分别考虑他的品德,成绩,体育三个方面。
上述例子就不多于赘述,相信大家都能看明白。通过这个例子我们大概知道,决策树是一种树形结构,其中每个节点表示一个属性的测试;每个分支代表一个测试输出,每个叶子节点代表一种类别。
决策树的构造
使用属性选择度量来选择将元组最好地划分成不同的类的属性,进行属性选择度量确定各个特征属性之间的拓扑结构。
关键步骤:分裂属性。
分裂属性
分裂属性就是在某个节点处按照某一特征属性的不同划分构造不同的分支,其目标是让各个分裂子集尽可能地“纯”。尽可能“纯”就是尽量让一个分裂子集中待分类项属于同一类别。
分裂属性分为三种不同的情况:
- 属性是离散值且不要求生成二叉决策树。此时用属性的每一个划分作为一个分支。
- 属性是离散值且要求生成二叉决策树。此时使用属性划分的一个子集进行测试,按照“属于此子集”和“不属于此子集”分成两个分支。
- 属性是连续值。此时确定一个值作为分裂点split point,按照>split point和<=split point生成两个分支。
属性选择度量
关键性内容:进行属性选择度量,
属性选择度量是一种选择分裂准则,是将给定了类标记的训练集合划分,“最好”地分成个体类的启发式方法,它决定了拓扑结构及分裂点split point的选择。属性选择度量算法有很多,一般使用自顶向下递归分治法,并采用不回溯的贪心策略。
常用的算法:
- ID3
- C4.5。
剪枝
在实际构造决策树时,通常要进行剪枝,这是为了处理由于数据中的噪声和离群点导致的过分拟合问题。
剪枝有两种:
- 先剪枝——在构造过程中,当某个节点满足剪枝条件,则直接停止此分支的构造
- 后剪枝——先构造完成完整的决策树,再通过某些条件遍历树进行剪枝。
交叉验证
( 将数据集分为测试集和训练集。)
因为在实际的训练中,训练的结果对于训练集的拟合程度通常还是挺好的(初试条件敏感),但是对于训