前言
在机器学习中,决策树是非常重要的组成部分,而且决策树并不多见机器学习中常见到的数学公式,易于理解,本文是记录一下自己的学习资料,以备查看。
定义
在维基百科中,决策树定义如下:
机器学习中,决策树是一个预测模型;他代表的是对象属性与对象值之间的一种映射关系。树中每个节点表示某个对象,而每个分叉路径则代表的某个可能的属性值,而每个叶结点则对应从根节点到该叶节点所经历的路径所表示的对象的值。决策树仅有单一输出,若欲有复数输出,可以建立独立的决策树以处理不同输出。 数据挖掘中决策树是一种经常要用到的技术,可以用于分析数据,同样也可以用来作预测。
从数据产生决策树的机器学习技术叫做决策树学习,通俗说就是决策树。
在《数据科学入门》中,对决策树有以下描述
决策树通过树状结构来表示各种可能的决策路径(decision path),以及每个路径的结果
优缺点
优点:
计算复杂度不高,输出结果易于理解,对中间值的缺失不敏感,可以处理不相关特征数据。
缺点
可能会产生过度匹配问题。
适用数据类型
数值型和标称型
资料来源
《机器学习实战》第三章
结构
一个决策树包含三种类型的节点:
- 决策节点:通常用矩形框来表示
- 机会节点:通常用圆圈来表示
- 终结点:通常用三角形来表示
一棵决策树包含一个根节点,若干个内部节点和若干个叶节点;叶节点对应于决策结果,其他每个节点则对应于一个属性测试;每个节点包含的样本集合根据属性测试的结果被划分到子节点中;根节点包含样本全集。
决策树学习的目的是为了产生一棵泛化能力强,即处理未见示例能力强的决策树。
流程
在《机器学习实战》中,对决策树流程有以下描述
决策树的一般流程:
- 收集数据:可以使用任何方法
- 准备数据:树构造算法只适用于标称型数据,因此数值型数据必须离散化
- 分析数据:可以使用任何方法,构造树完成以后,我们应该检查图形是否符合预期
- 训练算法:构造树的数据结构
- 测试算法:使用经验树计算错误率
- 使用算法:此步骤可以适用于任何监督学习算法,而使用决策树可以更好地理解数据的内在含义
在西瓜书中,对决策树生成过程有以下描述:
决策树生成过程是一个递归过程。有三种情况导致递归返回
1. 当前节点包含的样本全属于同一类别,无需划分
2. 当前的属性集为空,或是所有样本在所有属性上取值相同,无法划分
3. 当前结点包含的样本集合为空,不能划分在情形2中,我们把当前节点标记为叶节点,并将其类别设定为该节点所包含样本最多的类别。
在情形3中,同样把当前节点标记为叶节点,但将其类别设定为其父节点所含样本最多的类别。两种情形之不同:
情形2是在利用当前节点的后验分布,而3则是把父节点的样本分布作为当前节点的先验概率
信息增益
熵
信息熵(information entropy ) 是度量样本集合纯度最常用的一种治标。
熵是整个系统的平均消息量,即:
值越小,纯度越高。(纯度越高,信息含量越低,包含的不确定性越低)
信息增益(information gain)
信息增益是特征选择中的一个重要指标,它定义为一个特征能够为分类系统带来多少信息,带来的信息越多,该特征越重要。
那么如何衡量一个特征为分类系统带来的信息多少呢:
对一个特征而言,系统有它和没它时信息量将发生变化,而前后信息量的差值就是这个特征给系统带来的信息量。所谓信息量,其实就是熵。
一般而言,信息增益越大,则意味着使用a来进行划分所获得的“纯度提升”越大。
基尼系数
Gini(D) 反映了从数据集D中随机抽取两个样本,其类别标记不一致的概率。因此,Gini(D)越小,则数据集D的纯度越高。
剪枝处理(pruning)
剪枝是决策树学习算法对付“过拟合”的主要手段。分为”预剪枝”(prepruning)和”后剪枝”(post-pruning)
“预剪枝”(prepruning)
在决策树生成过程中,对每个结点在划分前先进行评估,若当前节点的划分不能带来决策树泛化性能的提升,则停止划分并将当前节点标记为叶节点。
“后剪枝”(post-pruning)
先从训练集生成一棵完整的决策树,然后自底向上地对非叶节点进行考察,若将该节点对应的子树替换为叶节点能带来决策树性能提升,则将该子树替换为叶节点。
算法
决策树学习算法: ID3、C4.5和CART
多变量决策树算法:OC1
参考资料
《机器学习实战》第三章
《机器学习》第四章
《数据科学入门》第十七章