决策树算法介绍

合集下载

决策树算法

决策树算法
一个类(buys_computer=yes,或buys_computer=no))
3
第一节 决策树算法原理
优点: 使用者不需要了解很多背景知识,只要训练事例能用属性 →结论的方式表达出来,就能用该算法学习; 决策树模型效率高,对训练集数据量较大的情况较为适合; 分类模型是树状结构,简单直观,可将到达每个叶结点的 路径转换为IF→THEN形式的规则,易于理解; 决策树方法具有较高的分类精确度。
14
第一节 决策树算法原理
决策树算法的大体框架都是一样的,都采用了贪心(非回 溯的)方法来以自顶向下递归的方式构造决策树。 它首先根据所使用的分裂方法来对训练集递归地划分递归 地建立树的节点,直至满足下面两个条件之一,算法才停 止运行:( 1)训练数据集中每个子集的记录项全部属于 一类或某一个类占压倒性的多数;(2)生成的树节点通 过某个终止的分裂准则;最后,建立起决策树分类模型。
4
第一节 决策树算法原理
缺点: 不易处理连续数据。数据的属性必须被划分为不同的类别 才能处理,但是并非所有的分类问题都能明确划分成这个 区域类型; 对缺失数据难以处理,这是由于不能对缺失数据产生正确 的分支进而影响了整个决策树的生成; 决策树的过程忽略了数据库属性之间的相关性。
5
第一节 决策树算法原理
21
2.1 ID3算法
属性选择度量 在树的每个节点上使用信息增益(information gain)度量选 择测试属性。这种度量称作属性选择度量或分裂的优良性度 量。 选择具有最高信息增益(或最大信息熵压缩)的属性作为当 前节点的测试属性。该属性使得对结果划分中的样本分类所 需的信息量最小,并反映划分的最小随机性或“不纯性”。 这种信息理论方法使得对一个对象分类所需的期望测试数目 达到最小,并确保找到一棵简单的(但不必是最简单的)树。

什么是决策树算法?

什么是决策树算法?

什么是决策树算法?作为数据挖掘领域中最重要的算法之一,决策树算法是一个用于分类和回归分析的非常有用的工具。

决策树算法采用树形结构来表示决策过程,并通过构建具有最佳分类效果的决策树来实现。

那么为什么我们需要决策树算法呢?在实际的应用场景中,我们通常需要从众多的数据中挑选出最为关键的信息。

这样,我们就可以更好地理解数据,并作出相应的决策。

而决策树算法恰恰可以帮助我们完成这一任务。

那么究竟什么是决策树算法,它又是如何运作的呢?让我们逐步探讨吧。

一、什么是决策树算法?决策树算法是一种树形结构的分类和回归分析方法。

它将一个问题分解为许多小问题,并通过一系列可行的测试来解决问题。

决策树算法可以应用于很多领域,包括医学、天气预测、金融等。

二、决策树算法的构建决策树算法的构建过程非常简单。

首先,将训练集数据拆分为子集并构建决策树。

然后,将训练集输入到决策树中,以确定输入数据的类别。

具体而言,决策树算法是通过一个包含一系列节点的层次结构来实现的。

每个节点都代表了一个问题或一个决策。

从根节点开始,每个节点包含一个或多个分支,每个分支代表一个可能的方式来回答节点所代表的问题。

它们的组合形成了决策树。

三、决策树算法的优缺点决策树算法有许多优点。

首先,它们是一种易于理解和解释的算法,能够对大规模数据进行快速的处理。

其次,通过决策树算法,我们能够轻松地检测出具有决策价值的特征。

最后,决策树算法的使用能够避免假定数据的线性关系。

然而,决策树算法也有其缺点。

首先,决策树算法容易出现过拟合的问题。

其次,当决策树的分支过于复杂时,我们很难解释树的结果。

最后,决策树算法的结果很容易被误解。

四、应用案例决策树算法可以应用于很多领域,下面我们就来介绍几个相对典型的应用案例。

