基于决策树的数据挖掘-汽车评价分类的算法设计与实现

合集下载

数据挖掘分类算法总结-决策树

数据挖掘分类算法总结-决策树

数据挖掘分类算法总结-决策树预备知识:分类与回归区别:⽬标属性前者为离散,后者为连续(回归树将两者进⾏结合,在叶节点建⽴回归模型,⽤于预测,(具体再看⼀下))分类的⽬的:通过学习得到⼀个⽬标函数,将属性集X映射到分类编号Y分类模型的应⽤:描述性建模,作为解释性的⼯具;预测性建模,⽤于预测未知记录的类编号分类技术的局限性:1)仅适合预测⼆元或标称类型的数据集,对于序数分类(有等级划分(低、中、⾼))不太有效,由于分类技术不考虑隐藏在⽬标类中的序列关系分类算法:决策树、基于规则分类、神经⽹络、⽀持向量机、朴素贝叶斯⼀、决策树ID3、ID4.5、CART包括的内容:决策树的建⽴,决策树的过度拟合,决策树的选择(1)决策树的建⽴决策树⼯作原理:根节点、内部节点(⾮终结点)、叶节点(终结点)决策树算法:Hunt(贪⼼策略),局部最优决策树归纳的设计问题: 1)如何分裂训练记录 提供为不同类型的属性指定测试条件的⽅法 2)如何停⽌分裂 1.所以的记录属于同⼀类 2.所有的记录具有相同的属性值 3.某节点的样本数据个数⼩于预定的阈值 4.估计泛化误差的改进⼩于预定的阈值等分裂训练数据:选择最佳划分的度量(依据为不纯度) 不纯度度量: Entropy(t) 熵;Gini(t) 基尼指标;Classification error(t) 误差在p=0.5时取得最⼤值,在p=0或1时取得最⼩值 确定测试条件的效果: 增益=⽗节点的不出度-⼦节点加权不纯度 增益越⼤,效果越好;熵的差即为所谓的信息增益 在连续属性的划分中,并不是为所有的候选扫描⼀遍数据集,⼀般为先将数据集进⾏排序,选择两值之间的中间值作为候选值,⼀般也会选择有类型变化的候选值 遇到的问题:由于不纯度度量指标倾向于选择具有⼤量不同值的属性,但并不希望模型输出⼤量的记录,故将模型不同类型采取不同的解决⽅法: ID4.5选择信息增益率,修改评估划分标准,将属性测试条件产⽣的输出数⽬考虑进去 CART则仅采取⼆元划分,不采⽤多元划分;(2)决策树的过度拟合(模型过度拟合将造成模型的训练误差较低,⽽相对的泛化误差将较⾼)模型的过度拟合原因:1. 噪声导致的过分拟合2. 缺乏代表性样本导致的过分拟合3. 实际操作为多重⽐较过程(不太明⽩)过度拟合的处理:1)先剪枝不纯度度量的增益、估计的泛化误差的改进⼩于预设的阈值2)后剪枝(3)决策树的选择:(应选取泛化误差较⼩的决策树模型)泛化误差的估计:(计算泛化误差)1. 使⽤再带⼊估计,训练误差作为泛化误差的估计(这是⼀种很差的估计)2. 结合模型复杂度,悲观误差评估,使⽤训练误差和模型复杂度罚项(结点多惩罚就⼤)3. 最⼩描述长度原则(不太明⽩)4. 估计统计上界计算训练误差的上界5. 使⽤确认集(K折交叉验证)评估分类器的性能:(泛化误差的差距在统计上是否显著的判断)1)保持⽅法:⼀部分为训练集,另⼀部分为检验集缺点:1.模型未⽤到全部的数据 2.两个集合来源于同⼀数据集,在⼦集中超出⽐例的类在另⼀个⼦集中必然低于2)随机⼆次抽样(不太明⽩)3)交叉验证4)⾃助法⽐较分类器的⽅法:1)估计准确度的置信区间(为⼆项式的实验)2)⽐较两模型的性能错误率做差,看是否统计上显著不为0(两个模型的数据集可能不相同)3)⽐较两分类法的性能,数据集是相同的决策树归纳的特点:1)不能很好的推⼴到谋写特定的布尔问题,如奇偶数2)冗余属性不会产⽣较⼤的影响,但是不相关属性将产⽣较⼤的影响,如若不相关属性被选中将造成决策树过⼤3)测试条件设计单个属性,故决策边界为直线;针对此问题可采⽤斜决策树(允许测试条件涉及多个属性)或构造归纳(已有属性的算术或逻辑组合)zY9RJ35bB4的区别以下内容引⾃/taigw/article/details/44840771决策树是中⾮常经典的⼀类学习,它通过树的结构,利⽤树的分⽀来表⽰对样本特征的判断规则,从树的叶⼦节点所包含的训练样本中得到预测值。

