决策树学习笔记(Decision Tree)

 什么是决策树?

  决策树是一种基本的分类与回归方法。其主要有点事模型具有可得性,分类速度快。学习时,利用训练数据,根据损失函数最小化原则建立决策树模型;预测时,对新数据,利用决策树模型进行分类。

 决策树学习通常包含以下三个步骤:

  •   选择特征
  •   决策树生成
  •   剪枝

 决策树的改进路线:

  ID3--->C4.5--->CART

  (1)其中ID3是基于信息增益来选择划分属性

  (2)C4.5不直接使用增益率来选择划分属性,而是使用了一个启发式:先从候选划分属性中选取信息增益高于平局水平的属性,再从中选择增益率最高的。

  (3)CART(Classification and Regression Tree)算法使用基尼系数来代替信息增益比。

 信息

  这个是熵和信息增益的基础概念,是对一个抽象事物的命名,无论用不用‘信息’来命名这种抽象事物,或者用其他名称来命名这种抽象事物,这种抽象事物是客观存在的。如果带分类的事物集合可以划分为多个类别当中,则某个类(xi)的信息(量)定义如下:

         

  I(x)用来表示随机变量的信息,p(xi)指是当xi发生时的概率。当事件xi发生的概率p(xi)很小,但是它却发生了,那这个信息量相当大,比如买彩票中奖了,那么这个信息量肯定是很大的。相反,对于大概率事件,人们习以为常,那么这个事件的信息量就很小。这就体现在上述公式中。

 信息熵

  “信息熵”是度量样本纯度最常用的一种指标。所谓样本纯度,相反而言之就是凌乱程度。如一个数据集U中的样本都属于同一类,那么这时样本纯度最高而凌乱程度最低。信息熵定义为:

   

  其中D表示样本集合,|y|样本中类别的数目, pk表示第k种分类占集合的比例。Ent(D)的值越小,D的纯度越高。

 信息增益

  信息增益 指的是,使用某一个属性a进行划分后,所带来的纯度提高的大小。一般而言,信息增益越大,意味着使用属性a来进行划分所获得的“纯度提升”越大。信息增益定义如下:  

    

  即

  信息增益 = 根节点的信息熵 - 所有分支节点的信息熵的加权和

  其中,权值为划分后属性a=ak节点中样本的数量与划分前节点中的样本数量的比值,即概率。概率确保了权重的和为1.

        

      上图描述的是,使用属性a对样本集合D进行划分,因为a有V个取值,因此决策树会有V个分支。划分后每一个节点中样本的数量为属性a=ak的样本的数量。

    问:如何理解:信息增益越大,意味着使用属性a来进行划分所获得的“纯度提升”越大?

    答:因为Ent(D)的值越小,D的纯度越高。而划分后,所有的分支节点的Ent(Dk)的和就是划分后的信息熵,公式体现了前后的差距,如果差距越大,那么就说明划分后所有的分支节点的信息熵越小,纯度提升越大。

 增益率

  背景:当样本集中的某一属性取值使得所有样本被分到不同类别,此时分支的纯度达到最高,无需再继续划分。然而这样的决策树不具备泛化能力。事实上,信息增益准则对可取值较多的属性有所偏好。

  为了减少这种偏好可能带来的影响,因此使用增益率代替信息增益准则选择划分属性。

  即增益率(Gain_ratio(D,a))=信息增益Gain(D,a)/属性固有值(IV(a))。
  属性A的可能取值越大,固有值IV(a)通常越大。
  信息增益率偏向于可能取值减少的属性。因此C4.5算法不直接使用信息增益率来选择划分属性。

 基尼值

  基尼值 Gini(D) 反映了从数据集中随机抽取两个样本,其类别标记不一致的概率。当数据集的纯度越高,每次抽到不同类别标记的概率越小。打个比方,在一个袋子里装100个乒乓球,其中有99个白球,1个黄球,那么当我们随机抽取两个球的时候,很大概率是抽到两个白球。

  所以数据集D的纯度可以用基尼值类度量,其定义如下:

    

  基尼值越小,数据集D纯度越高。

 基尼指数

  基尼指数是针对于属性定义的,其反映的是,使用属性a进行划分后,所有分支中(使用基尼值度量的)纯度的加权和。

  属性a的基尼指数定义如下:

   

  我们在属性集合A中选择划分属性的时候,就选择使得划分后基尼指数最小的属性作为最优划分属性。CART就是用基尼指数来选择划分属性的。

 决策树的剪枝处理

  剪枝是决策树学习算法解决过拟合的主要手段。在决策树的学习过程中,为了尽可能地正确分类训练样本,节点划分得不断重复,有时候会造成决策树的分支过多,,这时候就是算法在训练样本上学得太好,导致把训练集本身的一些特点作为所有数据所有数据都有的一般性质(实际上新数据中可能没有这些特点),从而导致过拟合。因此可以主动去掉一些分支来降低过拟合的风险。

  决策树的剪枝分为  预剪枝  和  后剪枝 。

  

  

