决策树原理及实现

debuggor debuggor     2022-09-09     777

关键词:

1、决策树原理

1.1、定义 
分类决策树模型是一种描述对实例进行分类的树形结构。决策树由结点和有向边组成。结点有两种类型:内部节点和叶节点,内部节点表示一个特征或属性,叶节点表示一个类。 

举一个通俗的栗子,各位立志于脱单的单身男女在找对象的时候就已经完完全全使用了决策树的思想。假设一位母亲在给女儿介绍对象时,有这么一段对话:

母亲:给你介绍个对象。
女儿:年纪多大了?
母亲:26。
女儿:长的帅不帅?
母亲:挺帅的。
女儿:收入高不?
母亲:不算很高,中等情况。
女儿:是公务员不?
母亲:是,在税务局上班呢。
女儿:那好,我去见见。



这个女生的决策过程就是典型的分类决策树。相当于对年龄、外貌、收入和是否公务员等特征将男人分为两个类别:见或者不见。假设这个女生的决策逻辑如下:

 

 

每种决策树之所以不同,一般是由于最有特征的选择上有所差异,不同决策导致不同的决策树。

基于信息论的决策树算法有ID3、CART和C4.5等算法,其中C4.5和CART两种算法从ID3算法中衍生而来。

ID3  最有特征选择标准是信息增益 ;   C4.5  信息增益率 ;  CART  节点方差的大小

 

1.2、ID3算法的数学原理

  关于决策树的信息论基础可以参考“决策树1-建模过程”

(1)信息熵

  信息熵:在概率论中,信息熵给了我们一种度量不确定性的方式,是用来衡量随机变量不确定性的,熵就是信息的期望值。若待分类的事物可能划分在N类中,分别是x1,x2,……,xn,每一种取到的概率分别是P1,P2,……,Pn,那么X的熵就定义为:

,从定义中可知:0≤H(X)≤log(n)

  当随机变量只取两个值时,即X的分布为 P(X=1)=p,X(X=0)=1−p,0≤p≤1则熵为:H(X)=−plog2(p)−(1−p)log2(1−p)。

熵值越高,则数据混合的种类越高,其蕴含的含义是一个变量可能的变化越多(反而跟变量具体的取值没有任何关系,只和值的种类多少以及发生概率有关),它携带的信息量就越大。熵在信息论中是一个非常重要的概念,很多机器学习的算法都会利用到这个概念。

(2)条件熵

  假设有随机变量(X,Y),其联合概率分布为:P(X=xi,Y=yi)=pij,i=1,2,⋯,n;j=1,2,⋯,m

  则条件熵(H(Y∣X))表示在已知随机变量X的条件下随机变量Y的不确定性,其定义为X在给定条件下Y的条件概率分布的熵对X的数学期望:

     
 

(3)信息增益

  信息增益(information gain)表示得知特征X的信息后,而使得Y的不确定性减少的程度。定义为:

     

 

应用举例

Python代码实现案例参考这篇博客:http://www.cnblogs.com/hemiy/p/6165759.html

 

opencv4机器学习:决策树原理及分类实战(代码片段)

...理操作、经典的机器学习算法(比如K-Means、KNN、SVM、决策树、贝叶斯分类器等),以及常用的深度学习算法。系列文章,持续更新:OpenCV4机器学习(一):OpenCV4+VS2017环境搭建与配置OpenCV4机器... 查看详情

实验四决策树算法及应用(代码片段)

...计算机18级作业要求实验四学号3180701128【实验目的】理解决策树算法原理,掌握决策树算法框架;理解决策树学习算法的特征选择、树的生成和树的剪枝;能根据不同的数据类型,选择不同的决策树算法;针对特定应用场景及数... 查看详情

cart(决策分类树)原理和实现

前面我们了解了决策树和adaboost的决策树墩的原理和实现,在adaboost我们看到,用简单的决策树墩的效果也很不错,但是对于更多特征的样本来说,可能需要很多数量的决策树墩或许我们可以考虑使用更加高级的弱分类器,下面... 查看详情

opencv4机器学习:决策树原理及分类实战(代码片段)

...理操作、经典的机器学习算法(比如K-Means、KNN、SVM、决策树、贝叶斯分类器等),以及常用的深度学习算法。系列文章,持续更新:OpenCV4机器学习(一):OpenCV4+VS2017环 查看详情

matlab基于决策树算法实现多分类预测(源码可直接替换数据)