基于决策树算法的数据挖掘与预测

基于决策树算法的数据挖掘与预测

基于决策树算法的数据挖掘与预测数据挖掘是一种从大量数据中提取有用信息和模式的过程。

决策树算法是数据挖掘中常用的算法之一,它通过将数据集划分为不同的子集,从而建立起一棵树形结构,以便进行决策和分类。

决策树算法的核心思想是在每个节点处选择一个最佳的划分策略,使得划分后的子集尽可能地纯净。

纯净度一般通过信息增益、基尼系数或者其他指标来衡量。

在构建完决策树后,我们可以使用树的结构进行数据分类、预测和分析。

数据挖掘的过程主要包括数据预处理、特征选择、模型构建和模型评估等步骤。

在使用决策树算法进行数据挖掘时,首先我们需要对原始数据进行预处理,包括数据清洗、缺失值处理和异常值处理等。

接下来,我们需要选择合适的特征来构建决策树模型,通常会使用特征选择算法来挑选出最关键的特征。

然后,基于已选择的特征,我们使用决策树算法来构建模型。

最后,我们需要对构建的模型进行评估,以检验其在未知数据上的预测准确性。

决策树算法在数据挖掘和预测中有着广泛的应用。

它可以用于分类问题,例如通过判断患者的症状来预测其所患疾病。

此外,决策树算法还可以用于回归问题,例如基于已有历史数据预测未来的销售额。

决策树算法的优点在于生成的模型易于理解和解释,能够处理各种数据类型,包括数值型和离散型数据,同时也能够处理多分类和多标签问题。

然而,决策树算法也存在一些局限性。

例如,它对于处理高维数据和处理数据中的噪声比较困难。

此外,决策树算法容易出现过拟合问题,导致模型在未知数据上的预测性能不佳。

为了克服这些问题,可以考虑使用集成学习方法,如随机森林和梯度提升树,来进一步提高模型的准确性和稳定性。

在实际应用中,决策树算法通常会和其他数据挖掘算法和技术相结合,以构建更强大和准确的预测模型。

例如,可以将决策树与聚类算法结合,对数据进行聚类后再进行决策树构建,以提高模型的预测效果。

此外,还可以使用交叉验证等方法进行模型评估和选择,以保证模型的泛化能力。

总之,基于决策树算法的数据挖掘与预测是一种强大的工具和方法,可以帮助我们从大量的数据中发现有用的信息,并进行准确的预测和决策。

决策树数据挖掘算法

决策树数据挖掘算法

决策树数据挖掘算法一、什么是决策树算法?决策树算法是一种基于树形结构的数据挖掘算法,它通过将数据集划分成不同的子集来构建一个树形模型,以实现对数据的分类或预测。

决策树算法的优点在于易于理解和解释,并且可以处理具有高度非线性关系的复杂数据集。

二、决策树算法的原理1. 决策树的定义决策树是一种基于树形结构的分类模型,它由节点和边组成。

节点表示一个特征或属性,边表示该属性可能取值之间的关系。

2. 决策树算法流程(1)选择最佳特征作为当前节点;(2)将训练集按照该特征进行划分,并创建子节点;(3)对每个子节点递归执行步骤(1)和(2),直到所有叶子节点都为同一类别或无法再划分为止。

3. 决策树算法中用到的概念(1)信息熵:表示数据集纯度或不确定性的度量,计算公式为:$H=-\sum_{i=1}^{n}p_i\log_2p_i$,其中 $p_i$ 表示第 $i$ 个类别在数据集中的占比。

(2)信息增益:表示特征对数据集纯度的提升程度,计算公式为:$IG(D,A)=H(D)-H(D|A)$,其中 $D$ 表示原始数据集,$A$ 表示某个特征。