1. 银行信贷风险评估银行需要通过信贷风险评估来决定是否给用户发放贷款。

采用决策树算法,我们可以根据贷款人的个人信息、信用记录等因素来判断其是否符合信贷标准。

2. 个性化推荐决策树算法同样可以应用在个性化推荐领域。

决策树的算法

决策树的算法

决策树的算法一、什么是决策树算法?决策树算法是一种基于树形结构的分类和回归方法,其本质是将训练数据集分成若干个小的子集,每个子集对应一个决策树节点。

在决策树的生成过程中,通过选择最优特征对数据进行划分,使得各个子集内部的样本尽可能属于同一类别或者拥有相似的属性。

在预测时,将待分类样本从根节点开始逐层向下遍历,直到到达叶节点并输出该节点所代表的类别。

二、决策树算法的基本流程1. 特征选择特征选择是指从训练数据集中选取一个最优特征用来进行划分。

通常情况下,选择最优特征需要考虑两个因素:信息增益和信息增益比。

2. 决策树生成通过递归地构建决策树来实现对训练数据集的分类。

具体实现方式为:采用信息增益或信息增益比作为特征选择标准,在当前节点上选择一个最优特征进行划分,并将节点分裂成若干个子节点。

然后对每个子节点递归调用上述过程,直到所有子节点都为叶节点为止。

3. 决策树剪枝决策树剪枝是指通过去掉一些无用的分支来降低决策树的复杂度,从而提高分类精度。

具体实现方式为:先在训练集上生成一棵完整的决策树,然后自底向上地对内部节点进行考察,若将该节点所代表的子树替换成一个叶节点能够提高泛化性能,则将该子树替换成一个叶节点。

三、常见的决策树算法1. ID3算法ID3算法是一种基于信息熵的特征选择方法。

其核心思想是在每个节点上选择信息增益最大的特征进行划分。

由于ID3算法偏向于具有较多取值的特征,因此在实际应用中存在一定局限性。

2. C4.5算法C4.5算法是ID3算法的改进版,采用信息增益比作为特征选择标准。

相比于ID3算法,C4.5算法可以处理具有连续属性和缺失值的数据,并且生成的决策树更加简洁。

3. CART算法CART(Classification And Regression Tree)算法既可以用来进行分类,也可以用来进行回归分析。

其核心思想是采用基尼指数作为特征选择标准,在每个节点上选择基尼指数最小的特征进行划分。

决策树算法详细解释

决策树算法详细解释

决策树算法详细解释
决策树算法是一种逼近离散函数值的方法,也是一种常用的风险型决策方法。

它通过一系列规则对数据进行分类,其结果以树形图的形式展现。

决策树算法的基本原理是用决策点代表决策问题,用方案分枝代表可供选择的方案,用概率分枝代表方案可能出现的各种结果。

决策树算法通过比较不同方案在未来各种情况下的损益值,为决策者提供决策依据。

决策树算法的具体步骤如下:
1. 决策树的生成:利用归纳算法从训练样本集中生成决策树。

这个过程通常会反复进行,直到达到预设的停止条件为止。

2. 决策树的剪枝:这是对生成的决策树进行检验、校正和修剪的过程。

主要是用新的样本数据集(称为测试数据集)中的数据校验决策树生成过程中产生的初步规则,将那些影响预测准确性的分枝剪除。

决策树算法最早产生于上世纪60年代,到70年代末由J Ross Quinlan提出了ID3算法,此算法的目的在于减少树的深度。

但是忽略了叶子数目的研究。

算法在ID3算法的基础上进行了改进,对于预测变量的缺值处理、剪枝
技术、派生规则等方面作了较大改进,既适合于分类问题,又适合于回归问题。

以上内容仅供参考,如需更多信息,建议查阅决策树算法相关论文或咨询数学领域专业人士。

经典决策树算法

经典决策树算法

