1.定义
决策树(Decision Tree)是一种基本的分类和回归算法。该算法模型呈树形结构,主要由结点和有向边组成。结点又分为两种类型:内部结点和叶子结点。内部结点表示在一个属性或特征上的测试,每一个结点分枝代表一个测试输出,每一个叶子结点代表一个类别。决策树学习是以实例为基础的归纳学习
2.概念
决策树就是一棵树,一颗决策树包含一个根节点、若干个内部结点和若干个叶结点;叶结点对应于决策结果,其他每个结点则对应于一个属性测试;每个结点包含的样本集合根据属性测试的结果被划分到子结点中;根结点包含样本全集,从根结点到每个叶子结点的路径对应了一个判定测试序列
3.特点
(1)决策树是一种构建分类模型的非参数方法。换句话说,它不要求任何先验假设,不假定类和其他属性服从一定的概率分布。
(2)已开发的构建决策树技术不需要昂贵的计算代价,即使训练集非常大,也可以快速建立模型。此外,决策树一旦建立,未知样本分类非常快,最坏情况下的时间复杂度是O(w), w为树的最大深度。
(3) 决策树相对容易解释,特别是小型的决策树。在很多简单的数据集上,决策树的准确率可以与其他分类算法相媲美。
4.公式
(1)熵:熵是表示随机变量不确定性的度量。 随机变量的熵值越大则越不稳定。其公式如下:
其中,X 为随机变量,n 为随机变量X 的不同取值个数,pi = P ( X = x i )
条件熵:条件熵H ( Y ∣ X )表示在已知随机变量X的条件下随机变量Y的不确定性。其公式如下:
其中,p i = P ( X = x i )
(2) ID3算法:使用信息增益作为特征选择方法。信息增益表示得知特征X的信息而使得类Y的信息不确定性减少的程度,标记为g ( Y , X )。公式如下:
(3)C4.5算法:内部使用信息增益比进行特征选择,是对ID3算法的一种改进。使用信息增益作为划分训练数据集的特征,存在偏向于选择取值较多的特征的问题,而信息增益比可以对该问题进行矫正。信息增益比gr(Y,X)定义为特征A对类Y的信息增益g(Y,A)与特征A的熵之比,公式如下:
(4)CART(Classification And Regression Tree):
二叉树,简化决策树的规模,提高树的生成效率,比起ID3和C4.5的多叉树来说,计算规模更小。Gini指数:衡量一个分割的纯净度。Gini指数越小,说明此分割越纯净,此分割中的绝大部分样本属于同一类。随机抽取两个样本,其类别不一致的概率, 类似于 p(1-p)。公式如下:
5.决策树剪枝
1.原理:剪枝是决策树算法对付“过拟合”的主要手段。其基本策略主要有“预剪枝”和“后剪枝”两种。具体如下:
【预剪枝】:预剪枝是指在决策树生成过程中,对每个结点在划分前先进行估计,若当前结点的划分不能带来决策树泛化性能提升,则停止划分并将当前结点标记为叶结点。
【后剪枝】:后剪枝则是先从训练集中生成一颗完整的决策树,然后自底向上地对非叶结点进行考察,若将该结点对应的子树替换为叶结点能带来决策树泛化能力能提升,则将该子树替换为叶结点。
决策树的剪枝通过极小化决策树整体的损失函数来实现的
2.决策树损失函数
假设决策树T的叶结点个数为|T| t是树的叶结点,该结点有Nt个样本,其中k类的样本点有Nte个, Ht (T)为叶结点t上的经验熵,a≥0为参数,则决策树的损失函数可以定义为:
第一项表示模型对训练数据的预测误差,第二项中的∣ T ∣ |T|∣T∣表示模型复杂度。其中经验熵为:
当a确定时,子树越大,往往与训练数据的拟合越好,但是模型的复杂度就越高;相反,子树越小,模型的复杂度越低,但是与训练数据的拟合就不够好。
3.实现:以后剪枝为例,设一组叶结点回缩到其父结点之前与之后的整体树分别为TA和TB ,其对应的损失函数值分别为Cα(TA)和Cα(TB),如果Cα(TA)≥ Cα(TB).则进行剪枝。