(3)基尼指数:表示数据集纯度或不确定性的度量,计算公式为:$Gini(D)=\sum_{k=1}^{|\mathcal{Y}|}\sum_{k'\neqk}p_kp_{k'}=1-\sum_{k=1}^{|\mathcal{Y}|}p_k^2$,其中$\mathcal{Y}$ 表示类别集合。

(4)基尼增益:表示特征对数据集纯度的提升程度,计算公式为:$GINI(D,A)=Gini(D)-\sum_{v=1}^{V}\frac{|D^v|}{|D|}Gini(D^v)$,其中 $V$ 表示特征 $A$ 取值的个数,$D^v$ 表示特征 $A=v$ 的样本子集。

三、决策树算法的优缺点1. 优点(1)易于理解和解释;(2)能够处理具有高度非线性关系的复杂数据集;(3)能够同时处理离散型和连续型变量;(4)能够处理多分类问题。

决策树算法及其在数据挖掘中的应用

决策树算法及其在数据挖掘中的应用

决策树算法及其在数据挖掘中的应用决策树算法即是一种基于树形结构的分类算法,它是数据挖掘中应用最为广泛的一种算法之一。

决策树算法可以使用对数据进行分类和预测,其基础原理是利用已有的数据集合来构建树形结构,通过一系列判断和分支,将数据集合不断细分,从而得到越来越精准的分类结果。

一、决策树算法的原理决策树算法是基于树形结构的分类算法,其中每个节点代表某个属性特征,而每个属性特征可以分为多个取值,通过一系列判断和分支操作,可以将数据集合不断细分,得到更加精准的分类结果。

具体而言,决策树的构建过程包含以下几步:1.选取切分属性:在所有属性中选择一个最佳属性作为切分属性,使得每个属性对应的集合能够得到最大的分类区分度。

2.设定切分点:在切分属性下,确定一个区间范围,将对应的数据划分为两个子树。

3.递归构建决策树:对于每个子树,不断重复以上步骤,直到每个叶子节点都对应着一个明确的输出结果。

通过这一系列的步骤,决策树算法可以构建出一个大型的树形结构,每个节点都代表某个属性特征,从而可以对任何未知数据进行分类和预测。

另外,决策树算法还有多种衍生形式,如随机森林、梯度提升树等,这些算法都是基于决策树算法的改进和扩展。

二、决策树算法的优点和局限性决策树算法作为数据挖掘中最为常见的算法之一,其具有以下优点:1.易于理解和解释:由于决策树算法的结果是一个树形结构,人们可以很容易地理解和解释这个结果。

2.高效性:决策树算法的时间复杂度较低,对于大量数据集,其处理效率较高。

3.可处理各种类型的数据:决策树算法不需要对数据进行标准化和归一化,可以直接处理各种类型的数据。

不过,决策树算法也具有以下几个局限性:1.容易过度拟合:由于决策树算法会优先选取对数据区分度最大的切分属性,因此容易在处理噪声或者不规则数据时过度拟合,导致误差较大。

2.对缺失数据敏感:如果数据集中存在较多的缺失数据,决策树算法可能难以正确处理这些数据,从而导致分类结果出现误差。

数据挖掘中的决策树算法详解

数据挖掘中的决策树算法详解

数据挖掘中的决策树算法详解数据挖掘是一门利用统计学、机器学习和数据库技术等方法,从大规模数据中发现模式和规律的领域。

决策树算法是数据挖掘中最常用的一种算法之一,它通过构建一棵树状结构,将数据集划分为不同的子集,从而实现对数据的分类和预测。

决策树算法的基本原理是将数据集划分为多个子集,每个子集对应于一个特征的取值。

在构建决策树时,需要选择一个最优的特征作为划分依据,使得划分后的子集尽可能地“纯净”。

纯净度可以用信息增益或基尼指数来衡量。

信息增益是指在划分前后,数据集的熵减少的程度,而基尼指数则是指数据集中某个类别的不确定性。

决策树的构建过程可以通过递归的方式来实现。

首先,选择一个最优的特征作为根节点,将数据集划分为多个子集。

然后,对每个子集递归地构建子树,直到达到停止条件。

停止条件可以是数据集为空,或者数据集中的样本属于同一类别,或者特征集为空。

决策树算法的优点之一是易于理解和解释。

由于决策树可以直观地表示出数据集的划分过程,因此可以方便地解释模型的决策依据。