经典决策树算法经典决策树算法是一种常用的机器学习算法,它通过构建一棵树形结构来进行分类或回归预测。

下面将介绍十个经典决策树算法及其特点。

1. ID3算法ID3算法是决策树算法中最早的一种,它使用信息增益来选择最优的划分属性。

ID3算法适用于离散型属性的分类问题,但对于连续型属性的处理较为困难。

2. C4.5算法C4.5算法是ID3算法的改进版,它引入了信息增益比来解决ID3算法的缺点。

C4.5算法还支持处理连续型属性,能够处理缺失值,并且可以生成带有概率估计的决策树。

3. CART算法CART算法是一种通用的决策树算法,可用于分类和回归问题。

CART算法使用基尼指数来选择最优的划分属性,能够处理连续型和离散型属性,也能处理缺失值。

4. CHAID算法CHAID算法是一种用于分类问题的决策树算法,它使用卡方检验来选择最优的划分属性。

CHAID算法能够处理离散型属性和有序离散型属性,但对于连续型属性的处理较为困难。

5. MARS算法MARS算法是一种基于决策树的回归算法,它使用逐步回归和最小二乘法来构建决策树。

MARS算法能够处理连续型和离散型属性,并且可以生成非线性的决策树。

6. Random Forest算法Random Forest算法是一种集成学习算法,它通过构建多棵决策树并进行投票来进行分类或回归预测。

Random Forest算法能够处理连续型和离散型属性,具有较高的准确性和鲁棒性。

7. Gradient Boosting算法Gradient Boosting算法是一种迭代的决策树算法,它通过逐步优化损失函数来构建决策树。

Gradient Boosting算法能够处理连续型和离散型属性,具有较高的准确性和泛化能力。

8. XGBoost算法XGBoost算法是一种基于梯度提升的决策树算法,它通过正则化和并行计算来提高决策树的性能。

XGBoost算法能够处理连续型和离散型属性,并且具有较高的准确性和效率。

决策树算法介绍

决策树算法介绍

3.1 分类与决策树概述3.1。

1 分类与预测分类是一种应用非常广泛的数据挖掘技术,应用的例子也很多。

例如,根据信用卡支付历史记录,来判断具备哪些特征的用户往往具有良好的信用;根据某种病症的诊断记录,来分析哪些药物组合可以带来良好的治疗效果。

这些过程的一个共同特点是:根据数据的某些属性,来估计一个特定属性的值。

例如在信用分析案例中,根据用户的“年龄”、“性别”、“收入水平"、“职业”等属性的值,来估计该用户“信用度”属性的值应该取“好”还是“差",在这个例子中,所研究的属性“信用度"是一个离散属性,它的取值是一个类别值,这种问题在数据挖掘中被称为分类。

还有一种问题,例如根据股市交易的历史数据估计下一个交易日的大盘指数,这里所研究的属性“大盘指数”是一个连续属性,它的取值是一个实数。

那么这种问题在数据挖掘中被称为预测.总之,当估计的属性值是离散值时,这就是分类;当估计的属性值是连续值时,这就是预测.3。

1.2 决策树的基本原理1.构建决策树通过一个实际的例子,来了解一些与决策树有关的基本概念.表3—1是一个数据库表,记载着某银行的客户信用记录,属性包括“姓名”、“年龄”、“职业”、“月薪”、..。

..。

、“信用等级”,每一行是一个客户样本,每一列是一个属性(字段)。

这里把这个表记做数据集D.银行需要解决的问题是,根据数据集D,建立一个信用等级分析模型,并根据这个模型,产生一系列规则。

当银行在未来的某个时刻收到某个客户的贷款申请时,依据这些规则,可以根据该客户的年龄、职业、月薪等属性,来预测其信用等级,以确定是否提供贷款给该用户。

这里的信用等级分析模型,就可以是一棵决策树. 在这个案例中,研究的重点是“信用等级”这个属性。

