导航:首页 > 源码编译 > 决策树算法比较

决策树算法比较

发布时间:2023-07-21 00:47:06

㈠ 决策树计算公式

决策树计算公式公式:H(X)=–∑P(x)log[P(x)]H(x):表示熵 P(x):表示x事件发生的概率。

决策树法的具体计算过程:

①绘制决策树图形,按上述要求由左向右顺序展开。

②计算每个结点的期望值,计算公式为:

状态结点的期望值=Σ(损益值×概率值)×经营年限

③剪枝,即进行方案的选优。

方案净效果=该方案状态结点的期望值-该方案投资额

㈡ 决策树原理及算法比较

决策树是什么?

    和线性回归一样是一种模型,内部节点和叶节点。实现分类,内部节点和叶节点通过有向线(分类规      则)连接起来

决策树的目标是什么?

    决策树通过对数据复杂度的计算,建立特征分类标准,确定最佳分类特征。

    表现为“熵”(entropy)和信息增益(information gain),基于决策树思想的三种算法:ID3,C4.5,CART算法,三种算法的信息衡量的指标也不同.

    熵来表示信息的复杂度,熵越大,信息也就越复杂,公式如下:

那些算法能够实现决策树?

    在决策树构建过程中,什么是比较重要的。特征选择(按照熵变计算),算法产生最重要的部分,

决策树中叶节点的分类比较纯,

节点顺序的排列规则:

熵变:

数据的预处理:

改进思路一般有两个1,换算法;2,调参数

做好数据的预处理:

1,做好特征选择;

2,做好数据离散化、异常值处理、缺失填充

分类器:

在决策树中,从根到达任意一个叶节点的之间最长路径的长度,表示对应的算法排序中最坏情况下的比较次数。这样一个比较算法排序中的最坏情况的比较次数就与其决策树的高度相同,同时如果决策树中每种排列以可达叶子的形式出现,那么关于其决策树高度的下界也就是关于比较排序算法运行时间的下界,

ID3算法存在的缺点:

    1,ID3算法在选择根节点和内部节点分支属性时,采用信息增益作为评价标准。信息增益的缺点是倾向于选择取值较多的属性

    2,当数据为连续性变量的时候,ID3算法就不是一个合理的算法的模型了

C4.5信息增益比率,

     1,在信息增益的基础上除以split-info,是将信息增益改为信息增益比,以解决取值较多的属性的问题,另外它还可以处理连续型属性,其判别标准是θ,

      2,C4.5算法利用增益/熵值,克服了树生长的过程中,总是‘贪婪’选择变量分类多的进行分类

      3,处理来内需型变量,C4.5的分类树的分支就是两条

衡量指标:

(1)信息增益

基于ID3算法的信息增益对于判定连续型变量的时候病不是最优选择,C4.5算法用了信息增益率这个概念。

分类信息类的定义如下:

这个值表示将训练数据集D划分成对应属性A测试的V个输出v个划分产生的信息,信息增益率定义为:

选择最大信息增益率的属性作为分裂属性

Gini指标,CART

表明样本的“纯净度”。Gini系数避免了信息增益产生的问题,

过拟合问题,非常好的泛化能力,有很好的推广能力

Gini系数的计算:

在分类问题中,假设有k个类,样本点属于第k类的概率为Pk,则概率分布的gini指数的定义为:

如果样本集合D根据某个特征A被分割为D1,D2两个部分,那么在特征A的提哦啊见下,集合D的gini指数的定义为:

Gini指数代表特征A不同分组下的数据集D的不确定性,gini指数越大,样本集合的不确定性也就越大,这一点和熵的概念相类似

决策树原理介绍:

第三步:对于每个属性执行划分:

(1)该属性为离散型变量

记样本中的变量分为m中

穷举m种取值分为两类的划分

对上述所有划分计算GINI系数

(2)该属性为连续型变量

将数据集中从小到大划分

按顺序逐一将两个相临值的均值作为分割点

对上述所有划分计算GINI系数

学历的划分使得顺序的划分有个保证,化为连续型变量处理。

决策树的生成算法分为两个步骤:

预剪枝和后剪枝  CCP(cost and complexity)算法:在树变小和变大的的情况有个判断标准。误差率增益值:α值为误差的变化