此外,决策树算法还可以处理多类别问题,而且对于缺失数据和异常值也有较好的鲁棒性。

然而,决策树算法也存在一些缺点。

首先,决策树容易过拟合。

当决策树过于复杂时,容易将训练集中的噪声和异常值当作规律进行学习,从而导致模型的泛化能力下降。

为了解决过拟合问题,可以通过剪枝等方法进行模型的优化。

其次,决策树算法对于连续型数据和高维数据的处理相对较弱。

在处理连续型数据时,需要将其离散化,而在处理高维数据时,决策树的划分过程容易变得复杂和不稳定。

为了克服决策树算法的缺点,研究人员提出了许多改进和扩展的方法。

例如,随机森林是一种基于决策树的集成学习算法,它通过随机选择特征和样本,构建多棵决策树,并通过投票或取平均值的方式进行预测。

另一个例子是梯度提升决策树,它通过迭代地训练决策树,每次训练时都尝试减少前一棵决策树的残差,从而逐步提升模型的性能。

在实际应用中,决策树算法被广泛应用于各个领域。

数据挖掘的分类算法

数据挖掘的分类算法

数据挖掘的分类算法在当前数字化时代,随着数据量的不断增加,人们如何从大量的数据中提取有用信息变得尤为重要。

数据挖掘作为一种有效的技术手段,被广泛应用于各个领域,例如商业决策、金融风险预测、医疗诊断等。

而数据挖掘的分类算法则是数据挖掘过程中的重要环节之一。

本文将对数据挖掘的分类算法进行详细探讨。

一、决策树算法决策树是一种直观且易于理解的分类算法,其通过构建一棵树形结构来对数据进行分类。

决策树算法可以根据不同的衡量指标,如信息增益、基尼指数等,选择最佳的切分属性,并递归地生成子树。

决策树算法的优点是可解释性强,能够直观地展示特征之间的关系。

然而,决策树容易产生过拟合问题,需要采用剪枝等方法进行优化。

二、朴素贝叶斯算法朴素贝叶斯算法是一种基于贝叶斯定理的分类算法,其假设特征之间相互独立。

朴素贝叶斯算法通过计算后验概率来进行分类,具有较快的训练速度和较好的扩展性。

该算法在文本分类、垃圾邮件过滤等领域有着广泛的应用。

然而,朴素贝叶斯算法忽略了特征之间的相关性,对于某些复杂的问题可能表现不佳。

三、支持向量机算法支持向量机算法是一种经典的分类算法,其通过构造一个最优的超平面来实现数据的分类。

支持向量机算法基于结构风险最小化原则,通过间隔最大化的方式找到分类的最佳边界。

支持向量机算法具有较好的泛化能力和抗噪声能力,适用于小样本和非线性分类问题。

然而,支持向量机算法的训练时间较长,在处理大规模数据时效率较低。

四、K近邻算法K近邻算法是一种基于实例的分类算法,其通过度量不同样本之间的距离来进行分类。

K近邻算法的基本思想是:对于一个新的样本,通过找到K个距离最近的已知样本,根据这K个样本的分类来判断新样本的分类。

K近邻算法简单易懂,适用于多类别和非线性分类问题。

然而,K近邻算法对于样本数量的变化比较敏感,需要对数据进行预处理以保证分类结果的准确性。

五、人工神经网络算法人工神经网络算法是一种模拟人脑神经元结构和功能的分类算法。

CART决策树算法原理与实现

CART决策树算法原理与实现

CART决策树算法原理与实现CART决策树算法是一种常用的数据挖掘算法,其主要用途是在数据集中发现有用的结构和规律,并预测未来的趋势。

本文将从算法原理、实现细节和案例分析三个方面着手,深入探讨CART决策树算法的应用。

一、算法原理CART决策树算法主要包括建立树、剪枝两个过程。

建立树是通过递归的方式,分裂数据集直到所有叶子节点中的数据都属于同一个类别,剪枝则是为了避免过度拟合。

在建立树的过程中,我们需要选择合适的特征进行分裂。

在CART算法中,我们采用基尼指数来度量分裂后的节点的纯度。

基尼指数越小,则纯度越高。

若数据集包含类别A和B,则基尼指数的计算公式为:gini(p) = 1 - (Pa^2 + Pb^2)其中,Pa为类别A出现的概率,Pb为类别B出现的概率。