【Matlab】基于决策树算法实现多分类预测(源码可直接替换数据))1.算法简介1.1算法原理1.2算法优点1.3算法缺点1.4算法步骤2.测试数据集3.替换数据4.函数说明4.1文件结构4.2文件函数5.混淆矩阵6.对比结果7.代码及注释1.算法简介1.... 查看详情

matlab基于决策树算法实现多分类预测(源码可直接替换数据)

【Matlab】基于决策树算法实现多分类预测(源码可直接替换数据))1.算法简介1.1算法原理1.2算法优点1.3算法缺点1.4算法步骤2.测试数据集3.替换数据4.函数说明4.1文件结构4.2文件函数5.混淆矩阵6.对比结果7.代码及注释1.算法简介1.... 查看详情

决策树的实现及可视化方法总结(代码片段)

摘要及声明1:本文主要介绍决策树的实现方法及可视化方法; 2:本文主要为理念的讲解,模型也是笔者自建,文中假设与观点是基于笔者对模型及数据的一孔之见,若有不同见解欢迎随时留言交流;... 查看详情

决策树--从原理到实现

一.引入决策树基本上是每一本机器学习入门书籍必讲的东西,其决策过程和平时我们的思维很相似,所以非常好理解,同时有一堆信息论的东西在里面,也算是一个入门应用,决策树也有回归和分类,但一般来说我们主要讲的... 查看详情

决策树模型及案例(python)(代码片段)

目录1决策树模型简介2Gini系数(CART决策树)3 信息熵、信息增益4 决策树模型代码实现4.1 分类决策树模型(DecisionTreeClassifier)4.2 回归决策树模型(DecisionTreeRegressor)5 案例:员工离职预测模型5.1 模型搭建5.1.1 数据读... 查看详情

实验四决策树算法及应用(代码片段)

...与信息学院AHPU-机器学习实验-计算机18级作业要求实验四决策树算法及应用作业目标(1)理解决策树算法原理,掌握决策树算法框架;(2)理解决策树学习算法的特征选择、树的生成和树的剪枝;(3)能根据不同的数据类型,... 查看详情

机器学习--决策树分类算法及应用

1.决策树分类算法原理1.1概述决策树(decisiontree)——是一种被广泛使用的分类算法。相比贝叶斯算法,决策树的优势在于构造过程不需要任何领域知识或参数设置在实际应用中,对于探测式的知识发现,决策树更加适用1.2算法... 查看详情

决策树(id3,c4.5,cart)原理以及实现(代码片段)

决策树决策树是一种基本的分类和回归方法.决策树顾名思义,模型可以表示为树型结构,可以认为是if-then的集合,也可以认为是定义在特征空间与类空间上的条件概率分布.[图片上传失败...(image-2e6565-1543139272117)]决策树的中间节点可... 查看详情

机器学习——决策树(下)算法实现

Decisiontree在机器学习(5)——决策树(上)原理中介绍了决策树的生成和剪枝原理。介绍了CART,ID3,C4.5等算法的算法流程,其中CART算法可以实现回归和分类,是基于基尼不纯度实现的,这里并未实... 查看详情

随机森林(原理/样例实现/参数调优)

决策树1.决策树与随机森林都属于机器学习中监督学习的范畴,主要用于分类问题。决策树算法有这几种:ID3、C4.5、CART,基于决策树的算法有bagging、随机森林、GBDT等。决策树是一种利用树形结构进行决策的算法࿰... 查看详情

机器学习方法:决策树decisiontree原理与实现技巧

...性回归,lasso,和LARS的一些内容,这篇写一下决策树这个经典的分类算法,后面再提一提随机森林。关于决策 查看详情

决策树算法概述及原理详解(代码片段)

一、决策树算法简介决策树思想的来源非常朴素,程序设计中的条件分支结构就是if-else结构,最早的决策树就是利用这类结构分割数据的一种分类学习方法。决策树:是一种树形结构,本质是一颗由多个判断节点... 查看详情

用cart(分类回归树)作为弱分类器实现adaboost

在之前的决策树到集成学习里我们说了决策树和集成学习的基本概念(用了adaboost昨晚集成学习的例子),其后我们分别学习了决策树分类原理和adaboost原理和实现,上两篇我们学习了cart(决策分类树),决策分类树也是决策树... 查看详情

决策树

决策树原理对一系列问题进行if/else推导,最终实现决策决策树构建#导入numpyimportnumpyasnp#导入画图工具importmatplotlib.pyplotaspltfrommatplotlib.colorsimportListedColormap#导入树模型和数据集加载工具fromsklearnimporttree,datasets#导入数据集拆分工... 查看详情