决策树算法实例
A. 决策树法的计算题
依据y坐标将六个点划分为两个子类,水平线上面的两个点是同一个分类,但是水平线之下的四个点是不纯净的。
对这四个点进行再次分类,以x左边分类,通过两层分类,现了对样本点的完全分类。
决策树是一种具有树状结构的分类和预测工具,其中每个内部节点表示对一个属性的测试,每个分支表示测试的结果,每个叶节点(终端节点)持有一个类标签。
(1)决策树算法实例扩展阅读
决策树算法的关键
1、分裂属性的选择
即选择哪个自变量作为树叉,也就是在n个自变量中,优先选择哪个自变量进行分叉。
2、树剪枝
即在构建树叉时,由于数据中的噪声和离群点,许多分支反映的是训练数据中的异常,而树剪枝则是处理这种过分拟合的数据问题,常用的剪枝方法为先剪枝和后剪枝。
B. 决策树的算法
C4.5算法继承了ID3算法的优点,并在以下几方面对ID3算法进行了改进:
1) 用信息增益率来选择属性,克服了用信息增益选择属性时偏向选择取值多的属性的不足;
2) 在树构造过程中进行剪枝;
3) 能够完成对连续属性的离散化处理;
4) 能够对不完整数据进行处理。
C4.5算法有如下优点:产生的分类规则易于理解,准确率较高。其缺点是:在构造树的过程中,需要对数据集进行多次的顺序扫描和排序,因而导致算法的低效。此外,C4.5只适合于能够驻留于内存的数据集,当训练集大得无法在内存容纳时程序无法运行。
具体算法步骤如下;
1创建节点N
2如果训练集为空,在返回节点N标记为Failure
3如果训练集中的所有记录都属于同一个类别,则以该类别标记节点N
4如果候选属性为空,则返回N作为叶节点,标记为训练集中最普通的类;
5for each 候选属性 attribute_list
6if 候选属性是连续的then
7对该属性进行离散化
8选择候选属性attribute_list中具有最高信息增益率的属性D
9标记节点N为属性D
10for each 属性D的一致值d
11由节点N长出一个条件为D=d的分支
12设s是训练集中D=d的训练样本的集合
13if s为空
14加上一个树叶,标记为训练集中最普通的类
15else加上一个有C4.5(R - {D},C,s)返回的点 背景:
分类与回归树(CART——Classification And Regression Tree)) 是一种非常有趣并且十分有效的非参数分类和回归方法。它通过构建二叉树达到预测目的。
分类与回归树CART 模型最早由Breiman 等人提出,已经在统计领域和数据挖掘技术中普遍使用。它采用与传统统计学完全不同的方式构建预测准则,它是以二叉树的形式给出,易于理解、使用和解释。由CART 模型构建的预测树在很多情况下比常用的统计方法构建的代数学预测准则更加准确,且数据越复杂、变量越多,算法的优越性就越显着。模型的关键是预测准则的构建,准确的。
定义:
分类和回归首先利用已知的多变量数据构建预测准则, 进而根据其它变量值对一个变量进行预测。在分类中, 人们往往先对某一客体进行各种测量, 然后利用一定的分类准则确定该客体归属那一类。例如, 给定某一化石的鉴定特征, 预测该化石属那一科、那一属, 甚至那一种。另外一个例子是, 已知某一地区的地质和物化探信息, 预测该区是否有矿。回归则与分类不同, 它被用来预测客体的某一数值, 而不是客体的归类。例如, 给定某一地区的矿产资源特征, 预测该区的资源量。
C. 用伪代码撰写C4.5决策树分类算法或者朴素贝叶斯算法,任意举一简单例子说明你写的算法的执行流程
vbvbvbvbvbvvbbvvbvbvb
D. 决策树案例
咨询记录 · 回答于2021-10-24
E. 决策树算法原理是什么
决策树构造的输入是一组带有类别标记的例子,构造的结果是一棵二叉树或多叉树。二叉树的 内部节点(非 叶子节点)一般表示为一个逻辑判断,如形式为a=aj的逻辑判断,其中a是属性,aj是该属性的所有取值:树的边是逻辑判断的分支结果。
多叉树(ID3)的内部结点是属性,边是该属性的所有取值,有几个 属性值就有几条边。树的叶子节点都是类别标记。
由于数据表示不当、有噪声或者由于决策树生成时产生重复的子树等原因,都会造成产生的决策树过大。
因此,简化决策树是一个不可缺少的环节。寻找一棵最优决策树,主要应解决以下3个最优化问题:①生成最少数目的叶子节点;②生成的每个叶子节点的深度最小;③生成的决策树叶子节点最少且每个叶子节点的深度最小。
(5)决策树算法实例扩展阅读:
决策树算法的优点如下:
(1)分类精度高;
(2)生成的模式简单;
(3)对噪声数据有很好的健壮性。
因而是目前应用最为广泛的归纳推理算法之一,在 数据挖掘中受到研究者的广泛关注。
F. 毕业设计题目是(选用决策树算法的数据挖掘实例分析与设计)
应用遗传算法和决策树算法在数据挖掘中的比较
贾修一 MG0533024
(南京大学 计算机科学与技术系, 江苏省南京市 210093)
A Comparision between the Genetic Algorithms and Decision Tree For Data
Mining
Abstract: This chapter introces the application with the genetic algorithms and ID3 for the data mining, choose
the better algorithm to classifier the given data sets through.the comparision between the two algorithms. And
analyzing the results of the experiment as well as reasons.
Key words: genetic algrithms; data ming; decision Tree
摘 要: 对训练数据分别采用遗传算法和决策树算法进行数据挖掘,通过比较两者实验得出的结果,来选
择更适合本数据集的算法进行分类,并分析实验结果及原因.
关键词: 遗传算法;数据挖掘;决策树算法
1. 数据的描述
数据属性有139351维,每个属性的取值为0或1,分类标识只有两类:A和I.数据的维数太高,在数
据预处理阶段最好做属性的约简,进行降维的处理.
(1)数据维数太高,易造成一定的维数灾难,使得分类挖掘时间过长.
(2)数据庞大,肯定有些噪音数据.
2.算法的设计
为了提高最后分类的精确度,特设计了两种方法进行比较,从中选出一种精确度高的方法.第一种是根
据数据的特点,每个属性只取值0和1,所以进行属性约简的时候采用遗传算法.遗传算法的优点是可以对
大规模的数据进行一定的属性约简.
2.1 遗传算法描述:
(1) 遗传算法的步骤是编码,选择,交叉,变异.通过模仿自然界中的遗传进化原理,来对数据进行
处理.而遗传算法的好坏取决于适应度函数的选择,进化的次数,和交叉变异的合理性和概率性等,所以要
想设计一个合适的遗传算法必须经过大量的实验.
(2) 就训练数据而言,对每一维属性的取值,在类标识一定的条件下,取1和取0的概率之间有个绝
对值差α1,α2,该差越大,说明该属性的重要程度越高.同时还要考虑对同一维属性,不论最终类标识是
什么,取值都相同的话,则该属性可以被认为是无效的属性,对最后的分类没有影响,所以适应度函数取对
每一维属性的α1,α2的熵,熵越大,则属性的重要程度就越低.
(3) 编码阶段,就把每一位属性做为一个长度为139351的染色体的一个基因,1表示选择该属性,0
表示不选择该属性.随机初始化8个种群,按照适应度函数的定义,从中选取4个适应度函数最小的染色体
做为父代.
(4) 将选出的父代进行交叉操作,因为是降维操作,所以交叉就是取两个染色体之间隔位进行AND(与)
操作,变异就是按照一定的概率,在139351维上随机的100位进行非操作,即:0变为1,1变为0.依次又
产生4个后代,结合原来的4个父代组成新的8个初始种群.进化50次.
然后利用贝叶斯方法进行分类.得到的是一个弱的学习器h,然后利用AdaBoost方法进行强化学习分类器.
2.2 AdaBoost算法描述:
(1) 给定训练集(x1,y1),(x2,y2),…,(xm,ym)m个.
(2) yi∈{-1,+1},实例xi∈X的正确标识.
(3) for t=1,…,T
2
{
构造{1,…,m}上的分布Dt,找出弱分类器 ht:X->{-1,+1},
同时在Dt产生很小的错误εt:
εt=PrDt[ht(xi)≠yi]
}
(4)构造 Dt,D1(i)=1/m
Dt+1(i)= Dt/Zt*exp(-αt*yi*ht(xi))//(注:yi和ht(xi)只能取值于{-1,+1})
其中Zt是归一化因子(使Dt+1为分布)
αt=1/2*㏑((1-εt)/ εt)>0
(5)输出最终分类器:Hfinal(x)=sign(∑αt*ht(x)).
第二种方法就是直接使用决策树方法(ID3算法)进行分类.求出每一维属性的的信息增益,建立一棵
决策树,利用决策树来进行分类.
2.3 决策树算法(ID3)
(1)创建节点N;
(2)if samples都在同一个类C then
{
返回N作为叶结点,以类C标识;
}
(3)if attribut_list为空 then
{
返回N作为叶结点,标记为samples中最普通的类;
}
(4) 选择attribute_list中具有最高信息增益的属性test_attribute;标记节点N为test_attribute;
(5) for each test_attribute中的已知值a
由节点N长出一个条件为test_attribute=a的分枝;
(6) 设s是samples中test_attribute=a的样本的集合;
(7) if s为空 then
加上一个树叶,标记weisamples中最普通的类;
else
加上一个由ID3(s,attribute_list-test_attribute)返回的节点;
3. 实验分析
就第一种方法:通过实验,在进化次数上选取50次,使得维数约简到1500维左右时得到的分类效果最
好,但由于种群是随机产生的,所以在未进行boosting强化时正确率在60~85%之间,不是很稳定,但是符
合弱分类器的要求,即只要正确率超过50%就行,在进行boosting后,正确率能超过80%,但可能是数据进
行约简的不好或进行迭代的次数选取不太合适,正确率却没有ID3的高.就本数据集而言,由于最终标识只
有2个,所以比较适合使用遗传算法和Adaboost进行训练.正确率不高主要问题应该在:
(1)遗传算法的适应度函数没有选好,不同的编码方式对应不同的适应度函数取法,就本例而言,二进
制编码方式应该是可以的,就是在对适应度函数取的时候没有一个合适的数据表示,只好利用了熵的概念,
但在实际意义上感觉效果并不是很好.属性约简后正确率不高,这应该是最主要的原因.
(2)交叉变异的方式或许有问题,但是不是主要问题,只要适应度函数选好,也就是选择操作正确的话,
这两步操作对最终结果应该影响不大.
(3)进化次数的改进,通过实验,考虑最后的正确率和运行时间,发现在进化50次和约简到1500维时
贾修一:应用遗传算法和决策树算法在数据挖掘中的比较3
效果最好.但随着适应度函数的不同,进化次数也不同.从理论上说,进化次数越多,效果也应该越好,最
终达到一个最优解,但同时要避免得到局部最优解,就需要对传统的遗传算法进行改进,避免早熟问题.在
此就不讨论.
(4)利用贝叶斯分类得到的弱学习器,在格式上并不和Adaboost完全适应,所以在应用的时候效果不
是很好,这也取决于迭代的次数和训练样集的选取.
就决策树方法,对这么多维的属性在某种意义上说并不合适,但就对本实验给定的训练样例集而言,通
过建树,只要6个结点就可以,而且正确率超过90%,所以,根据不同的数据集采用不同的方法得到的正确
率是不一样的.所以在某种程度上说,奥卡姆剃刀原理是正确的.
由于时间有限,没有对第一种方法进行一定的改进和进行其他方法的实验,故最终采用ID3算法进行分
类,采用前100个数据进行训练,后10个进行测试,错误的只有1个.采用前80个数据进行训练,后30
个进行测试的时候只有2个分类错误.正确率自测还是可以的.
4. 总结和感谢
通过本次实验,最大的收获就是采用了两种不同的方法进行了实验比较,虽然自己原先设计的算法没有
得到期望中的效果,并最终采用了其他的算法,但是通过实验,我对遗传算法和AdaBoost强化弱学习器方法
等有了更深的了解,也明白对不同的数据,是没有一种万能通用的解法的.以后会继续改进自己的算法,争
取取得好的效果.最后感谢老师能提供这次实验的数据.
G. 决策树算法的典型算法
决策树的典型算法有ID3,C4.5,CART等。
国际权威的学术组织,数据挖掘国际会议ICDM (the IEEE International Conference on Data Mining)在2006年12月评选出了数据挖掘领域的十大经典算法中,C4.5算法排名第一。C4.5算法是机器学习算法中的一种分类决策树算法,其核心算法是ID3算法。C4.5算法产生的分类规则易于理解,准确率较高。不过在构造树的过程中,需要对数据集进行多次的顺序扫描和排序,在实际应用中因而会导致算法的低效。
决策树算法的优点如下:
(1)分类精度高;
(2)生成的模式简单;
(3)对噪声数据有很好的健壮性。
因而是目前应用最为广泛的归纳推理算法之一,在数据挖掘中受到研究者的广泛关注。
H. 目前比较流行的决策树算法有哪些
ID3算法,最简单的决策树
c4.5 是最经典的决策树算法,选择信息差异率最大的作为分割属性。
CART算法,适合用于回归
I. 数据挖掘中决策树算法
决策树算法有很多种,比喻有ID3(利用信息增益来选择决策变量),C4.5(利用信息增益率来选择决策变量),CART,chain以及quest等,不同的决策树适用情况也不一样,有机会可以多多交流。。
J. 常见决策树分类算法都有哪些
在机器学习中,有一个体系叫做决策树,决策树能够解决很多问题。在决策树中,也有很多需要我们去学习的算法,要知道,在决策树中,每一个算法都是实用的算法,所以了解决策树中的算法对我们是有很大的帮助的。在这篇文章中我们就给大家介绍一下关于决策树分类的算法,希望能够帮助大家更好地去理解决策树。
1.C4.5算法
C4.5算法就是基于ID3算法的改进,这种算法主要包括的内容就是使用信息增益率替换了信息增益下降度作为属性选择的标准;在决策树构造的同时进行剪枝操作;避免了树的过度拟合情况;可以对不完整属性和连续型数据进行处理;使用k交叉验证降低了计算复杂度;针对数据构成形式,提升了算法的普适性等内容,这种算法是一个十分使用的算法。
2.CLS算法
CLS算法就是最原始的决策树分类算法,基本流程是,从一棵空数出发,不断的从决策表选取属性加入数的生长过程中,直到决策树可以满足分类要求为止。CLS算法存在的主要问题是在新增属性选取时有很大的随机性。
3.ID3算法
ID3算法就是对CLS算法的最大改进是摒弃了属性选择的随机性,利用信息熵的下降速度作为属性选择的度量。ID3是一种基于信息熵的决策树分类学习算法,以信息增益和信息熵,作为对象分类的衡量标准。ID3算法结构简单、学习能力强、分类速度快适合大规模数据分类。但同时由于信息增益的不稳定性,容易倾向于众数属性导致过度拟合,算法抗干扰能力差。
3.1.ID3算法的优缺点
ID3算法的优点就是方法简单、计算量小、理论清晰、学习能力较强、比较适用于处理规模较大的学习问题。缺点就是倾向于选择那些属性取值比较多的属性,在实际的应用中往往取值比较多的属性对分类没有太大价值、不能对连续属性进行处理、对噪声数据比较敏感、需计算每一个属性的信息增益值、计算代价较高。
3.2.ID3算法的核心思想
根据样本子集属性取值的信息增益值的大小来选择决策属性,并根据该属性的不同取值生成决策树的分支,再对子集进行递归调用该方法,当所有子集的数据都只包含于同一个类别时结束。最后,根据生成的决策树模型,对新的、未知类别的数据对象进行分类。
在这篇文章中我们给大家介绍了决策树分类算法的具体内容,包括有很多种算法。从中我们不难发现决策树的算法都是经过不不断的改造趋于成熟的。所以说,机器学习的发展在某种程度上就是由于这些算法的进步而来的。