决策树的终止条件:

      1,某一个节点的分支所覆盖的样本都是同一类的时候

      2,某一个分支覆盖的样本的个数如果小于一个阈值,那么也可以产生叶子节点,从而终止Tree-Growth

确定叶子结点的类:

      1,第一种方式,叶子结点覆盖的样本都属于同一类

      2, 叶子节点覆盖的样本未必是同一类,所占的大多数,那么该叶子节点的类别就是那个占大多数的类

㈢ 决策树算法总结

目录

一、决策树算法思想

二、决策树学习本质

三、总结

一、决策树(decision tree)算法思想:

决策树是一种基本的分类与回归方法。本文主要讨论分类决策树。决策树模型呈树形结构,在分类问题中,表示基于特征对实例进行分类的过程。 它可以看做是if-then的条件集合,也可以认为是定义在特征空间与类空间上的条件概率分布 。决策树由结点和有向边组成。结点有两种类型:内部结点和叶结点,内部结点表示一个特征或属性,叶结点表示一个类。(椭圆表示内部结点,方块表示叶结点)

         决策树与if-then规则的关系

决策树可以看做是多个if-then规则的集合。将决策树转换成if-then规则的过程是:由决策树的根结点到叶结点的每一条路径构建一条规则;路径上的内部结点的特征对应着规则的条件,而叶结点的类对应着规则的结论。决策树的路径或其对应的if-then规则集合具有一个重要的性质:互斥且完备。这就是说,每一个实例都被一条路径或一条规则所覆盖,且只被一条路径或一条规则所覆盖。这里的覆盖是指实例的特征与路径上的特征一致或实例满足规则的条件。

         决策树与条件概率分布的关系

决策树还表示给定特征条件下类的条件概率分布。这一条件概率分布定义在特征空间的一个划分上。将特征空间划分为互不相交的单元或区域,并在每个单元定义一个类的概率分布,就构成一个条件概率分布。决策树的一条路径对应于划分中的一个单元。决策树所表示的条件概率分布由各个单元给定条件下类的条件概率分布组成。

         决策树模型的优点

决策树模型具有可读性,分类速度快。学习时,利用训练数据,根据损失函数最小化原则建立决策树模型;预测时,对新的数据,利用决策树模型进行分类 。

二、决策树学习本质:

决策树学习是从训练数据集中归纳一组分类规则、与训练数据集不相矛盾的决策树可能有多个,也可能一个没有。我们需要训练一个与训练数据矛盾较小的决策树,同时具有很好的泛化能力。从另一个角度看 决策树学习是训练数据集估计条件概率模型 。基于特征空间划分的类的条件概率模型有无穷多个。我们选择的条件概率模型应该是不仅对训练数据有很好的拟合,而且对未知数据有很好的预测。 决策树的学习使用损失函数表示这一目标,通常的损失函数是正则化的极大似然函数。决策树的学习策略是以损失函数为目标函数的最小化。当损失函数确定后,决策树学习问题变为损失函数意义下选择最优决策树的问题。这一过程通常是一个递归选择最优特征,并根据特征对训练数据进行分割,使得对各个子数据集有一个最好分类的过程。这一过程对应着特征选择、决策树的生成、决策树的剪枝。

         特征选择 : 在于选择对训练数据具有分类能力的特征,这样可以提高决策树的学习效率。

         决策树的生成 : 根据不同特征作为根结点,划分不同子结点构成不同的决策树。

         决策树的选择 :哪种特征作为根结点的决策树信息增益值最大,作为最终的决策树(最佳分类特征)。

         信息熵 : 在信息论与概率统计中,熵是表示随机变量不确定性的度量。设X是一个取有限个值的离散随机变量,其概率分布为P(X= ) = ,i=1,2,3...n,则随机变量X的熵定义为

        H(X) =  —  ,0 <=  H(X) <= 1,熵越大,随机变量的不确定性就越大。

        条件熵(Y|X) : 表示在已知随机变量X的条件下随机变量Y的不确定性。

         信息增益  : 表示得知特征X的信息而使得类Y的信息的不确定性减少的程度。

        信息增益  = 信息熵(父结点熵 ) — 条件熵(子结点加权熵)

三、 总结 :

        优点

        1、可解释性高,能处理非线性的数据,不需要做数据归一化,对数据分布没有偏好。

        2、可用于特征工程,特征选择。

        3、可转化为规则引擎。

        缺点

        1、启发式生成,不是最优解。

        2、容易过拟合。

        3、微小的数据改变会改变整个数的形状。

        4、对类别不平衡的数据不友好。

