决策树介绍

 决策树(decision tree)

    决策树:是一种基本的分类和回归方法。它是基于实例特征对实例进行分类的过程,我们可以认为决策树就是很多if-then的规则集合。

优点:1)训练生成的模型可读性强,我们可以很直观的看出生成模型的构成已经工作方式,因为模型就是由数据属性和类别构成一棵树。

 2)由于是一棵树,所以它的预测分类速度快,想想一棵树能有多大的深度。如果是一颗二叉树即使有N个数据,深度也只有logN。

原则:根据损失函数最小化的原则建立决策树模型(其实大部分模型都是这个原则)

步骤:1)特征选择(不同的算法,选择不一样,比如CART就是随机选择m个特征)

 2)决策树的生成(就是通过数据的属性进行不断的分裂,直到叶子节点为止)

现在目前主要的决策树算法:ID3,C4.5,CART,RandomForest.....

 信息熵:

          (有关信息熵的介绍在吴军的著作《数学之美》有着非常好的介绍,强烈介绍)

说到决策树算法,这个是不得不提的。因为在构建决策树的时候,节点选择的属性是依据信息熵来确定的,就是根据信息熵来确定选择哪个属性用于当前数据集的分类。 ”信息熵“是香农提出来的。我们知道信息是有用的,但是如何来定量描述这个信息量的大小呢。而“信息熵”就是为了解决这个问题而提出来的,用来量化信息的作用。

一条信息的信息量是和它的不确定性有着直接关系的,当我们对于一件不确定的时候,就需要比较多的信息来搞懂这件事,相反,如果对于一件事情我们很确定,那么我们就需要比较少的信息就可以知道这件事。因此从这个角度看,我们就可以认为信息量的大小就是不确定的多少。但是如何来量化这个信息量呢(也就是不确定性)

香农给出了这个公式:H=-(P1logP1+P2logP2+....)    (P(X)为出现的概率)

变量的不确定性越大,熵也就越大,把它弄清楚所需要的信息量也就越大。

(1)ID3算法:

      核心:在决策树的各个节点上应用信息增益准则来选择特征属性(就是我们上面提到的信息熵)

步骤:

  • 从根节点开始,如果只有一类或者为空,返回;计算所有属性值的信息熵,选择信息增益最大的属性值作为当前分裂节点。
  • 计算剩余的属性的信息增益,递归的调用该方法
  • 直到每个节点不能继续分裂,即每个节点上的数据的都是同一类别结束

信息增益计算:g(D,A)=H(D)-H(D/A)    (具体如何计算可以参考李航的统计学习这本书)

H(D):表示原来未使用属性的信息熵。H(D/A):表示使用属性值A为某个节点后的信息熵。  二者之差就是信息增益。

(2)C4.5算法

     C4.5是ID3算法的改进版,ID3使用信息增益比,但是信息增益有个缺点就是会偏向选择取值较多的特征,这样会造成数据过拟合。所以C4.5通过改进ID3使用信息增益率为特征选择准则。就是信息增益g(D,A)与训练数据集D有关于特征A的值得熵之比。

其他的步骤和ID3一样。

(3)CART算法

     CART(classification and regression tree),分类与回归树。既可以用于分类也可以用于回归。

 步骤:

  • 决策树的生成,基于训练数据集,生成的决策树要尽量大;
  • 决策树的剪枝,用验证集对生成树进行剪枝验证,选取最好的决策树。用损失函数最小作为剪枝的标准。

对决策树(CART)的生成其实就是递归的构建二叉树的过程,对回归树用平方误差最小原则,对分类树采用基尼系数(Gini index)原则.

(1) 回归树

问题,如何对输入空间进行划分?

这里采用启发式的方法:选择第j个变量的x(j)和它的取值s作为切变量和切分点对数据进行划分,然后需找最优的s和j。具体求解:

遍历所有输入变量,寻找最优切分遍历,依此将空间划分为两个空间。通常称为最小二乘回归树。

(2)分类树

利用基尼指数选择最优特征。基尼指数其实就代表了集合的不确定性,基尼指数越大,样本集合的不确定性也就越大,这一点与熵相似。基尼指数的曲线趋势和分类误差率差不多。

,表示有K个类别,以及样本属于第K类的概率PK.

选择基尼指数最小的特征及其对应的切分点作为最优特征和最优切分点。

(4)Random Forest算法

    核心:其实就是集成学习的概念包括(bagging,boosting),通过集成投票的方式提高预测精度。

  数据的选择:

        (1)使用bootstrap重复有放回采样获取数据,这样可以避免数据的过拟合。这样就获取了很多训练数据集合,而且它们是相互独立,并且可以并行的。

(2)随机的抽取m个特征值与获取到的采样样本通过CART构建决策树。

(3)构建多棵决策树,用这些决策树进行投票预测

我们可以看出来,基分类器(即每一棵树)它们的训练数据不一样,它们的属性集合也不一样,这样就可以构建出许多有差异性的分类器出来,通过集成可以获取很好的预测精度。

就是一片树林里种植好多棵树,用这片森林来预测数据。

决策树介绍,布布扣,bubuko.com

时间: 2024-11-10 21:31:02

决策树介绍的相关文章

决策树-ID3