通过计算特征A的基尼指数,我们可以得到每个特征的重要性,从而选取重要性最高的特征进行分裂。

剪枝是为了避免过度拟合而进行的操作。

在建立树的过程中,我们可能会为每个节点都加入新的叶子节点,从而使得模型过于复杂,导致不好的泛化性能。

因此,我们需要通过减少叶子节点的数量来降低模型的复杂度。

在剪枝过程中,我们通常采用后剪枝的方式。

具体来说,我们将树分为训练集和验证集两部分,利用验证集来评估树的泛化性能,并在需要的时候把一些节点剪枝掉。

二、实现细节CART算法的实现过程中,需要注意以下几个细节:(1)特征选择特征选择是CART算法的关键所在。

在特征选择中,我们通常采用三种度量方法:基尼指数、信息增益和信息增益比。

其中,基尼指数是CART算法中常用的度量方法。

基尼指数越小,说明分裂后的节点越纯净。

因此,在特征选择中,我们会优先选择基尼指数较小的特征进行分裂。

(2)分类问题与回归问题CART算法可以用于分类问题和回归问题。

在分类问题中,我们将数据集分为训练集和测试集,并利用测试集来评估模型的泛化性能。

在回归问题中,我们用均方误差(MSE)来度量模型的拟合程度。

数据挖掘中决策树分类算法的研究

数据挖掘中决策树分类算法的研究

数据挖掘中决策树分类算法的研究决策树分类算法的研究主要包括决策树的构建算法、决策树的剪枝策略、决策树的优化算法等方面。

决策树的构建算法是决策树分类算法的核心部分。

常见的构建算法包括ID3、C4.5、CART等。

ID3算法是最早出现的决策树构建算法,它以信息增益作为划分的准则,每次选择信息增益最大的属性作为划分标准。

C4.5算法是ID3算法的改进版本,它引入了信息增益比来解决ID3算法的偏向问题。

CART算法是一种基于基尼系数的决策树构建算法,它在二分法的基础上构建了多叉树结构。

这些构建算法在处理不同类型的数据时具有不同的优势,需要根据具体情况选择合适的算法。

决策树的剪枝策略是为了避免决策树过拟合而进行的一种策略。

剪枝策略通常分为预剪枝和后剪枝两种。

预剪枝是在构建决策树的过程中进行剪枝操作,比如限制树的最大深度、设置节点的最小样本数等。

预剪枝可以有效地减少决策树的过拟合风险,但有时候也会导致欠拟合的问题。

后剪枝是在构建完成后,通过剪去一些节点来减小决策树的复杂度。

后剪枝能够更好地保持决策树的准确性,但会增加剪枝的计算量。

决策树的优化算法是为了改善决策树分类算法的性能而进行的一种算法优化。

常见的优化算法包括随机森林、AdaBoost等。

随机森林是一种基于决策树的集成学习算法,通过构建多棵决策树来提高模型的鲁棒性和泛化能力。

AdaBoost是一种加权的决策树算法,通过不断调整训练样本的权重来提高模型对于困难样本的分类能力。

总之,决策树分类算法是数据挖掘中重要的分类算法之一,具有广泛的研究和应用价值。

未来的研究可以从决策树的构建算法、剪枝策略、优化算法等多个角度进行深入研究,以进一步提升决策树分类算法的性能和适用性。

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

基于决策树的数据挖掘 ——汽车评价分类的算法设计与实现