给定一个信用等级未知的客户,要根据他/她的其他属性来估计“信用等级”的值是“优”、“良"还是“差”,也就是说,要把这客户划分到信用等级为“优”、“良"、“差"这3个类别的某一类别中去.这里把“信用等级”这个属性称为“类标号属性”。

决策树算法及其应用

决策树算法及其应用

决策树算法及其应用决策树算法是一种基于树形结构的机器学习方法,通过一系列的决策节点和分支来解决分类和回归问题。

它模拟人类在做决策时的思维过程,通过学习训练数据集中的特征和标签之间的关系,构建一棵决策树,从而实现对未知数据的预测和分类。

一、决策树的基本原理决策树算法的基本原理是通过对特征空间的不断划分,将样本分配到不同的类别。

从根节点开始,根据特征的取值不断拆分子节点,直到满足某种终止条件,例如所有样本都属于同一类别,或者没有更多的特征可供划分。

在构建决策树的过程中,需要选择最优的分裂特征和分裂点,这取决于不同的决策树算法。

二、常见的决策树算法1. ID3算法ID3算法是最早提出的决策树算法之一,它使用信息增益作为特征选择的准则。

信息增益是指使用某个特征来划分样本后,目标变量的不确定性减少的程度。

ID3算法适用于离散特征的分类问题,但对于连续特征无法直接处理。

2. C4.5算法C4.5算法是ID3算法的改进版本,它引入了信息增益比来解决ID3对取值较多特征有偏好的问题,并且支持处理连续特征。

C4.5算法在生成决策树的同时,可以将决策树剪枝,避免过拟合问题。

3. CART算法CART算法是一种既可以用于分类又可以用于回归的决策树算法。

它采用基尼指数作为特征选择的准则,基尼指数是指样本被错误分类的概率。

CART算法可以处理离散特征和连续特征,且生成的决策树是二叉树结构。

三、决策树的应用决策树算法在各个领域都有广泛的应用。

以下是几个典型的应用场景:1. 金融行业在金融行业,决策树算法可以用于信用评估、风险预测等方面。

通过分析客户的个人信息和历史数据,可以构建一个决策树模型,用于判断客户的信用等级或者风险等级。

2. 医疗诊断决策树算法可以用于医疗诊断和疾病预测。

通过收集患者的症状、体征等信息,可以构建一个决策树模型,帮助医生判断患者可能患有的疾病,并给出相应的治疗建议。

3. 商品推荐在电商行业,决策树算法可以用于商品推荐。

决策树算法原理?

决策树算法原理?

决策树算法是一种基于树形结构的有监督学习算法,它通过对数据集进行递归分割来构建一个分类或回归模型。

下面是决策树算法的基本原理:
1. 特征选择:
决策树算法首先根据给定的数据集选择最佳的特征作为当前的分割标准。

特征选择的目标是找到能够最好地区分不同类别的特征。

2. 分割节点:
根据选定的特征,决策树将数据集分割成多个子集,使得每个子集内的样本具有相似的特征。

分割节点的目标是使得同一子集内的数据尽可能属于同一类别。

3. 递归构建子树:
对于每个子集,重复步骤1和步骤2,递归地构建子树,直到满足终止条件。

终止条件可以是以下几种情况之一:
- 达到预定的树深度。

- 所有样本属于同一类别。

- 子集内的样本数量小于某个预定阈值。

4. 构建叶节点:
当满足终止条件时,将当前节点标记为叶节点,并将该节点的类别标签设置为该子集中样本数量最多的类别。

5. 预测:
通过遍历决策树,根据样本的特征值逐步判断并移动到相应的子节点,最终到达叶节点并预测出样本的类别标签。

在决策树算法中,有多种特征选择的策略,如信息增益、基尼系数等。

此外,决策树算法还有一些衍生的变体,如随机森林、梯度提升树等,以提高预测性能和抑制过拟合现象。

决策树算法易于理解和解释,适用于各种领域的分类和回归任务。

