决策树

决策树:是一种基本的分类与回归的方法、是基于特征对实例进行分类的树形结构

决策树通常有3个步骤:特征的选择,决策树的生成,决策树的修建

下图为决策树的示意图

回归系数的置信区间计算公式_决策树


决策树的特点

优点:计算复杂度不高,输出结果容易理解,对于中间值缺失不明感,可以处理不相关特征数据

缺点:可能会出现数据结果拟合问题

适合数据:数值型和标称型 (标称型数据:比如布尔类型的数据)决策树可以分成ID3、C4.5和CART

熵:样本集合不纯度,熵越小,集合不纯度越低;知识的不确定性,熵越小,不确定性越小。

回归系数的置信区间计算公式_信息增益_02


联合熵是一集变量之间不确定性的衡量手段。(注:表示在已知随机变化量Y的不确定性。条件熵H(Y|X)定义为X给定Y的条件概率分布的熵对X的数学期望).

回归系数的置信区间计算公式_信息增益_03


条件熵:H(X,Y)表示在已知随机变量X的条件下,随机变量Y的不确定性。(条件上的理解后续解说)

条件熵=联合熵-熵信息增益(用于ID3算法):信息增益是相对于特征而言。所以特征A对训练数据集D的信息增益G(D,A)定义为集合D的经验熵H(D)与特征A给定条件下D的经验熵H(D|A):

回归系数的置信区间计算公式_信息增益_04


ID3的缺点:信息增益准则对取值数目较多的属性有所偏好,如果他的ID的信息增益达到最大值,会很容易造成过拟合

C4.5算法:与ID3算法相似,但是在信息增益比作选择特征的标准也就是说选特征的时候要看信息增益
优点:产生的规则易于理解准确率较高实现简单
缺点:对数据集需要进行多次顺序扫描和排序,所以效率较低只适合小规模数据集、需要将数据放到内存中。

CART的全称是分类和回归树,既可以做分类算法,也可以做回归。

优点
1.可以生成可以理解的规则。
2.计算量相对来说不是很大。
3.可以处理连续和种类字段。
4.决策树可以清晰的显示哪些字段比较重要
缺点:

  1. 对连续性的字段比较难预测。
    2.对有时间顺序的数据,需要很多预处理的工作。
    3.当类别太多时,错误可能就会增加的比较快。
    4.一般的算法分类的时候,只是根据一个字段来分类。
    CART分类树:使用基尼系数来代替信息增益比,基尼系数代表了模型的不纯度,基尼系数越小则不纯度越低、特征越好。这和信息增益比是相反的

在分类问题中,假设有K个类别、在K个类别的概率为Pk,则基尼系数为:

回归系数的置信区间计算公式_信息增益_05


对于给定的样本D,假设有K个类别的数量为Ck,则样本的基尼系数为:

回归系数的置信区间计算公式_信息增益_06


特别的,对于样本D,如果根据特征A的某个值a,把D分成D1和D2两部分,则在特征A的条件下D的基尼系数为:

回归系数的置信区间计算公式_数据_07


决策树预剪枝:通过提前停止树的构建而对树剪枝,一旦停止,节点就是树叶,该树叶持有子集元祖最频繁的类。

停止决策树的生长最简单的方法有:

1:定义一个高度,当决策树达到该高度时就停止决策树的生长。

2:达到某个节点的实例具有相同的特征向量,及时这些实例不属于同一类,也可以停止决策树的生长。这个方法处理数据的数据冲突问题比较有效。

3:定义一个阈值,当达到某个节点的实例个数小于阈值时就可以停止决策树的生长。

4 :定义一个阈值,通过计算每次扩张对系统性能的增益,并比较增益值与该阈值大小来决定是否停止决策树的生长。决策树后剪枝:他首先构造完整的决策树,允许数过渡拟合训练数据,然后对那些置信度不够的节点子数用叶子节点来代替,该叶子的类标号用该结点子树中最频繁的类标记。相比于先剪枝,这种方法更常用,正是因为在先剪枝方法中更精准地估计何时停止树增长很困难。

回归系数的置信区间计算公式_数据_08

REP错误率降低剪枝:可用的数据集被分成2个样例集合——一个训练集用来形成学习到的决策树,一个分离的验证集用来评估这个决策树在后续数据上的精度,确切地说是用来评估修建这个决策树的影响
REP的思想:即使学习器可能被训练集中的随机错误和巧合规律所误导,但验证集合不太可能表现出同样的随机波动。所以验证集可以用来对拟合训练集的虚假特征提供防护校验。该剪枝方法考虑将书上的每个节点作为修剪的候选对象,决定是否修剪这个结点方法如下:
1:删除以此结点为根的子树。
2:使其成为叶子节点。
3:赋予该结点关联的训练数据的最常见分类
4:当修剪后的树对于验证集合的性能不会比原来的树差时,才真正删除该结点。

PEP悲观错误剪枝法:是根据剪枝前后的错误率来判断子树的修剪。该方法引入了统计学上连续修正的概念弥补REP中的缺陷,在评价子树的训练错误公式中添加了一个常数,假定每个叶子节点都自动对实例的某个部分进行错误分类。

误判率计算:

.

回归系数的置信区间计算公式_决策树_09


E:预测错误的个数。

0.5:是惩罚的参数。

L:是叶子节点的总个数。

N:样本的个数

误判个数的区间计算:
E1=NE
UAR=sqrt(n
e*(1-e))
E1-UAR>E
符合条件就进行后剪枝

CCP代价复杂度后剪枝:对于完全决策树T的每个非叶节点计算a值,循环剪掉具有最小a值得子树,直到剩下根节点。在该步可以得到一系列的剪枝树{T0、1、T2……Tm},其中T0为原有的完全决策树,Tm为根节点,Ti+1为对Ti进行剪枝的结果

从子树序列中,根据真实的误差估计选择最佳决策树。

回归系数的置信区间计算公式_数据_10


决策树的应用场景:

易于解释。它可以毫无压力地处理特征间的交互关系并且是非参数化的,因此你不必担心异常值或者数据是否线性可分(举个例子,决策树能轻松处理好类别A在某个特征维度x的末端,类别B在中间,然后类别A又出现在特征维度x前端的情况)。它的缺点之一就是不支持在线学习,于是在新样本到来后,决策树需要全部重建。另一个缺点就是容易出现过拟合,但这也就是诸如随机森林RF(或提升树boosted tree)之类的集成方法的切入点。另外,随机森林经常是很多分类问题的赢家(通常比支持向量机好上那么一丁点),它训练快速并且可调,同时你无须担心要像支持向量机那样调一大堆参数,所以在以前都一直很受欢迎。

决策树自身的优点:

1:计算简单,易于理解,可解释性强。

2:比较适合处理有缺失属性的样本。

3:能够处理不相关的特征。

4:在相对短的时间内能够对大型数据源做出可行且效果良好的结果。

缺点:

1:容易发生拟合问题

2:忽略了数据之间的相关性。

3:对于那些各类样本适量不一致的数据,在决策树中信息增益结果偏向那些具有更多数值的特征

CART分为回归树和分类树
1回归树:回归树,顾名思义,就是用树模型做回归问题,每一片叶子都输出一个预测值。预测值一般是该片叶子所含训练集元素输出的均值,即 cm=ave(yi|xi∈leafm)cm=ave(yi|xi∈leafm)
使用的平方均误差
分类树(classification tree)简单地说,就是根据训练数据集构造一个类似树形的分类决策模型,然后用这个模型来辅助决策。使用的是尼基系数