1 决策树技术面临的挑战及目前研究方向 随着数据挖掘技术的兴起,作为拟人决策主要方法之一,近年来决策树又重新引起了人们的兴趣,并得到更广泛的应用。目前决策树技术的主要研究方向有以下几点: 1.1决策树技术与其他技术的结合 如何将决策树技术和其他新兴的技术相结合以便取长补短一直是决策树技术研究的热点,近几年来国际上发表的有关决策树的文章也大多集中在这个方面的研究。近年关于决策树和其他技术的研究主要包括: 1.1.1决策树技术和神经网络技术相结合[1][2]。 人工神经网络的多层结构使它具有对任意输入输出进行映射的功能。同样,决策树也具有产生 维空间下任意复杂的决策边界的功能。因此,可以将决策树重新构造成一个多层的神经网络。这种由决策树转化而成的神经网络具有加快神经网络训练速度等优点。另外一类方法正好相反,它研究的是由神经网络中得到所需要的决策树。这类方法解决了由神经网络得到的知识难于被人们理解的缺点。 1.1.2决策树技术和模糊集合原理的结合 决策树技术虽然有许多优点,但也存在着不稳定的缺点,即决策树带来了较大的变动。模糊集合的融通性使人们利用模糊逻辑来解决决策树的这一缺点并取得了不错的效果。最近,C.Olaru提出了一种新的模糊决策树方法-软决策树[3]。软决策树综合决策树的生成和修剪来决定其本身的结构,并利用重修(Refitting)和磨合(Backfitting)来提高树的归纳能力。软决策树比一般决策树的正确率要高。此外,M. Dong等人提出的基于前瞻(Look-Ahead)的模糊决策树也能够在得到较好的归纳特性的前提下产生较小体积的决策树[4]。 1.1.3决策树技术和进化算法,遗传算法及遗传编程的结合[5][6][7][8][9]。 基于进化算法的决策树系统具有较好的抗噪声能力,同时进化算法很容易在并行计算机上运行,因此可以期待基于进化算法的决策树的运算能力有较大的提高。此外,由于进化算法为随机算法,它可以在任何时候对同一数据集合产生不同的决策树,通过利用投票 (Vote) 的方法可以得到理想的分类器。因为总体分类器比单个分类器的错误率低,所以基于进化算法的决策树在减小错误率方面也有优势。同样,将决策树运用于进化计算也能够提高进化算法的性能。例如,利用决策树为进化算法播种具有较好质量的初始种群能提高进化算法的搜索能力并缩短运行时间。 将遗传算法用于分类和概念学习任务比较常见,但真正将它作为一种发展决策树的实用工具的研究还比较少。A. Papagelis 等将遗传算法直接用于产生决策树。与一般遗传算法采用二进制串的形式不同,他们采用了二进制树结构来进行问题表示。当无关属性或比较强的条件相关属性存在时,遗传算法比其他的贪婪启发方式(Greedy Heuristics)具有优势。D. R. Carvalho提出了一个混合决策树和遗传算法的算法,一定程度地解决了低训练数据易于产生错误的规则的缺点。需要注意的是,遗传算法和决策树结合的缺点是计算量较大。将遗传编程用于决策树可以改进标准贪婪决策树归纳算法的一些局限性。遗传编程种群中的每个个体都可以是一个决策树。遗传编程中使用的函数是决策树的特性以及遗传编程中的终结集(Terminal Set)。利用遗传编程构造决策树可以取得比较好的效果,特别是发现小数据量下的最优决策树。 1.1.4决策树技术和多智能体的结合 将决策树用于多智能体控制并不多见。但正由于多智能体系统的复杂性,而机器学习有潜力提供一个鲁棒性较强的机制来有效协调各智能体间的行为,因此对多智能体结合机器学习是一个很有前途的方向。近几年P. Stone 和 M. Veloso 发表了一些这方面的文章[10][11][12]。他们提出了基于决策树 C4.5 算法中置信度(Confidence Factor)下的多智能体

