2024年10月决策树算法matlab(数据挖掘-决策树算法)

 更新时间:2024-10-12

  ⑴决策树算法matlab(数据挖掘-决策树算法

  ⑵数据挖掘-决策树算法

  ⑶决策树算法是一种比较简易的监督学习分类算法,既然叫做决策树,那么首先他是一个树形结构,简单写一下树形结构(数据结构的时候学过不少了。

  ⑷树状结构是一个或多个节点的有限集合,在决策树里,构成比较简单,有如下几种元素:

  ⑸在决策树中,每个叶子节点都有一个类标签,非叶子节点包含对属性的测试条件,用此进行分类。所以个人理解,决策树就是对一些样本,用树形结构对样本的特征进行分支,分到叶子节点就能得到样本最终的分类,而其中的非叶子节点和分支就是分类的条件,测试和预测分类就可以照着这些条件来走相应的路径进行分类。

  ⑹根据这个逻辑,很明显决策树的关键就是如何找出决策条件和什么时候算作叶子节点即决策树终止。

  ⑺决策树的核心是为不同类型的特征提供表示决策条件和对应输出的方法,特征类型和划分方法包括以下几个:

  ⑻注意,这些图中的第二层都是分支,不是叶子节点。

  ⑼如何合理的对特征进行划分,从而找到最优的决策模型呢?在这里需要引入信息熵的概念。

  ⑽在数据集中,参考熵的定义,把信息熵描述为样本中的不纯度,熵越高,不纯度越高,数据越混乱(越难区分分类。

  ⑾例如:要给(,分类,熵是,因为能明显分类,而均衡分布的(.,.熵比较高,因为难以划分。

  ⑿信息熵的计算公式为:其中代表信息熵。是类的个数,代表在类时发生的概率。另外有一种Gini系数,也可以用来衡量样本的不纯度:其中代表Gini系数,一般用于决策树的CART算法。

  ⒀如果有上述样本,那么样本中可以知道,能被分为类的有个,分为类的也有个,那么信息熵为:Gini系数为:总共有个数据,那么其中类个,占比就是/,同理类。

  ⒁我们再来计算一个分布比较一下:

  ⒂信息熵为:Gini系数为:

  ⒃很明显,因为第二个分布中,很明显这些数偏向了其中一类,所以纯度更高,相对的信息熵和Gini系数较低。

  ⒄有了上述的概念,很明显如果我们有一组数据要进行分类,最快的建立决策树的途径就是让其在每一层都让这个样本纯度最大化,那么就要引入信息增益的概念。

  ⒅所谓增益,就是做了一次决策之后,样本的纯度提升了多少(不纯度降低了多少,也就是比较决策之前的样本不纯度和决策之后的样本不纯度,差越大,效果越好。让信息熵降低,每一层降低的越快越好。度量这个信息熵差的方法如下:其中代表的就是信息熵(或者其他可以度量不纯度的系数的差,是样本(parent是决策之前,是决策之后)的信息熵(或者其他可以度量不纯度的系数,为特征值的个数,是原样本的记录总数,是与决策后的样本相关联的记录个数。

  ⒆当选择信息熵作为样本的不纯度度量时,Δ就叫做信息增益。

  ⒇我们可以遍历每一个特征,看就哪个特征决策时,产生的信息增益最大,就把他作为当前决策节点,之后在下一层继续这个过程。

  ⒈如果我们的目标是判断什么情况下,销量会比较高(受天气,周末,促销三个因素影响,根据上述的信息增益求法,我们首先应该找到根据哪个特征来决策,以信息熵为例:

  ⒉首先肯定是要求,也就是销量这个特征的信息熵:

  ⒊接下来,就分别看三个特征关于销量的信息熵,先看天气,天气分为好和坏两种,其中天气为好的条件下,销量为高的有条,低的有条;天气坏时,销量为高的有条,销量为低的有条,并且天气好的总共条,天气坏的总共条。

  ⒋分别计算天气好和天气坏时的信息熵,天气好时:

  ⒌根据公式,可以知道,N是,而天气特征有个值,则k=,第一个值有条可以关联到决策后的节点,第二个值也是条,则能得出计算:

  ⒍再计算周末这个特征,也只有两个特征值,一个是,一个否,其中是有条,否有条;周末为是的中有条销量是高,条销量低,以此类推有:信息增益为:

  ⒎另外可以得到是否有促销的信息增益为.。

  ⒏可以看出,以周末为决策,可以得到最大的信息增益,因此根节点就可以用周末这个特征进行分支:

  ⒐注意再接下来一层的原样本集,不是个而是周末为“是”和“否”分别计算,为是的是个,否的是个。这样一层一层往下递归,直到判断节点中的样本是否都属于一类,或者都有同一个特征值,此时就不继续往下分了,也就生成了叶子节点。

  ⒑上述模型的决策树分配如下:

  ⒒需要注意的是,特征是否出现需要在分支当中看,并不是整体互斥的,周末生成的两个分支,一个需要用促销来决策,一个需要用天气,并不代表再接下来就没有特征可以分了,而是在促销决策层下面可以再分天气,另外一遍天气决策下面可以再分促销。

  ⒓决策树的模型比较容易解释,看这个树形图就能很容易的说出分类的条件。

  ⒔我们知道属性有二元属性、标称属性、序数属性和连续属性,其中二元、标称和序数都是类似的,因为是离散的属性,按照上述方式进行信息增益计算即可,而连续属性与这三个不同。

  ⒕对于连续的属性,为了降低其时间复杂度,我们可以先将属性内部排序,之后取相邻节点的均值作为决策值,依次取每两个相邻的属性值的均值,之后比较他们的不纯度度量。

  ⒖需要注意的是,连续属性可能在决策树中出现多次,而不是像离散的属性一样在一个分支中出现一次就不会再出现了。

  ⒗用信息熵或者Gini系数等不纯度度量有一个缺点,就是会倾向于将多分支的属性优先分类——而往往这种属性并不是特征。

  ⒘例如上面例子中的第一行序号,有个不同的值,那么信息熵一定很高,但是实际上它并没有任何意义,因此我们需要规避这种情况,如何规避呢,有两种方式:

  ⒙公式如下:其中k为划分的总数,如果每个属性值具有相同的记录数,则,划分信息等于,那么如果某个属性产生了大量划分,则划分信息很大,信息增益率低,就能规避这种情况了。

  ⒚为了防止过拟合现象,往往会对决策树做优化,一般是通过剪枝的方式,剪枝又分为预剪枝和后剪枝。

  ⒛在构建决策树时,设定各种各样的条件如叶子节点的样本数不大于多少就停止分支,树的最大深度等,让决策树的层级变少以防止过拟合。也就是在生成决策树之前,设定了决策树的条件。

  后剪枝就是在最大决策树生成之后,进行剪枝,按照自底向上的方式进行修剪,修剪的规则是,评估叶子节点和其父节点的代价函数,如果父节点的代价函数比较小,则去掉这个叶子节点。这里引入的代价函数公式是:其中代表的是叶子节点中样本个数,代表的是该叶子节点上的不纯度度量,把每个叶子节点的加起来,和父节点的比较,之后进行剪枝即可。

  如何用matlab实现决策树多叉树

  决策树是数学、计算机科学与管理学中经常使用的工具.决策论中(如风险管理),决策树(Decisiontree)由一个决策图和可能的结果(包括资源成本和风险)组成,用来创建到达目标的规划.决策树建立并用来辅助决策,是一种特殊的树结构.决策树是一个利用像树一样的图形或决策模型的决策支持工具,包括随机事件结果,资源代价和实用性.它是一个算法显示的方法.决策树经常在运筹学中使用,特别是在决策分析中,它帮助确定一个能最可能达到目标的策略.如果在实际中,决策不得不在没有完备知识的情况下被在线采用,一个决策树应该平行概率模型作为最佳的选择模型或在线选择模型算法.决策树的另一个使用是作为计算条件概率的描述性手段.决策树提供了一种展示类似在什么条件下会得到什么值这类规则的方法.比如,在贷款申请中,要对申请的风险大小做出判断,图是为了解决这个问题而建立的一棵决策树,从中我们可以看到决策树的基本组成部分:决策节点、分支和叶子.决策树中最上面的节点称为根节点,是整个决策树的开始.本例中根节点是“收入》¥,”,对此问题的不同回答产生了“是”和“否”两个分支.决策树的每个节点子节点的个数与决策树在用的算法有关.如CART算法得到的决策树每个节点有两个分支,这种树称为二叉树.允许节点含有多于两个子节点的树称为多叉树.决策树的内部节点(非树叶节点表示在一个属性上的测试.每个分支要么是一个新的决策节点,要么是树的结尾,称为叶子.在沿着决策树从上到下遍历的过程中,在每个节点都会遇到一个问题,对每个节点上问题的不同回答导致不同的分支,最后会到达一个叶子节点.这个过程就是利用决策树进行分类的过程,利用几个变量(每个变量对应一个问题来判断所属的类别(最后每个叶子会对应一个类别.例如,假如负责借贷的银行官员利用上面这棵决策树来决定支持哪些贷款和拒绝哪些贷款,那么他就可以用贷款申请表来运行这棵决策树,用决策树来判断风险的大小.“年收入》¥,”和“高负债”的用户被认为是“高风险”,同时“收入年”的申请,则被认为“低风险”而建议贷款给他/她.数据挖掘中决策树是一种经常要用到的技术,可以用于分析数据,同样也可以用来作预测(就像上面的银行官员用他来预测贷款风险.常用的算法有CHAID、CART、ID、C.、Quest和C..建立决策树的过程,即树的生长过程是不断的把数据进行切分的过程,每次切分对应一个问题,也对应着一个节点.对每个切分都要求分成的组之间的“差异”最大.对决策树算法的研究开发主要以国外为主,现有的涉及决策树算法的软件有SEE、Weka、spss等,在国内也有不少人开展了对决策树算法的构建及应用研究,如中国测绘科学研究院在原有C.算法的基础上进行了算法重构,将其用于地表覆盖遥感影像分类中.

  决策树算法的算法理论和应用场景算法理论:我了解的决策树算法,主要有三种,最早期的ID,再到后来的C.和CART这三种算法。这三种算法的大致框架近似。决策树的学习过程.特征选择在训练数据中众多X中选择一个特征作为当前节点分裂的标准。如何选择特征有着很多不同量化评估标准,从而衍生出不同的决策树算法。.决策树生成根据选择的特征评估标准,从上至下递归生成子节点,直到数据集不可分或者最小节点满足阈值,此时决策树停止生长。.剪枝决策树极其容易过拟合,一般需要通过剪枝,缩小树结构规模、缓解过拟合。剪枝技术有前剪枝和后剪枝两种。有些算法用剪枝过程,有些没有,如ID。预剪枝:对每个结点划分前先进行估计,若当前结点的划分不能带来决策树的泛化性能的提升,则停止划分,并标记为叶结点。后剪枝:现从训练集生成一棵完整的决策树,然后自底向上对非叶子结点进行考察,若该结点对应的子树用叶结点能带来决策树泛化性能的提升,则将该子树替换为叶结点。但不管是预剪枝还是后剪枝都是用验证集的数据进行评估。ID算法是最早成型的决策树算法。ID的算法核心是在决策树各个节点上应用信息增益准则来选择特征,递归构建决策树。缺点是,在选择分裂变量时容易选择分类多的特征,如ID值【值越多、分叉越多,子节点的不纯度就越小,信息增益就越大】。ID之所以无法?处理缺失值、无法处理连续值、不剪纸等情况,主要是当时的重点并不是这些。C.算法与ID近似,只是分裂标准从?信息增益?转变成?信息增益率。可以处理连续值,含剪枝,可以处理缺失值,这里的做法多是?概率权重。CART:.可以处理连续值.可以进行缺失值处理.支持剪枝.可以分类可以回归。缺失值的处理是?作为一个单独的类别进行分类。建立CART树我们的算法从根节点开始,用训练集递归的建立CART树。)对于当前节点的数据集为D,如果样本个数小于阈值或者没有特征,则返回决策子树,当前节点停止递归。)计算样本集D的基尼系数,如果基尼系数小于阈值(说明已经很纯了!!不需要再分了!!,则返回决策树子树,当前节点停止递归。)计算当前节点现有的各个特征的各个特征值对数据集D的基尼系数。)在计算出来的各个特征的各个特征值对数据集D的基尼系数中,选择基尼系数最小的特征A和对应的特征值a。根据这个最优特征和最优特征值,把数据集划分成两部分D和D,同时建立当前节点的左右节点,做节点的数据集D为D,右节点的数据集D为D。(注:注意是二叉树,故这里的D和D是有集合关系的,D=D-D))对左右的子节点递归的调用-步,生成决策树。CART采用的办法是后剪枝法,即先生成决策树,然后产生所有可能的剪枝后的CART树,然后使用交叉验证来检验各种剪枝的效果,选择泛化能力最好的剪枝策略。应用场景比如欺诈问题中,通过决策树算法简单分类,默认是CART的分类树,默认不剪枝。然后在出图后,自行选择合适的叶节点进行拒绝操作。这个不剪枝是因为欺诈问题的特殊性,欺诈问题一般而言较少,如数据的万几水平,即正样本少,而整个欺诈问题需要解决的速度较快。此时只能根据业务要求,迅速针对已有的正样本情况,在控制准确率的前提下,尽可能提高召回率。这种情况下,可以使用决策树来简单应用,这个可以替代原本手工选择特征及特征阈值的情况。

  求大神讲解这个matlab函数该如何输入参数(cart决策树

  如果你会baiLatex就会很方便,matlab图形中dutitle,xlabel,ylabel,zlabel,textbox,legend等的Interperter属性设定zhi为latex,就可以输dao入latex公式版比如:权标注一个偏微分方程式textbox(’Interpreter’,’latex’,’String’,’$frac{partial^{}y}{partial}x^{}}=ay$’,’Position’,,’FontSize’,);

  目录一、决策树算法思想二、决策树学习本质三、总结一、决策树(decisiontree算法思想:决策树是一种基本的分类与回归方法。本文主要讨论分类决策树。决策树模型呈树形结构,在分类问题中,表示基于特征对实例进行分类的过程。它可以看做是if-then的条件集合,也可以认为是定义在特征空间与类空间上的条件概率分布。决策树由结点和有向边组成。结点有两种类型:内部结点和叶结点,内部结点表示一个特征或属性,叶结点表示一个类。(椭圆表示内部结点,方块表示叶结点???????决策树与if-then规则的关系决策树可以看做是多个if-then规则的集合。将决策树转换成if-then规则的过程是:由决策树的根结点到叶结点的每一条路径构建一条规则;路径上的内部结点的特征对应着规则的条件,而叶结点的类对应着规则的结论。决策树的路径或其对应的if-then规则集合具有一个重要的性质:互斥且完备。这就是说,每一个实例都被一条路径或一条规则所覆盖,且只被一条路径或一条规则所覆盖。这里的覆盖是指实例的特征与路径上的特征一致或实例满足规则的条件。???????决策树与条件概率分布的关系决策树还表示给定特征条件下类的条件概率分布。这一条件概率分布定义在特征空间的一个划分上。将特征空间划分为互不相交的单元或区域,并在每个单元定义一个类的概率分布,就构成一个条件概率分布。决策树的一条路径对应于划分中的一个单元。决策树所表示的条件概率分布由各个单元给定条件下类的条件概率分布组成。???????决策树模型的优点决策树模型具有可读性,分类速度快。学习时,利用训练数据,根据损失函数最小化原则建立决策树模型;预测时,对新的数据,利用决策树模型进行分类。二、决策树学习本质:决策树学习是从训练数据集中归纳一组分类规则、与训练数据集不相矛盾的决策树可能有多个,也可能一个没有。我们需要训练一个与训练数据矛盾较小的决策树,同时具有很好的泛化能力。从另一个角度看决策树学习是训练数据集估计条件概率模型。基于特征空间划分的类的条件概率模型有无穷多个。我们选择的条件概率模型应该是不仅对训练数据有很好的拟合,而且对未知数据有很好的预测。决策树的学习使用损失函数表示这一目标,通常的损失函数是正则化的极大似然函数。决策树的学习策略是以损失函数为目标函数的最小化。当损失函数确定后,决策树学习问题变为损失函数意义下选择最优决策树的问题。这一过程通常是一个递归选择最优特征,并根据特征对训练数据进行分割,使得对各个子数据集有一个最好分类的过程。这一过程对应着特征选择、决策树的生成、决策树的剪枝。???????特征选择:在于选择对训练数据具有分类能力的特征,这样可以提高决策树的学习效率。???????决策树的生成:根据不同特征作为根结点,划分不同子结点构成不同的决策树。???????决策树的选择:哪种特征作为根结点的决策树信息增益值最大,作为最终的决策树(最佳分类特征。?????信息熵:在信息论与概率统计中,熵是表示随机变量不确定性的度量。设X是一个取有限个值的离散随机变量,其概率分布为P(X=)=,i=,,...n,则随机变量X的熵定义为????H(X)=?—?,《=?H(X)《=?,熵越大,随机变量的不确定性就越大。????条件熵(Y|X:表示在已知随机变量X的条件下随机变量Y的不确定性。???????信息增益?:表示得知特征X的信息而使得类Y的信息的不确定性减少的程度。????信息增益?=信息熵(父结点熵)—条件熵(子结点加权熵三、总结:????优点????、可解释性高,能处理非线性的数据,不需要做数据归一化,对数据分布没有偏好。????、可用于特征工程,特征选择。????、可转化为规则引擎。????缺点????、启发式生成,不是最优解。????、容易过拟合。????、微小的数据改变会改变整个数的形状。????、对类别不平衡的数据不友好。

  请问matlab中的treefit函数使用的是ID算法吗matlab有没有其他的决策树算法或者第三方开发的源程序包

  是ID,可以参考文章:Breiman,L.,J.Friedman,R.Olshen,andC.Stone.ClassificationandRegressionTrees.BocaRaton,FL:CRCPress,.里面有参数可以设置算法:classificationregression

  有人懂决策树算法c.没,帮我看哈这个代码

  train_features%训练数据集,可以使用自己的数据或者使用UCI数据集,有需要的话问我或者百度下载train_targets%类别属性,一般是就训练数据集的最后一列inc_node%Percentageofincorrectlyassignedsamplesatanode,默认是.region%决策域向量,一般为

  关于决策树算法,我打算分两篇来讲,一篇讲思想原理,另一篇直接撸码来分析算法。本篇为原理篇。通过阅读这篇文章,你可以学到:、决策树的本质、决策树的构造过程、决策树的优化方向

  决策树根据使用目的分为:分类树和回归树,其本质上是一样的。本文只讲分类树。

  决策树,根据名字来解释就是,使用树型结构来模拟决策。用图形表示就是下面这样。

  其中椭圆形代表:特征或属性。长方形代表:类别结果。面对一堆数据(含有特征和类别,决策树就是根据这些特征(椭圆形来给数据归类(长方形例如,信用贷款问题,我根据《神奇动物在哪里》的剧情给银行造了个决策树模型,如下图:

  然而,决定是否贷款可以根据很多特征,然麻鸡银行选择了:(是否房产价值》w;(是否有其他值钱的抵押物;(月收入》k;(是否结婚;这四个特征,来决定是否给予贷款。先不管是否合理,但可以肯定的是,决策树做了特征选择工作,即选择出类别区分度高的特征。

  由此可见,决策树其实是一种特征选择方法。(特征选择有多种,决策树属于嵌入型特征选择,以后或许会讲到,先给个图即选择区分度高的特征子集。

  那么,从特征选择角度来看决策树,决策树就是嵌入型特征选择技术

  同时,决策树也是机器学习中经典分类器算法,通过决策路径,最终能确定实例属于哪一类别。那么,从分类器角度来看决策树,决策树就是树型结构的分类模型

  从人工智能知识表示法角度来看,决策树类似于if-then的产生式表示法。那么,从知识表示角度来看决策树,决策树就是if-then规则的集合

  由上面的例子可知,麻鸡银行通过决策树模型来决定给哪些人贷款,这样决定贷款的流程就是固定的,而不由人的主观情感来决定。那么,从使用者角度来看决策树,决策树就是规范流程的方法

  最后我们再来看看决策树的本质是什么已经不重要了。决策树好像是一种思想,而通过应用在分类任务中从而成就了“决策树算法”。

  下面内容还是继续讲解用于分类的“决策树算法”。

  前面讲了决策树是一种特征选择技术。

  既然决策树就是一种特征选择的方法,那么经典决策树算法其实就是使用了不同的特征选择方案。如:(ID:使用信息增益作为特征选择(C.:使用信息增益率作为特征选择(CART:使用GINI系数作为特征选择具体选择的方法网上一大把,在这里我提供几个链接,不细讲。

  但,不仅仅如此。决策树作为嵌入型特征选择技术结合了特征选择和分类算法,根据特征选择如何生成分类模型也是决策树的一部分。其生成过程基本如下:

  根据这三个步骤,可以确定决策树由:(特征选择;(生成方法;(剪枝,组成。决策树中学习算法与特征选择的关系如下图所示:

  原始特征集合T:就是包含收集到的原始数据所有的特征,例如:麻瓜银行收集到与是否具有偿还能力的所有特征,如:是否结婚、是否拥有w的房产、是否拥有汽车、是否有小孩、月收入是否》k等等。中间的虚线框就是特征选择过程,例如:ID使用信息增益、C.使用信息增益率、CART使用GINI系数。其中评价指标(如:信息增益就是对特征的要求,特征需要满足这种条件(一般是某个阈值,才能被选择,而这一选择过程嵌入在学习算法中,最终被选择的特征子集也归到学习算法中去。这就是抽象的决策树生成过程,不论哪种算法都是将这一抽象过程的具体化。其具体算法我将留在下一篇文章来讲解。

  而决策树的剪枝,其实用得不是很多,因为很多情况下随机森林能解决决策树带来的过拟合问题,因此在这里也不讲了。

  决策树的优化主要也是围绕决策树生成过程的三个步骤来进行优化的。树型结构,可想而知,算法效率决定于树的深度,优化这方面主要从特征选择方向上优化。提高分类性能是最重要的优化目标,其主要也是特征选择。面对过拟合问题,一般使用剪枝来优化,如:李国和基于决策树生成及剪枝的数据集优化及其应用。同时,决策树有很多不足,如:多值偏向、计算效率低下、对数据空缺较为敏感等,这方面的优化也有很多,大部分也是特征选择方向,如:陈沛玲使用粗糙集进行特征降维。由此,决策树的优化方向大多都是特征选择方向,像ID、C.、CART都是基于特征选择进行优化。

  参考文献统计学习方法-李航特征选择方法综述-李郅琴决策树分类算法优化研究_陈沛玲基于决策树生成及剪枝的数据集优化及其应用-李国和

  如何利用matlab建立决策树模型,对原始数据(excel表格有什么要求最好有代码,C.算法的~

  C.的好像没看到人实现过,不过ID是很好用的,用treefit函数,excel函数只要主体部分,属性矩阵和分类向量要分开存放,不要第一行和第一列的注释内容(如果没有就不用删,用xlsread函数获取Excel数据得到输入矩阵。目标向量可以另外在建立一个excel一样的使用。可以继续交流

您可能感兴趣的文章:

相关文章