《数据挖掘》国防科技大学
《数据挖掘》青岛大学
《机器学习》周志华
《统计学习方法》李航
数据挖掘/机器学习之决策树
一、概述
决策树(Decision Tree)是从一组无次序、无规则,但有类别标号的样本集中推导出的、树形表示的分类规则。
如何选择测试属性:测试属性的选择顺序影响决策树的结构甚至决策树的准确率。
如何停止划分样本:从根结点测试属性开始,每个内部结点测试属性都把样本空间划分为若干个子区域,一般当某个子区域的样本同属一个类别时,就停止划分样本。有时也通过设置特定条件来停止划分样本,例如树的深度达到用户指定的深度,结点中样本的个数少于用户指定的个数等。
1. 任务属性
分类任务、回归任务(CART)
2. 结构
根结点:样本全集
内部结点:表示一个特征或属性
叶结点:表示一个类
根到叶的路径:表示分类规则
3. 特点
-
决策树分类方法采用自顶向下的递归方式
-
树状结构,可以很好的对数据进行分类;
-
决策树的根节点到叶节点的每一条路径构建一条规则,整棵决策树就对应着一组析取表达式规则;
-
具有互斥且完备的特点,即每一个样本均被且只能被一条路径所覆盖;
-
只要提供的数据量足够庞大真实,通过数据挖掘模式,就可以构造决策树。
-
优点
➢ 易理解:决策规则建立的过程易理解
➢ 可视化:树形结构可以可视化,直观
➢ 效率高:决策树只需一次构建,反复使用
➢ 在学习过程中不需要使用者了解很多背景知识。 -
缺点
➢ 过拟合:容易生成复杂的树结构(剪枝可以缓解过拟合的负作用)
➢ 泛化能力差:基于贪心算法建立,不能保证建立全局最优的决策树 (随机森林算法 进行优化)
4. 基本算法
Hunt算法是Hunt等人1966年提出的决策树算法,它在选择划分训练集的属性时采用贪心策略,将训练集相继划分成较纯(包括更少类别)的子集,以递归方式建立决策树,并成为许多决策树算法的衍生框架,包括ID3、C4.5等。
Hunt算法框架:
假设结点h对应的样本集用Sh表示,而C={C1, C2, …, Ck}是其类别属性
Hunt算法的递归定义如下:
(1) 如果Sh中所有样本点都属于同一个类Ch,则h为叶结点,并用分类标号Ch标记该结点。
(2) 如果Sh中包含多个类别的样本点,选择一个“好”的属性A,以属性A命名h并作为一个内部结点;然后按属性A的取值将S