原文地址:https://www.cnblogs.com/houjun/p/8520964.html

时间: 2024-10-19 14:04:47

决策树学习笔记(Decision Tree)的相关文章

OpenCV码源笔记——Decision Tree决策树

来自OpenCV2.3.1 sample/c/mushroom.cpp 1.首先读入agaricus-lepiota.data的训练样本. 样本中第一项是e或p代表有毒或无毒的标志位:其他是特征,可以把每个样本看做一个特征向量: cvSeqPush( seq, el_ptr );读入序列seq中,每一项都存储一个样本即特征向量: 之后,把特征向量与标志位分别读入CvMat* data与CvMat* reponses中 还有一个CvMat* missing保留丢失位当前小于0位置: 2.训练样本

《机器学习》第三章 决策树学习 笔记加总结

<机器学习>第三章 决策树学习 决策树学习方法搜索一个完整表示的假设空间,从而避免了受限假设空间的不足.决策树学习的归纳偏置是优越选择较小的树. 3.1.简介 决策树学习是一种逼近离散值目标函数的方法,在这种方法中学习到的函数被表示为一棵决策树. 决策树(Decision Tree)是一种简单但是广泛使用的分类器.通过训练数据构建决策树,可以高效的对未知的数据进行分类. 决策数有两大优点: 1)决策树模型可以读性好,具有描述性,有助于人工分析: 2)效率高,决策树只需要一次构建,反复使用,每一

Extjs学习笔记--Ext.tree.Panel

Ext.create('Ext.tree.Panel', { title: 'Simple Tree', width: 200, height: 150, store: store, rootVisible: false, //是否显示根节点 lines:false,//是否显示树节点前面的虚线 参考图A,B renderTo: Ext.getBody() });            图片A                           图片B

《机器学习实战》第3章 决策树 学习笔记

决策树从数据集合中提取出一系列的规则,这些规则可以用流程图表示,其数据形式非常容易理解:专家系统中就经常使用决策树. 1.决策树的构造:①采用ID3算法(最高信息增益)划分数据集:②递归创建决策树. 2.使用matplotlib的注解功能,可以将存储的树结构转化为容易理解的图形. 3.使用python的pickle模块可用于存储决策树的结构. 4.对于过度匹配的问题,可以通过裁剪树的手段来消除. 5.ID3算法适合处理标称型数据,如果是数值型数据,必须离散化. 6.还有其他的决策树算法,最流行的

机器学习实战3:决策树学习笔记(python)

决策树就是在已知各种情况发生概率的情况下,通过构造决策树,评价项目风险,判断其可行性的决策分析方法,它是运用概率分析的一种图解法. 优缺点分析: 优点:计算复杂度不高,输出结果较直观,易于理解,对中间值的缺失不敏感,可以处理不相关特征数据 缺点:可能产生过度匹配 创建数据集并计算其熵值: from math import log import operator def createDataSet(): dataSet = [[1, 1, 'yes'], [1, 1, 'yes'], [1, 0,

决策树学习笔记

原文地址:https://www.zybuluo.com/K1999/note/455654

CART分类与回归树与GBDT(Gradient Boost Decision Tree)

一.CART分类与回归树 资料转载: http://dataunion.org/5771.html Classification And Regression Tree(CART)是决策树的一种,并且是非常重要的决策树,属于Top Ten Machine Learning Algorithm.顾名思义,CART算法既可以用于创建分类树(Classification Tree),也可以用于创建回归树(Regression Tree).模型树(Model Tree),两者在建树的过程稍有差异.CAR

【转载】决策树Decision Tree学习

本文转自:http://www.cnblogs.com/v-July-v/archive/2012/05/17/2539023.html 最近在研究规则引擎,需要学习决策树.决策表等算法.发现篇好文对我这个初学者很有指导价值,先转再细品. 1. 什么是决策树 咱们直接切入正题.所谓决策树,顾名思义,是一种树,一种依托于策略抉择而建立起来的树. 机器学习中,决策树是一个预测模型:他代表的是对象属性与对象值之间的一种映射关系.树中每个节点表示某个对象,而每个分叉路径则代表的某个可能的属性值,而每个叶

决策树(decision tree)

决策树 ID3,C4.5,CART,决策树的生成,剪枝. 一.概述 决策树(decision tree)是一种基本的分类与回归方法(这里是分类的决策树).决策树模型呈树形结构,在分类问题中,表示基于特征对实例进行分类的过程.它可以认为是if-then规则的集合,也可以认为是定义在特征空间与类空间上的条件概率分布.其主要优点是模型具有可读性,分类速度快.学习时,利用训练数据,根据损失函数最小化的原则建立决策树模型.预测时,对新的数据利用决策树模型进行分类.决策树学习通常包括三个步骤:特征选择.决策