然而,决策树算法在处理复杂问题和处理高维数据时可能容易过拟合,并且对数据的小变化敏感。

因此,在使用决策树算法时需要注意适当的参数设置和模型调整。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

3.1 分类与决策树概述3.1.1 分类与预测分类是一种应用非常广泛的数据挖掘技术,应用的例子也很多。

例如,根据信用卡支付历史记录,来判断具备哪些特征的用户往往具有良好的信用;根据某种病症的诊断记录,来分析哪些药物组合可以带来良好的治疗效果。

这些过程的一个共同特点是:根据数据的某些属性,来估计一个特定属性的值。

例如在信用分析案例中,根据用户的“年龄”、“性别”、“收入水平”、“职业”等属性的值,来估计该用户“信用度”属性的值应该取“好”还是“差”,在这个例子中,所研究的属性“信用度”是一个离散属性,它的取值是一个类别值,这种问题在数据挖掘中被称为分类。

还有一种问题,例如根据股市交易的历史数据估计下一个交易日的大盘指数,这里所研究的属性“大盘指数”是一个连续属性,它的取值是一个实数。

那么这种问题在数据挖掘中被称为预测。

总之,当估计的属性值是离散值时,这就是分类;当估计的属性值是连续值时,这就是预测。

3.1.2 决策树的基本原理1.构建决策树通过一个实际的例子,来了解一些与决策树有关的基本概念。

表3-1是一个数据库表,记载着某银行的客户信用记录,属性包括“姓名”、“年龄”、“职业”、“月薪”、......、“信用等级”,每一行是一个客户样本,每一列是一个属性(字段)。

这里把这个表记做数据集D。

银行需要解决的问题是,根据数据集D,建立一个信用等级分析模型,并根据这个模型,产生一系列规则。

当银行在未来的某个时刻收到某个客户的贷款申请时,依据这些规则,可以根据该客户的年龄、职业、月薪等属性,来预测其信用等级,以确定是否提供贷款给该用户。

这里的信用等级分析模型,就可以是一棵决策树。

在这个案例中,研究的重点是“信用等级”这个属性。

给定一个信用等级未知的客户,要根据他/她的其他属性来估计“信用等级”的值是“优”、“良”还是“差”,也就是说,要把这客户划分到信用等级为“优”、“良”、“差”这3个类别的某一类别中去。

这里把“信用等级”这个属性称为“类标号属性”。

数据集D中“信用等级”属性的全部取值就构成了类别集合:Class={“优”,“良”,“差”}。

在决策树方法中,有两个基本的步骤。

其一是构建决策树,其二是将决策树应用于数据库。

大多数研究都集中在如何有效地构建决策树,而应用则相对比较简单。

构建决策树算法比较多,在Clementine中提供了4种算法,包括C&RT、CHAID、QUEST和C5.0。

采用其中的某种算法,输入训练数据集,就可以构造出一棵类似于图3.1所示的决策树。

一棵决策树是一棵有向无环树,它由若干个节点、分支、分裂谓词以及类别组成。

节点是一棵决策树的主体。

其中,没有父亲节点的节点称为根节点,如图3.1中的节点1;没有子节点的节点称为叶子节点,如图3.1中的节点4、5、6、7、8。

一个节点按照某个属性分裂时,这个属性称为分裂属性,如节点1按照“年龄”被分裂,这里“年龄”就是分裂属性,同理,“职业”、“月薪”也是分裂属性。

每一个分支都会被标记一个分裂谓词,这个分裂谓词就是分裂父节点的具体依据,例如在将节点1分裂时,产生两个分支,对应的分裂谓词分别是“年龄<40”和“年龄>=40”。

另外,每一个叶子节点都被确定一个类标号,这里是“优”、“良”或者“差”。

基于以上描述,下面给出决策树的定义:由此可以看出,构建一棵决策树,关键问题就在于,如何选择一个合适的分裂属性来进行一次分裂,以及如何制定合适的分裂谓词来产生相应的分支。