㈣ 常见决策树分类算法都有哪些

在机器学习中,有一个体系叫做决策树,决策树能够解决很多问题。在决策树中,也有很多需要我们去学习的算法,要知道,在决策树中,每一个算法都是实用的算法,所以了解决策树中的算法对我们是有很大的帮助的。在这篇文章中我们就给大家介绍一下关于决策树分类的算法,希望能够帮助大家更好地去理解决策树。
1.C4.5算法
C4.5算法就是基于ID3算法的改进,这种算法主要包括的内容就是使用信息增益率替换了信息增益下降度作为属性选择的标准;在决策树构造的同时进行剪枝操作;避免了树的过度拟合情况;可以对不完整属性和连续型数据进行处理;使用k交叉验证降低了计算复杂度;针对数据构成形式,提升了算法的普适性等内容,这种算法是一个十分使用的算法。
2.CLS算法
CLS算法就是最原始的决策树分类算法,基本流程是,从一棵空数出发,不断的从决策表选取属性加入数的生长过程中,直到决策树可以满足分类要求为止。CLS算法存在的主要问题是在新增属性选取时有很大的随机性。
3.ID3算法
ID3算法就是对CLS算法的最大改进是摒弃了属性选择的随机性,利用信息熵的下降速度作为属性选择的度量。ID3是一种基于信息熵的决策树分类学习算法,以信息增益和信息熵,作为对象分类的衡量标准。ID3算法结构简单、学习能力强、分类速度快适合大规模数据分类。但同时由于信息增益的不稳定性,容易倾向于众数属性导致过度拟合,算法抗干扰能力差。
3.1.ID3算法的优缺点
ID3算法的优点就是方法简单、计算量小、理论清晰、学习能力较强、比较适用于处理规模较大的学习问题。缺点就是倾向于选择那些属性取值比较多的属性,在实际的应用中往往取值比较多的属性对分类没有太大价值、不能对连续属性进行处理、对噪声数据比较敏感、需计算每一个属性的信息增益值、计算代价较高。
3.2.ID3算法的核心思想
根据样本子集属性取值的信息增益值的大小来选择决策属性,并根据该属性的不同取值生成决策树的分支,再对子集进行递归调用该方法,当所有子集的数据都只包含于同一个类别时结束。最后,根据生成的决策树模型,对新的、未知类别的数据对象进行分类。
在这篇文章中我们给大家介绍了决策树分类算法的具体内容,包括有很多种算法。从中我们不难发现决策树的算法都是经过不不断的改造趋于成熟的。所以说,机器学习的发展在某种程度上就是由于这些算法的进步而来的。

㈤ 数据挖掘-决策树算法

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

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

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

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

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

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

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

先来看熵的概念:

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

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

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

举个例子:

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

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

信息熵为:
Gini系数为:

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

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

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

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

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

举个例子:

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

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

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

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

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

再计算周末这个特征,也只有两个特征值,一个是,一个否,其中是有14条,否有20条;周末为是的中有11条销量是高,3条销量低,以此类推有:


信息增益为:

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

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

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

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

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

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

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

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

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

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

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

公式如下:

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

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

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

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

㈥ 决策树基本概念及算法优缺点

分类决策树模型是一种描述对实例进行分类的树形结构. 决策树由结点和有向边组成. 结点有两种类型: 内部结点和叶节点. 内部节点表示一个特征或属性, 叶节点表示一个类.
决策树(Decision Tree),又称为判定树, 是一种以树结构(包括二叉树和多叉树)形式表达的预测分析模型.

分类树--对离散变量做决策树

回归树--对连续变量做决策树

优点:
(1)速度快: 计算量相对较小, 且容易转化成分类规则. 只要沿着树根向下一直走到叶, 沿途的分裂条件就能够唯一确定一条分类的谓词.
(2)准确性高: 挖掘出来的分类规则准确性高, 便于理解, 决策树可以清晰的显示哪些字段比较重要, 即可以生成可以理解的规则.
(3)可以处理连续和种类字段
(4)不需要任何领域知识和参数假设
(5)适合高维数据
缺点:
(1)对于各类别样本数量不一致的数据, 信息增益偏向于那些更多数值的特征
(2)容易过拟合
(3)忽略属性之间的相关性