控制,并将此应用于机器人足球控制。 1.2寻找新的构造决策树的方法 自从 Quinlan提出 ID3和 C4.5 方法后,有不少专家提出了其他构造决策树的方法,如由 Brieman 等人提出的CART 方法和由 Kass 提出的 CHAID 方法。最近,M. Ankerst等提出了基于多维可视化下的交互式的决策树构造[13]。此方法在决策树构造阶段加入了专家知识,这样便于用户更深地理解产生决策树的数据及最终产生的决策树。同时此方法也显著地减小了决策树的大小。在 M. Ankerst 等提出的方法中,他们主要用两类进化算法替代了传统的贪婪搜索算法以实现数值属性的任意分割。 1.3寻找更好的简化决策树的方法 简化决策树的研究工作主要有两个方面,一是对比各种不同的简化决策树方法,分析它们各自的特性、优点和缺点。另外一个就是寻找更好的与传统方法不同的简化决策树的方法,这一直是决策树技术研究的一个热点。近年来,针对不同的应用领域并且随着其他新技术的加入,陆续有这方面的文章发表。例如,D. Founrnier等提出的一种新的修剪决策树的方法-DI 修剪法[14]。此方法针对数据不确定的情况,利用特性索引(Quality Index)来权衡处理决策树深度和节点杂质。DI-修剪法将保持那些虽不能减小错误率但能指出一些特殊性质的群体的子树。D. Founrnier等认为这对于研究不确定数据是非常关键的。 1.4研究产生决策树的训练和检验数据的大小及特性与决策树特性之间的关系 与上述简化决策树不同,这类研究着眼于产生决策树的数据。训练数据的增加经常造成决策树大小的线性增加,而这种增加并没有都带来决策树准确性的提高。一些专家认为,在产生决策树前尽量减少数据量比在决策树产生后再简化决策树更加有效。实际上,这就是经常提起的数据预处理技术(Data Preprocessing),与决策树修剪技术(Pruning)相对应,也称它为数据减少技术 (Data Reduction Techniques)。近几年,有关这方面的研究取得了一些进展[15][16][17]。 1.5不确定环境下决策树研究 不确定环境下的决策研究一直是一个热点,决策树技术就是其中一个重要的方法之一。前面介绍的决策树技术与模糊集合原理的结合就是一个不错的选择。此外,Z. Eloudi等人提出了一种基于置信度函数的决策树[18]。此算法利用置信度函数原理来代表分类问题中的参数不确定性,在不确定环境下决策树构造和不确定环境下的分类均取得了比较好的效果。目前正在进行决策树与专家系统相结合的研究,以便在不确定环境下更好地决策。 1.6决策树技术中时间复杂度与准确性之间的矛盾 决策树技术与神经网络技术相比所具有的最大优点就是训练决策树的时间远远低于训练神经网络的时间。决策树技术中如何处理时间复杂度和分类准确性之间的矛盾是一个令人感兴趣的问题。到底如何取舍需要具体问题具体分析。例如,0.Taner等人提出的全变量决策树 (0mnivariate Decision Tree)[19]。在分类正确性方面超过了其他决策树方法,却付出了需要更多训练时间的代价。随着微处理器速度越来越快、价钱越来越便宜,以及并行计算的运用,使人们在做决定时拥有比以前更大的自由。 1.7决策树技术的软件实现 将决策树技术软件化一直是决策树技术的方向之一。目前市场上的大多数据挖掘软件如 SAS 等都包含有决策树技术部分。如何开发出功能更加强大、使用更加方便、界面更加友好的软件以实现决策树技术,一直是大家努力的方向。以上这些决策树的研究并不是孤立的,它们经常相互联系、相互结合。

2 决策树算法实例 在汽车评价分类的数据库中给汽车定义了6个属性: (1) 购买价格buying,该属性取值有4种,分别为vhigh、high、med和low (2) 保养维护费用maint,该属性取值有4种,分别为vhigh、high、med和low (3) 车门数量doors,该属性取值有4种,分别为2、3、4和5more (4) 载人数量persons,该属性取值有3种,分别为2、4和more (5) 行李箱容量lug_boot,该属性取值有3种,分别为small、med和big (6) 安全性safety,该属性取值有4种,分别为low、med和high 本文采用了完整涵盖6个属性所有1728(4*4*4*3*3*4)种取值组合的数据库,根据每辆汽车各个属性的取值组合,消费者对汽车给出4种评价,分别为unacc、acc、good和vgood。数据库来源:http://archive.ics.uci.edu/ml/datasets/Car+Evaluation

2.1 CLS算法逻辑与实现 用CLS算法生成决策树首先要确定6个属性的先后顺序,即决策树每层需要对哪种属性进行取值分类和判断。如下图所示,程序使用者在运行算法之前可以在下拉列表中选择决策树前2层的属性,其余4种属性将按照数据库中从左至右的默认顺序依次作为决策树之后4层的属性。

下图即为选择persons和safety作为前2层属性时6个属性的排列顺序:

附录1的代码为生成决策树的主要过程,首先将所有汽车按照第1层属性的取值进行分类,例如按上图顺序按persons分为3类(2、4和more)。然后依次进行判断每类汽车的消费者评价是否一致,若一致则在该类下生成叶子结点,例如persons取值为2的汽车均被评价为unacc,于是生成如下图所示的叶子结点:

若该类汽车的消费者评价不一致,则进入决策树第2层的生成过程,将该类汽车按照第2层属性的取值继续细分,例如persons取值为4的汽车没有一致的消费者评价,于是按safety继续细分为3类(low、med和high)依次进行判断,如下图所示:

相关文档
最新文档