各种决策树算法的主要区别也正在于此。

2.修剪决策树利用决策树算法构建一个初始的树之后,为了有效地分类,还要对其进行剪枝。

这是因为,由于数据表示不当、有噪音等原因,会造成生成的决策树过大或过度拟合。

因此为了简化决策树,寻找一颗最优的决策树,剪枝是一个必不可少的过程。

通常,决策树越小,就越容易理解,其存储与传输的代价也就越小,但决策树过小会导致错误率较大。

反之,决策树越复杂,节点越多,每个节点包含的训练样本个数越少,则支持每个节点样本数量也越少,可能导致决策树在测试集上的分类错误率越大。

因此,剪枝的基本原则就是,在保证一定的决策精度的前提下,使树的叶子节点最少,叶子节点的深度最小。

要在树的大小和正确率之间寻找平衡点。

不同的算法,其剪枝的方法也不尽相同。

常有的剪枝方法有预剪枝和后剪枝两种。

例如CHAID和C5.0采用预剪枝,CART则采用后剪枝。

预剪枝,是指在构建决策树之前,先制定好生长停止准则(例如指定某个评估参数的阈值),在树的生长过程中,一旦某个分支满足了停止准则,则停止该分支的生长,这样就可以限制树的过度生长。

采用预剪枝的算法有可能过早地停止决策树的构建过程,但由于不必生成完整的决策树,算法的效率很高,适合应用于大规模问题。

后剪枝,是指待决策树完全生长结束后,再根据一定的准则,剪去决策树中那些不具一般代表性的叶子节点或者分支。

这时,可以将数据集划分为两个部分,一个是训练数据集,一个是测试数据集。

训练数据集用来生成决策树,而测试数据集用来对生成的决策树进行测试,并在测试的过程中通过剪枝来对决策树进行优化。

3.生成原则在生成一棵最优的决策树之后,就可以根据这棵决策树来生成一系列规则。

这些规则采用“If...,Then...”的形式。

从根节点到叶子节点的每一条路径,都可以生成一条规则。

这条路径上的分裂属性和分裂谓词形成规则的前件(If部分),叶子节点的类标号形成规则的后件(Then部分)。

例如,图3.1的决策树可以形成以下5条规则:If(年龄<40)and(职业=“学生” or 职业=“教师”)Then 信用等级=“优”If(年龄<40)and(职业!=“学生” and 职业!=“教师”)Then 信用等级=“良”If(年龄>=40)and(月薪<1000)Then 信用等级=“差”If(年龄>=40)and(月薪>=1000 and 月薪<=3000)Then 信用等级=“良”If(年龄>=40)and(月薪>3000)Then 信用等级=“优”这些规则即可应用到对未来观测样本的分类中了。

3.2 ID3、C4.5与C5.0ID3算法是最有影响力的决策树算法之一,由Quinlan 提出。

ID3算法的某些弱点被改善之后得到了C4.5算法;C5.0则进一步改进了C4.5算法,使其综合性能大幅度提高。

但由于C5.0是C4.5的商业版本,其算法细节属于商业机密,因此没有被公开,不过在许多数据挖掘软件包中都嵌入了C5.0算法,包括Clementine。

3.2.1 ID31.信息增益任何一个决策树算法,其核心步骤都是为每一次分裂确定一个分裂属性,即究竟按照哪一个属性来把当前数据集划分为若干个子集,从而形成若干个“树枝”。

ID3算法采用“信息增益”为度量来选择分裂属性的。

哪个属性在分裂中产生的信息增益最大,就选择该属性作为分裂属性。

那么什么是信息增益呢?这需要首先了解“熵”这个概念。

熵,是数据集中的不确定性、突发性或随机性的程度的度量。

当一个数据集中的记录全部都属于同一类的时候,则没有不确定性,这种情况下的熵为0。

