机器学习笔记-决策树

决策树(Decision Tree)

决策树学习,建立一颗树结构的模型。此模型由一系列逻辑决策构成。在此结构中决策点代表某个属性上的决策,分支表示决策选择项,树的叶子节点是一系列联合决策的结论。

决策树通过分而治之(Divide and conquer)方式-递归划分(recurisive partitioning)来建立。在这个建立过程中,我们从代表所有数据的根节点出发,选择通向目标分类的特性把样本拆分成不同的组,如此直至触及停止标准。有几类停止标准, 节点上的所有或几乎所有的样本都是属于同一类;没有特征能对样本进行继续分类了;树已经触及预定义的大小限制.

决策树算法:

a. C5.0

优点 缺点
适用于大多数情况的多用途分类器 模型偏向于具有大量层级的特征
高自动化学习过程,可以处理数据跟名词性特征以及确实数据 容易过拟合(overfit)与欠拟合(underfit)
只需用到重要特征 由于基于axis-parallel建模一些关系时会比较棘手
适用于训练样本相不少或是很大的情况 训练数据小的改变会很大地改变决策逻辑
生成相对小的树,对树的解释不需要大量的数学背景。 大的树难于理解,达成不直觉的决策。
性比其它复杂的模型,这个更有效

建立决策树面对的第一个挑战就是从哪个特征着手进行切分。如果我们切分出来的分段数据仅包含一类数据,那我们说这个“一致”(Pure)的。

在C5.0里我们用熵(entropy)来衡量一致性。熵为0则表示样本是完全同质的。熵为1则表示完全无序。

c

Entropy(S) = Σ  -Pi log2(Pi)

i=1

熵计算公式中各个部分的意义如下。在一个分段S上有c个类层次。Pi是第i个类层次的占比。

有了一致性衡量的熵,我们就可以来解决如何拆分样本。这里就得说到信息增益(Information Gain)

InfoGain(F) = Entropy(S1) - Entropy(S2)

信息增益就是样本拆分前后的熵的差值。拆分后的熵的计算公式如下:

n

Entropy(S) = Σ  wi Entropy(Pi)

i=1

这个就是拆分后各部分的熵Entropy(Pi)如这一部分在总样本中所占比的乘积的总和。

信息增益越高表明分拆越有效。

当树膨胀到一定大小后会导致决策过于特殊化, 得出的模型过拟合。克服此现象的做法有pre-pruning跟post-pruning。 pre-pruning就是当决策点达到某个量时或者决策节点中只包含少量样本是就停止树的构建。pre-pruning无法预知会不会遗漏掉某些细微的但是有相当重要的模式。

pre-pruning之外的另一个方法就是post-pruning。当树构建的相当大后,我们用某些基于误码率的修剪标准来修建树。这个方式通常比pre-pruning更有效。

在post-pruning的过程有连个可能的处理,一个是子树提升(subtree raising),还有一个是子树置换(subtree replacement)

C5.0很容易通过调整训练选项来在过拟合跟欠拟合间达成平衡。

C5.0比C4.5增加了自适应增强(adaptive boosting).前一个分类器分错的样本会被用来训练下一个分类器。AdaBoost方法对于噪声数据和异常数据很敏感。但在一些问题中,AdaBoost方法相对于大多数其它学习算法而言,不会很容易出现过拟合现象。AdaBoost方法中使用的分类器可能很弱(比如出现很大错误率),但只要它的分类效果比随机好一点(比如两类问题分类错误率略小于0.5),就能够改善最终得到的模型。而错误率高于随机分类器的弱分类器也是有用的,因为在最终得到的多个分类器的线性组合中,可以给它们赋予负系数,同样也能提升分类效果。

除了自适应增强,C5.0还可以提供一个成本矩阵(cost matrix)来修正模型。

http://sjchen.im.nuu.edu.tw/MachineLearning/final/CLS_DT.pdf

时间: 2024-08-09 21:58:56

机器学习笔记-决策树的相关文章

机器学习笔记——支持向量机(3)

八.核(kernel) 如果样本点为线性不可分,那么,需要将数据映射到高维空间,使在原始空间内其线性可分变为线性可分.如下图所示: 上文提到,分类器可以写成: 那么,如果使用一种映射的方法,将低维数据映射到高维(),使得线性不可分变为线性可分.称为特征映射函数,这样,分类器就变为: (1)实例 低维映射到高维能否将线性不可分变为线性可分呢?下面就举个例子来看.假设数据可以用决策的边界表示(如下图左所示),那么,利用, ,做映射,可以得到决策边界:.经过上述的映射变换,原来在圆内的点都在超平面的一

机器学习笔记