id3:无法直接处理数值型数据,可以通过量化方法将数值型数据处理成标称型数据,但涉及太多特征划分,不建议 决策树:的最大优点在于可以给出数据的内在含义,数据形式非常容易理解: 决策树介绍:决策树分类器是带有种植的流程图,终止块表示分类结果 优点:计算复杂度不高,输出结果易于理解,对中间值的缺失不明感,可以处理不相关的数据:可以将此分类器存储于硬盘上,是个持久化的分类器 缺点:可能会发生过度匹配问题 使用数据类型:数值型和标称型 knn:不便于展现数据的内在含义:每用一次都要学习,不是持久化分类器

【Python数据挖掘课程】四.决策树DTC数据分析及鸢尾数据集分析

今天主要讲述的内容是关于决策树的知识,主要包括以下内容:        1.分类及决策树算法介绍        2.鸢尾花卉数据集介绍        3.决策树实现鸢尾数据集分析        前文推荐:       [Python数据挖掘课程]一.安装Python及爬虫入门介绍       [Python数据挖掘课程]二.Kmeans聚类数据分析及Anaconda介绍       [Python数据挖掘课程]三.Kmeans聚类代码实现.作业及优化        希望这篇文章对你有所帮助,尤其

Accord.Net中决策树

Accord.Net中决策树 决策树介绍 决策树是一类机器学习算法,可以实现对数据集的分类.预测等.具体请阅读我另一篇博客(http://www.cnblogs.com/twocold/p/5424517.html). Accord.Net Accord.Net(http://accord-framework.net/)是一个开源的.Net环境下实现的机器学习算法库.并且还包括了计算机视觉.图像处理.数据分析等等许多算法,并且基本上都是用C#编写的,对于.Net程序员十分友好.代码在Github

数据挖掘-决策树 Decision tree

数据挖掘-决策树 Decision tree 目录 数据挖掘-决策树 Decision tree 1. 决策树概述 1.1 决策树介绍 1.1.1 决策树定义 1.1.2 本质 1.1.3 决策树的组成 1.1.4 决策树的分类 1.1.5 决策过程 1.2 决策树的优化 1.2.1 过拟合 1.3.1 剪枝 2. 理论基础 2.1 香农理论 2.1.1 信息量 2.1.2 平均信息量/信息熵 2.1.3 条件熵 2.1.4 信息增益(Information gain) 2.1.5 信息增益率

合格大数据分析师应该具备的技能

阶段一.业务数据分析师 课程一.数据挖掘/分析师之硬技能 - 必备常用工具使用与高级技巧 本部分内容主要介绍了数据挖掘.分析师.数据产品经理必备的常用工具的,主要有 Excel,Visio,Xmind,PPT的涉及图表数据分析方面的高级技巧,包括但不限于:数据透视表演练.Vision跨职能流程图演练.Xmind项目计划导图演练.PPT高级动画技巧等! 一.Excel 1)数据分析工具EXECL入门介绍2)数据透视表演练 3) 数据处理4) EXECL报告自动化5) PPT报告数据自动化 二.Vi

机器学习入门 - 1. 介绍与决策树(decision tree)

机器学习(Machine Learning) 介绍与决策树(Decision Tree) 机器学习入门系列 是 个人学习过程中的一些记录与心得.其主要以要点形式呈现,简洁明了. 1.什么是机器学习? 一个比较概括的理解是: 根据现有的数据,预测未来 2.核心思想 : Generalization 可以理解为,归纳.概括.就像是人的学习一样,找出一件事物与与一件事物的联系 3.归纳性的机器学习(Inductive machine learning) 其核心思想是使用训练数据,并从其中摸索出一套适用

机器学习(三)——决策树(decision tree)算法介绍

0.机器学习中分类和预测算法的评估标准 准确率 速度 强壮性 可规模性 可解释性 1.什么是决策树/判定树(decision tree)? 判定树是一个类似于流程图的树结构:其中,每个内部节点表示一个属性上的测试,每个分支代表一个属性的输出,而每个树叶节点代表类或者类分布.树的最顶层是根节点. 2.机器学习中分类方法的重要算法是决策树 3.构造决策树的基本算法 3.1熵(entropy)概念    信息和抽象,如何度量?1948年,香农提出了 "信息熵(entropy)"的概念,一条信

决策树---ID3算法(介绍及Python实现)

决策树---ID3算法   决策树: 以天气数据库的训练数据为例. Outlook Temperature Humidity Windy PlayGolf? sunny 85 85 FALSE no sunny 80 90 TRUE no overcast 83 86 FALSE yes rainy 70 96 FALSE yes rainy 68 80 FALSE yes rainy 65 70 TRUE no overcast 64 65 TRUE yes sunny 72 95 FALSE

决策树之ID3、C4.5、C5.0 、CART

决策树是一种类似于流程图的树结构,其中,每个内部节点(非树叶节点)表示一个属性上的测试,每个分枝代表该测试的一个输出,而每个树叶节点(或终端节点存放一个类标号).树的最顶层节点是根节点.下图是一个典型的决策树(来自<数据挖掘:概念与技术>[韩家炜](中文第三版)第八章): 在构造决策树时,使用属性选择度量来选择将元祖划分成不同类的属性.这里我们介绍三种常用的属性选择度量-----信息增益.信息增益率和基尼指数.这里使用的符号如下.设数据分区\(D\)为标记类元组的训练集.假设类标号属性具有\(