决策树分类的基本原则是,数据集被分裂为若干个子集后,要使每个子集中的数据尽可能的“纯”,也就是说子集中的记录要尽可能属于同一个类别。

如果套用熵的概念,即要使分裂后各子集的熵尽可能的小。

例如在一次分裂中,数据集D被按照分裂属性“年龄”分裂为两个子集D1和D2,如图3.2所示。

2.ID3算法的流程ID3算法是一个从上到下、分而治之的归纳过程。

ID3算法的核心是:在决策树各级节点上选择分裂属性时,通过计算信息增益来选择属性,以使得在每一个非叶节点进行测试时,能获得关于被测试样本最大的类别信息。

其具体方法是:检测所有的属性,选择信息增益最大的属性产生决策树节点,由该属性的不同取值建立分支,再对各分支的子集递归调用该方法建立决策树节点的分支,直到所有子集仅包括同一类别的数据为止。

最后得到一棵决策树,它可以用来对新的样本进行分类。

下面通过一个实例来了解一下决策树的构建过程。

表3-2是一个假想的银行贷款客户历史信息(略去了客户姓名),包含14个样本。

现要求以这14个样本为训练数据集,以“提供贷款”为类标号属性,用ID3算法构造决策树。

3.ID3算法的性能分析ID3算法是一种典型的决策树分析算法,后来发展的许多决策树算法都是以ID3算法为基础发展而来的。

ID3算法的优点在于它构建决策树的速度比较快,它的计算时间随问题的难度只是线性地增加,适合处理大批量数据集。

同时,ID3算法的缺点也是突出的,包括以下几点。

(1)ID3算法对训练样本的质量的依赖性很强,训练样本的质量主要是指是否存在噪声和是否存在足够的样本。

(2)ID3算法只能处理分类属性(离散属性),而不能处理连续属性(数值属性)。

在处理连续属性时,一般要先将连续属性划分为多个区间,转化为分类属性。

例如“年龄”,要把其数值事先转换为诸如“小于30岁”、“30~50岁”、“大于50岁”这样的区间,再根据年龄值落入了某一个区间取相应的类别值。

通常,区间端点的选取包含着一定的主观因素和大量的计算。

(3)ID3算法生成的决策树是一棵多叉树,分支的数量取决于分裂属性有多少个不同的取值。

这不利于处理分裂属性取值数目较多的情况。

因此目前流行的决策树算法大多采用二叉树模型。

(4)ID3算法不包含对树的修剪,无法对决策树进行优化。

正因为ID3还存在着许多不足的地方,Quinlan对ID3算法进行了改进,并于1993年提出了ID3的改进算法C4.5。

3.2.2 C4.5C4.5算法的核心思想与ID3完全相同,但在实现方法上做了更好的改进,并增加了新的功能。

主要包括:采用“增益比例”来选择分裂属性、对连续属性的处理、对样本属性值缺失情况的处理、规则的产生、交叉验证等。

1.用“增益比例”来选择分裂属性如前所述,ID3是采用“信息增益”来选择分裂属性的。

虽然这是一种有效地方法,但其具有明显的倾向性,即它倾向于选择具有大量不同取值的属性,从而产生许多小而纯的子集。

尤其是关系数据库中作为主键的属性,每个样本都有一个不同的取值。

如果以这样的属性作为分裂属性,那么将产生非常多的分支,而且每一个分支产生的子集的熵均为0(因为子集中只有一个样本!)。

显然,这样的决策树是没有实际意义的。

因此,Quinlan提出使用增益比例来代替信息增益。

2.连续属性的处理ID3最初的定义假设数据集的各属性都必须是离散的。

如果有连续属性,则可以采用划分区间的方法来离散化。

假如在前面的例子中,属性“年龄”由于是连续型属性,被划分为“<30”、“[30,50]”、“>50”3个区间,这样属性“年龄”的不同取值就只有3个了,这就是被离散化的过程。

相关文档
最新文档