下载链接:斯坦福机器学习笔记 这一系列笔记整理于2013年11月至2014年7月.所有内容均是个人理解,做笔记的原因是为了以后回顾相应方法时能快速记起,理解错误在所难免,不合适的地方敬请指正. 笔记按照斯坦福机器学习公开课的notes整理,其中online学习部分没有整理,reinforcement learning还没接触,有时间补上. 这份笔记主要记录自己学习过程中理解上的难点,所以对于初学者来说可能不容易理解,更详细和全面的说明可以参照JerryLead等的机器学习博文. 水哥@howde

机器学习笔记(1)

今天按照<机器学习实战>学习 k-邻近算法,输入KNN.classify0([0,0],group,labels,3)的时候总是报如下的错误: Traceback (most recent call last): File "<pyshell#75>", line 1, in <module> KNN.classify0([0,0],group,labels,3) File "KNN.py", line 16, in classi

机器学习笔记——K-means

K-means是一种聚类算法,其要求用户设定聚类个数k作为输入参数,因此,在运行此算法前,需要估计需要的簇的个数. 假设有n个点,需要聚到k个簇中.K-means算法首先从包含k个中心点的初始集合开始,即随机初始化簇的中心.随后,算法进行多次迭代处理并调整中心位置,知道达到最大迭代次数或中性收敛于固定点. k-means聚类实例.选择三个随机点用作聚类中心(左上),map阶段(右上)将每个点赋给离其最近的簇.在reduce阶段(左下),取相互关联的点的均值,作为新的簇的中心位置,得到本轮迭代的最

机器学习笔记 贝叶斯学习(上)

机器学习笔记(一) 今天正式开始机器学习的学习了,为了激励自己学习,也为了分享心得,决定把自己的学习的经验发到网上来让大家一起分享. 贝叶斯学习 先说一个在著名的MLPP上看到的例子,来自于Josh Tenenbaum 的博士论文,名字叫做数字游戏. 用我自己的话叙述就是:为了决定谁洗碗,小明和老婆决定玩一个游戏.小明老婆首先确定一种数的性质C,比如说质数或者尾数为3:然后给出一系列此类数在1至100中的实例D= {x1,...,xN} :最后给出任意一个数x请小明来预测x是否在D中.如果小明猜

机器学习笔记——人工神经网络

人工神经网络(Artificial Neural Networks,ANN)提供了一种普遍而实用的方法从样例中学习值为实数.离散值或向量的函数. 人工神经网络由一系列简单的单元相互密集连接构成,其中每一个单元有一定数量的实值输入(可能是其他单元的输出),并产生单一的实数值输出(可能成为其他单元的输入). 适合神经网络学习的问题: 实例是很多"属性-值"对表示的 目标函数的输出可能是离散值.实数值或者由若干实数或离散属性组成的向量 训练数据可能包含错误 可容忍长时间的训练 可能需要快速求

机器学习笔记04:逻辑回归(Logistic regression)、分类(Classification)

之前我们已经大概学习了用线性回归(Linear Regression)来解决一些预测问题,详见: 1.<机器学习笔记01:线性回归(Linear Regression)和梯度下降(Gradient Decent)> 2.<机器学习笔记02:多元线性回归.梯度下降和Normal equation> 3.<机器学习笔记03:Normal equation及其与梯度下降的比较> 说明:本文章所有图片均属于Stanford机器学课程,转载请注明出处 面对一些类似回归问题,我们可

机器学习笔记之基础概念

本文基本按照<统计学习方法>中第一章的顺序来写,目录如下: 1. 监督学习与非监督学习 2. 统计学习三要素 3. 过拟合与正则化(L1.L2) 4. 交叉验证 5. 泛化能力 6. 生成模型与判别模型 7. 机器学习主要问题 8. 提问 正文: 1. 监督学习与非监督学习 从标注数据中学习知识的规律以及训练模型的方法叫做监督学习,但由于标注数据获取成本较高,训练数据的数量往往不够,所以就有了从非标注数据,也就是非监督数据中学习的方法. 由于非监督数据更容易获取,所以非监督学习方法更适合于互联

笔记︱决策树族——梯度提升树(GBDT)

笔记︱决策树族--梯度提升树(GBDT) 本笔记来源于CDA DSC,L2-R语言课程所学进行的总结. 一.介绍:梯度提升树(Gradient Boost Decision Tree) Boosting算法和树模型的结合.按次序建立多棵树,每棵树都是为了减少上一次的残差(residual),每个新的模型的建立都是为了使之前模型的残差往梯度方向减少.最后将当前得到的决策树与之前的那些决策树合并起来进行预测. 相比随机森林有更多的参数需要调整. ---------------------------