若一事假有k种结果, 对应概率为 , 则此事件发生后所得到的信息量I为:

给定包含关于某个目标概念的正反样例的样例集S, 那么S相对这个布尔型分类的熵为:

其中 代表正样例, 代表反样例

假设随机变量(X,Y), 其联合分布概率为P(X=xi,Y=yi)=Pij, i=1,2,...,n;j=1,2,..,m
则条件熵H(Y|X)表示在已知随机变量X的条件下随机变量Y的不确定性, 其定义为X在给定条件下Y的条件概率分布的熵对X的数学期望

在Hunt算法中, 通过递归的方式建立决策树.

使用信息增益, 选择 最高信息增益 的属性作为当前节点的测试属性

ID3( Examples,Target_attribute,Attributes )

Examples 即训练样例集. Target_attribute 是这棵树要预测的目标属性. Attributes 是除目标属性外供学习到的决策树测试的属性列表. 返回能正确分类给定 Examples 的决策树.

class sklearn.tree.DecisionTreeClassifier(criterion='gini', splitter='best', max_depth=None, min_samples_split=2, min_samples_leaf=1, min_weight_fraction_leaf=0.0, max_features=None, random_state=None, max_leaf_nodes=None, min_impurity_decrease=0.0, min_impurity_split=None, class_weight=None, presort=False)

限制决策树层数为4的DecisionTreeClassifier实例

This plot compares the decision surfaces learned by a dcision tree classifier(first column), by a random forest classifier(second column), by an extra-trees classifier(third column) and by an AdaBoost classifier(fouth column).

Output:

A comparison of a several classifiers in scikit-learn on synthetic datasets.
The point of this examples is to illustrate the nature of decision boundaries of different classifiers.

Particularly in high-dimensional spaces, data can more easily be separated linearly and the simplicity of classifiers such as naive Bayes and linear SVMs might lead to better generalization than is achieved by other classifiers.

This example fits an AdaBoost decisin stump on a non-linearly separable classification dataset composed of two "Gaussian quantiles" clusters and plots the decision boundary and decision scores.

Output:

㈦ 决策树算法 CART和C4.5决策树有什么区别各用于什么领域

1、C4.5算法是在ID3算法的基础上采用信息增益率的方法选择测试属性。CART算法采用一种二分递归分割的技术,与基于信息熵的算法不同,CART算法对每次样本集的划分计算GINI系数,GINI系数,GINI系数越小则划分越合理。
2、决策树算法是一种逼近离散函数值的方法。它是一种典型的分类方法,首先对数据进行处理,利用归纳算法生成可读的规则和决策树,然后使用决策对新数据进行分析。本质上决策树是通过一系列规则对数据进行分类的过程。
3、决策树算法构造决策树来发现数据中蕴涵的分类规则.如何构造精度高、规模小的决策树是决策树算法的核心内容。决策树构造可以分两步进行。第一步,决策树的生成:由训练样本集生成决策树的过程。一般情况下,训练样本数据集是根据实际需要有历史的、有一定综合程度的,用于数据分析处理的数据集。第二步,决策树的剪技:决策树的剪枝是对上一阶段生成的决策树进行检验、校正和修下的过程,主要是用新的样本数据集(称为测试数据集)中的数据校验决策树生成过程中产生的初步规则,将那些影响预衡准确性的分枝剪除。

阅读全文

与决策树算法比较相关的资料

热点内容
dvd光盘存储汉子算法 浏览:757
苹果邮件无法连接服务器地址 浏览:962
phpffmpeg转码 浏览:671
长沙好玩的解压项目 浏览:142
专属学情分析报告是什么app 浏览:564
php工程部署 浏览:833
android全屏透明 浏览:732
阿里云服务器已开通怎么办 浏览:803
光遇为什么登录时服务器已满 浏览:301
PDF分析 浏览:484
h3c光纤全工半全工设置命令 浏览:141
公司法pdf下载 浏览:381
linuxmarkdown 浏览:350
华为手机怎么多选文件夹 浏览:683
如何取消命令方块指令 浏览:349
风翼app为什么进不去了 浏览:778
im4java压缩图片 浏览:362
数据查询网站源码 浏览:150
伊克塞尔文档怎么进行加密 浏览:890
app转账是什么 浏览:163