决策树算法实例是按什么来进行分类的

您所在位置: &
&nbsp&&nbsp&nbsp&&nbsp
决策树分类算法其应用.pdf51页
本文档一共被下载:
次 ,您可全文免费在线阅读后下载本文档。
文档加载中...广告还剩秒
需要金币:180 &&
决策树分类算法其应用
你可能关注的文档:
··········
··········
要 随着企业信息化建设,数据仓库和决策支持系统技术在企业中得到了空前的应用。
如何将决策支持系统中的数据挖掘方法应用到企业中成为了研究的重点。 论文主要是围绕数据挖掘分类算法中的决策树算法的关键技术展开研究的。 本文首先对决策树分类算法做了一个综述。对典型的决策树分类算法的主要特性,
优缺点,适用范围,目前的改进状况,决策树算法的应用和展望进行了简要的概述。 随着数据处理技术的飞速发展,需要处理的数据规模越来越大,已经从最初的小型
数据库发展到现在大型数据库,数据仓库等。这时有效性、正确性和空间性就成为了数
据挖掘中主要考虑的特性。在对典型决策树分类算法的研究后,将抽样技术引入到决策
树算法C4.5中,使得这种对小数据集有效的算法也能在给定大数据集的情况下挖掘出
有一定正确性的分类规则。选择UCI机器学习库的标准数据库为数据源,使用改进的基
于抽样的决策树C4.5算法进行分类规则的挖掘。试验表明该方法能在获得满意的正确
性的情况下显著的提高数据挖掘的效率。 紧接着结合一个钢铁企业的应用背景,将改进的算法应用在了两个大的方面:钢铁
企业生产成本关键工序分析和钢铁企业亏损品种分析。第一个应用以工艺路线为切入
点,结合钢铁企业的成本分析项目,对生产成本关键工序进行数据仓库建模。采用改进
的基于抽样技术的决策树C4.5算法对海量数据进行挖掘,挖掘出工艺路线中的关键工
序,影响钢铁企业成本的分类规则。第二个应用结合钢铁企业的销售亏损品种分析项目,
对亏损品种分析进行数据仓库建模,挖掘出钢铁企业亏损品种分析的关键影响因素。两
正在加载中,请稍后...机器学习常见算法分类汇总
机器学习无疑是当前数据分析领域的一个热点内容。很多人在平时的工作中都或多或少会用到机器学习的算法。这里IT经理网为您总结一下常见的机器学习算法,以供您在工作和学习中参考。
机器学习的算法很多。很多时候困惑人们都是,很多算法是一类算法,而有些算法又是从其他算法中延伸出来的。这里,我们从两个方面来给大家介绍,第一个方面是学习的方式,第二个方面是算法的类似性。
根据数据类型的不同,对一个问题的建模有不同的方式。在机器学习或者人工智能领域,人们首先会考虑算法的学习方式。在机器学习领域,有几种主要的学习方式。将算法按照学习方式分类是一个不错的想法,这样可以让人们在建模和算法选择的时候考虑能根据输入数据来选择最合适的算法来获得最好的结果。
监督式学习:
在监督式学习下,输入数据被称为“训练数据”,每组训练数据有一个明确的标识或结果,如对防垃圾邮件系统中“垃圾邮件”“非垃圾邮件”,对手写数字识别中的“1“,”2“,”3“,”4“等。在建立预测模型的时候,监督式学习建立一个学习过程,将预测结果与“训练数据”的实际结果进行比较,不断的调整预测模型,直到模型的预测结果达到一个预期的准确率。监督式学习的常见应用场景如分类问题和回归问题。常见算法有逻辑回归(Logistic Regression)和反向传递神经网络(Back Propagation Neural Network)
非监督式学习:
在非监督式学习中,数据并不被特别标识,学习模型是为了推断出数据的一些内在结构。常见的应用场景包括关联规则的学习以及聚类等。常见算法包括Apriori算法以及k-Means算法。
半监督式学习:
在此学习方式下,输入数据部分被标识,部分没有被标识,这种学习模型可以用来进行预测,但是模型首先需要学习数据的内在结构以便合理的组织数据来进行预测。应用场景包括分类和回归,算法包括一些对常用监督式学习算法的延伸,这些算法首先试图对未标识数据进行建模,在此基础上再对标识的数据进行预测。如图论推理算法(Graph Inference)或者拉普拉斯支持向量机(Laplacian SVM.)等。
强化学习:
在这种学习模式下,输入数据作为对模型的反馈,不像监督模型那样,输入数据仅仅是作为一个检查模型对错的方式,在强化学习下,输入数据直接反馈到模型,模型必须对此立刻作出调整。常见的应用场景包括动态系统以及机器人控制等。常见算法包括Q-Learning以及时间差学习(Temporal difference learning)
在企业数据应用的场景下, 人们最常用的可能就是监督式学习和非监督式学习的模型。 在图像识别等领域,由于存在大量的非标识的数据和少量的可标识数据, 目前半监督式学习是一个很热的话题。 而强化学习更多的应用在机器人控制及其他需要进行系统控制的领域。
算法类似性
根据算法的功能和形式的类似性,我们可以把算法分类,比如说基于树的算法,基于神经网络的算法等等。当然,机器学习的范围非常庞大,有些算法很难明确归类到某一类。而对于有些分类来说,同一分类的算法可以针对不同类型的问题。这里,我们尽量把常用的算法按照最容易理解的方式进行分类。
回归算法:
回归算法是试图采用对误差的衡量来探索变量之间的关系的一类算法。回归算法是统计机器学习的利器。在机器学习领域,人们说起回归,有时候是指一类问题,有时候是指一类算法,这一点常常会使初学者有所困惑。常见的回归算法包括:最小二乘法(Ordinary Least Square),逻辑回归(Logistic Regression),逐步式回归(Stepwise Regression),多元自适应回归样条(Multivariate Adaptive Regression Splines)以及本地散点平滑估计(Locally Estimated Scatterplot Smoothing)
基于实例的算法
基于实例的算法常常用来对决策问题建立模型,这样的模型常常先选取一批样本数据,然后根据某些近似性把新数据与样本数据进行比较。通过这种方式来寻找最佳的匹配。因此,基于实例的算法常常也被称为“赢家通吃”学习或者“基于记忆的学习”。常见的算法包括 k-Nearest Neighbor(KNN), 学习矢量量化(Learning Vector Quantization, LVQ),以及自组织映射算法(Self-Organizing Map , SOM)
正则化方法
正则化方法是其他算法(通常是回归算法)的延伸,根据算法的复杂度对算法进行调整。正则化方法通常对简单模型予以奖励而对复杂算法予以惩罚。常见的算法包括:Ridge Regression, Least Absolute Shrinkage and Selection Operator(LASSO),以及弹性网络(Elastic Net)。
决策树学习
决策树算法根据数据的属性采用树状结构建立决策模型, 决策树模型常常用来解决分类和回归问题。常见的算法包括:分类及回归树(Classification And Regression Tree, CART), ID3 (Iterative Dichotomiser 3), C4.5, Chi-squared Automatic Interaction Detection(CHAID), Decision Stump, 随机森林(Random Forest), 多元自适应回归样条(MARS)以及梯度推进机(Gradient Boosting Machine, GBM)
贝叶斯方法
贝叶斯方法算法是基于贝叶斯定理的一类算法,主要用来解决分类和回归问题。常见算法包括:朴素贝叶斯算法,平均单依赖估计(Averaged One-Dependence Estimators, AODE),以及Bayesian Belief Network(BBN)。
基于核的算法
基于核的算法中最著名的莫过于支持向量机(SVM)了。 基于核的算法把输入数据映射到一个高阶的向量空间, 在这些高阶向量空间里, 有些分类或者回归问题能够更容易的解决。 常见的基于核的算法包括:支持向量机(Support Vector Machine, SVM), 径向基函数(Radial Basis Function ,RBF), 以及线性判别分析(Linear Discriminate Analysis ,LDA)等
聚类,就像回归一样,有时候人们描述的是一类问题,有时候描述的是一类算法。聚类算法通常按照中心点或者分层的方式对输入数据进行归并。所以的聚类算法都试图找到数据的内在结构,以便按照最大的共同点将数据进行归类。常见的聚类算法包括 k-Means算法以及期望最大化算法(Expectation Maximization, EM)。
关联规则学习
关联规则学习通过寻找最能够解释数据变量之间关系的规则,来找出大量多元数据集中有用的关联规则。常见算法包括 Apriori算法和Eclat算法等。
人工神经网络
人工神经网络算法模拟生物神经网络,是一类模式匹配算法。通常用于解决分类和回归问题。人工神经网络是机器学习的一个庞大的分支,有几百种不同的算法。(其中深度学习就是其中的一类算法,我们会单独讨论),重要的人工神经网络算法包括:感知器神经网络(Perceptron Neural Network), 反向传递(Back Propagation), Hopfield网络,自组织映射(Self-Organizing Map, SOM)。学习矢量量化(Learning Vector Quantization, LVQ)
深度学习算法是对人工神经网络的发展。 在近期赢得了很多关注, 特别是, 更是在国内引起了很多关注。
在计算能力变得日益廉价的今天,深度学习试图建立大得多也复杂得多的神经网络。很多深度学习的算法是半监督式学习算法,用来处理存在少量未标识数据的大数据集。常见的深度学习算法包括:受限波尔兹曼机(Restricted Boltzmann Machine, RBN), Deep Belief Networks(DBN),卷积网络(Convolutional Network), 堆栈式自动编码器(Stacked Auto-encoders)。
降低维度算法
像聚类算法一样,降低维度算法试图分析数据的内在结构,不过降低维度算法是以非监督学习的方式试图利用较少的信息来归纳或者解释数据。这类算法可以用于高维数据的可视化或者用来简化数据以便监督式学习使用。常见的算法包括:主成份分析(Principle Component Analysis, PCA),偏最小二乘回归(Partial Least Square Regression,PLS), Sammon映射,多维尺度(Multi-Dimensional Scaling, MDS),
投影追踪(Projection Pursuit)等。
集成算法:
集成算法用一些相对较弱的学习模型独立地就同样的样本进行训练,然后把结果整合起来进行整体预测。集成算法的主要难点在于究竟集成哪些独立的较弱的学习模型以及如何把学习结果整合起来。这是一类非常强大的算法,同时也非常流行。常见的算法包括:Boosting, Bootstrapped Aggregation(Bagging), AdaBoost,堆叠泛化(Stacked Generalization, Blending),梯度推进机(Gradient Boosting Machine, GBM),随机森林(Random Forest)。
第一时间获取面向IT决策者的独家深度资讯,敬请关注IT经理网微信号:ctociocom
&&&除非注明,本站文章均为原创或编译,转载请务必注明出处并保留: 文章来自
相关文章:
在TMT领域具有十余年的咨询和创业经验。 目前主要关注信息安全,同时密切关注云计算、社会化媒体、移动、企业2.0等领域的技术创新和商业价值。拥有美国麻省理工学院MBA学位和清华大学经济管理学院学士学位,曾任BDA中国公司高级顾问,服务过美国高通、英特尔、中国网通、SK电讯、及沃达丰等公司。联系邮件:
报告详细分析了FitBit智能手环的硬件、网络、APP、云服务四个攻击面的安全性和隐私保护问题,风风火火搞智能硬件的务必要抽空看下。
医疗大数据应用已经来到引爆点,可为美国节省数千亿美元医疗开支。
棱镜门事件以来,NSA的全球监控行为遭到各国政府和人民的谴责,但美国情报部门所展现的大数据和信息安全技术实力也成为各国政府甚至一流IT企业为之“艳羡”的对象。
《BYOD安全策略与工具指南》为企业的信息安全主管和CIO们提供了一个详尽而系统的移动安全策略框架。
Box、Accellion和Citrix三家公司获得了Gartner的最高评分,并被认为是最安全和成熟的“企业级”解决方案。这三家公司也代表着企业级文件分享与同步市场的最高水平。
最近VisionMobile发布的2013移动开发工具报告为我们揭示了移动开发平台和工具的流行趋势,以及不同开发策略的盈利模式等关键信息,对移动应用开发企业和从业人员有较高的参考价值。
经过对中国防雷业务 审核为期9个月的学习和研究,世界十大开源ERP开发商之一,法国开源软件企业Nexedi 开发了首个开源防雷业务电子政务管理平台。
Cray的这套系统将成为瑞典和斯堪地纳维亚地区首台千万亿次规模的超级计算机。瑞典研究人员和产业合作伙伴因此可以在气候模拟、流体动力学、神经科学、等离子物理、材料科学和分子模拟等领域进行复杂的模拟。
CRAY公司赢得了韩国国家气象局(KMA)一项价值5400万美元的合同,未来将为该机构提供两台新一代Cray(R) XC(TM) 超级计算机和一套Cray Sonexion(R) 存储系统。
作为为数不多的本土大数据创业企业,星图数据在互联网大数据领域已经耕耘了将近3年,自主研发出了一套适合中国企业的大数据应用服务产品。
在全球,面对急速增长的移动数据需求,4G LTE成为目前最领先的移动宽带解决方案,也是有史以来普及最快的无线通信技术。
&Copyright (C) 2011,ctocio.cc - IT经理网Microsoft 决策树算法技术参考
MSDN Library
Microsoft 决策树算法技术参考
适用对象:SQL Server 2016Microsoft 决策树算法是一种混合算法,它综合了多种不同的创建树的方法,并支持多种分析任务,包括回归、分类以及关联。 Microsoft 决策树算法支持对离散属性和连续属性进行建模。本主题说明此算法的实现,介绍如何针对不同的任务自定义算法行为,并提供指向有关决策树模型查询的其他信息的链接。Microsoft 决策树算法通过获取模型的近似后验分布,将 Bayesian 方法应用于学习因果交互模型。 有关此方法的详细说明,请参阅 Microsoft Research 站点上的文章 。用于评估学习所需的“先验知识”
的信息值的方法基于“可能性均等” 假定。 该假定认为数据对区分以不同方式表示同一条件独立断言的网络结构没有帮助。 先假定每个事例都有一个 Bayesian 先验网络和一个网络置信度的度量值。然后,算法会利用给定的当前定型数据,使用这些先验网络计算网络结构的相对“后验概率”
,并标识出具有最高后验概率的网络结构。Microsoft 决策树算法使用不同的方法来计算最佳的树。 所使用的方法具体取决于任务,任务可为线性回归、分类或关联分析。 一个模型可包含多个针对不同可预测属性的树。 而且,每个树可包含多个分支,具体取决于数据中包含的属性和值的数量。 特定模型中生成的树的形状和深度取决于所使用的计分方法以及其他参数。 参数更改还会影响节点的拆分位置。创建可能的输入值集时,Microsoft 决策树算法会执行 feature selection 来标识提供大部分信息的属性和值,而不会考虑非常少见的值。 该算法还会通过将值分组到“收集箱” 来创建值分组,这样的值分组可作为一个单元进行处理,从而使性能得到优化。树是通过确定输入和目标结果之间的相关性而生成的。 关联完所有属性后,算法会标识出最能完全分隔结果的属性。 最佳分隔点是通过使用计算信息获取分数的公式确定的。 信息获取分数最高的属性将用于将事例分为各个子集;然后,还会利用同一过程,以递归方式分析各子集,直至树无法拆分为止。用于计算信息获取分数的确切公式取决于创建算法时设置的参数、可预测列的数据类型以及输入的数据类型。如果可预测属性和输入都是离散的,则计算每个输入对应的结果数量只涉及创建一个矩阵并为矩阵中的每个单元生成分数。但是,如果可预测属性是离散的,而输入是连续的,则会自动离散化连续的输入列。 您可以接受默认值并让 Analysis Services 查找最佳收集箱数; 或者可以控制在其中,连续输入通过设置离散化的方式
属性。 有关详细信息,请参阅 。对于连续属性,该算法使用线性回归确定决策树的拆分位置。如果可预测属性为连续数值数据类型,则还会对输出应用功能选择,以减少可能的结果数量,并更快地生成模型。 您可以通过设置 MAXIMUM_OUTPUT_ATTRIBUTES 参数来更改功能选择的阈值,从而增加或减少可能值的数量。有关 Microsoft 决策树算法如何处理离散可预测列的详细说明,请参阅 。 有关详细信息,如何 Microsoft 决策树算法处理连续可预测列,请参阅的附录 。Microsoft 决策树算法提供了三种信息获取计分公式:Shannon 平均信息量、使用 K2 先验的 Bayesian 网络和使用先验统一 Dirichlet 分布的 Bayesian 网络。 这三种都是数据挖掘领域中已经确立的方法。 建议您利用不同的参数,分别试用这些方法,以确定哪种方法结果最佳。 有关这些计分方法的详细信息,请参阅 。所有 Analysis Services 数据挖掘算法都会自动使用功能选择来改善分析效果和减轻处理工作量。 用于功能选择的方法取决于生成模型所用的算法。 控制决策树模型的功能选择的算法参数为 MAXIMUM_INPUT_ATTRIBUTES 和 MAXIMUM_OUTPUT。Algorithm分析方法注释决策树兴趣性分数 Shannon 平均信息量 Bayesian with K2 Prior 使用统一先验的 Bayesian Dirichlet(默认)如果任何列包含非二进制连续值,则兴趣性分数将用于所有列,以确保一致性。 否则,将使用默认方法或指定的方法。线性回归兴趣性分数线形回归仅使用兴趣性分数,原因是它仅支持连续列。分类是一种重要的数据挖掘策略。 通常,分类事例所需的信息量同输入记录的数量成正比例增长。 这将会限制可进行分类的数据量。 Microsoft 决策树算法使用以下方法来解决这些问题、提高性能并消除内存限制:使用功能选择优化属性的选择。使用 Bayesian 计分控制树的增长。优化连续属性的收集。动态分组输入值以确定最重要的值。Microsoft 决策树算法高效快速且可伸缩,可轻松实现并行化,这意味着所有处理器均可协同工作,共同生成一个一致的模型。 这些特征使决策树分类器成为了理想的数据挖掘工具。如果性能约束比较严格,则您可以使用以下方法来缩短决策树模型定型过程中的处理时间。 如果使用这些方法,请注意:通过消除属性来改善处理性能将会使模型的结果发生变化,可能无法很好地显示总体情况。增大 COMPLEXITY_PENALTY 参数的值以限制树的增长。限制关联模型中的项数以限制生成的树的数量。增大 MINIMUM_SUPPORT 参数的值以避免过度拟合。将所有属性的离散值的数量限制为 10 或更小。 您可尝试以不同的方式,对不同模型中的值进行分组。 注意
您可以使用
SQL Server 2016 Integration Services (SSIS) 中提供的数据浏览工具,在进行数据挖掘之前,先对数据中的值的分布进行可视化处理,并对这些值进行适当地分组。 有关详细信息,请参阅 。 您还可以使用 , ,以浏览、 分组并重新标记在 Microsoft Excel 中的数据。Microsoft 决策树算法支持多个参数,这些参数可影响所生成的挖掘模型的性能和准确性。 您还可以对挖掘模型列或挖掘结构列设置建模标志来控制数据的处理方式。 注意
在所有版本的 SQL Server中均提供 Microsoft 决策树算法;但是,用于自定义 Microsoft 决策树算法行为的某些高级参数仅在 SQL Server的特定版本中提供。 有关的各版本支持的功能列表 SQL Server, ,请参阅
(/fwlink/?linkid=232473)。下表介绍了可用于 Microsoft 决策树算法的参数。COMPLEXITY_PENALTY
控制决策树的增长。 该值较低时,会增加拆分数;该值较高时,会减少拆分数。 默认值基于特定模型的属性数,详见以下列表:对于 1 到 9 个属性,默认值为 0.5。对于 10 到 99 个属性,默认值为 0.9。对于 100 或更多个属性,默认值为 0.99。FORCE_REGRESSOR
强制算法将指定的列用作回归量,而不考虑算法计算出的列的重要性。 此参数只用于预测连续属性的决策树。 注意
通过设置此参数,您可以强制要求算法尝试将属性用作回归量。 但是,属性实际是否会在最终模型中用作回归量取决于分析结果。 您可以通过查询模型内容来确定用作了回归量的列。[仅在某些版本的中可用 SQL Server ]MAXIMUM_INPUT_ATTRIBUTES
定义算法在调用功能选择之前可以处理的输入属性数。默认值为 255。如果将此值设置为 0,则表示关闭功能选择。[仅可用于某些版本的 SQL Server]MAXIMUM_OUTPUT_ATTRIBUTES
定义算法在调用功能选择之前可以处理的输出属性数。默认值为 255。如果将此值设置为 0,则表示关闭功能选择。[仅可用于某些版本的 SQL Server]MINIMUM_SUPPORT
确定在决策树中生成拆分所需的叶事例的最少数量。默认值为 10。如果数据集非常大,则可能需要增大此值,以避免过度定型。SCORE_METHOD
确定用于计算拆分分数的方法。 可用选项包括:ID名称1Entropy3Bayesian with K2 Prior4Bayesian Dirichlet Equivalent (BDE) with uniform prior (默认值)默认值为 4 或 BDE。有关这些计分方法的说明,请参阅 。SPLIT_METHOD
确定用于拆分节点的方法。 可用选项包括:ID名称1Binary: 指示无论属性值的实际数量是多少,树都拆分为两个分支。2Complete: 指示树可以创建与属性值数目相同的分叉。3Both: 指定 Analysis Services 可确定应使用 binary 还是 complete,以获得最佳结果。默认值为 3。Microsoft 决策树算法支持下列建模标志。 创建挖掘结构或挖掘模型时,定义建模标志以指定分析期间如何处理每列中的值。 有关详细信息,请参阅 。建模标志说明MODEL_EXISTENCE_ONLY表示列将被视为具有两个可能状态: Missing 和 Existing。 Null 表示缺失值。 适用于挖掘模型列。NOT NULL指示该列不能包含 Null。 如果 Analysis Services 在模型定型过程中遇到 Null 值,将会导致错误。 适用于挖掘结构列。即使不使用 Microsoft 线性回归算法,所有其输入和输出均为连续数值的决策树模型都可能会包含表示连续属性的回归的节点。您无需指定连续数值数据列表示回归量。 即使不对列设置 REGRESSOR 标志, Microsoft 决策树算法也会自动将列用作潜在回归量,并会将数据集分区成具有一定意义的模式的区域。您可以使用 FORCE_REGRESSOR 参数来确保算法将使用某一特定回归量。 此参数只可用于 Microsoft 决策树算法和 Microsoft 线性回归算法。 设置建模标志时,算法会尝试查找具有 a*C1 + b*C2 + ... 形式的回归公式,以拟合树中节点的模式。 将对剩余的总和进行计算,如果偏差过大,则在树中执行强制拆分。例如,如果要将 Income 用作属性来预测客户的购买行为,并对列设置 REGRESSOR 建模标志,则算法将会先通过使用标准回归公式来尝试拟合 Income 值。 如果偏差过大,则会放弃回归公式,并根据其他属性对树进行拆分。 拆分完毕后,决策树算法将尝试拟合每个分支中的 Income 的回归量。一个决策树模型必须包含一个键列、若干输入列和至少一个可预测列。Microsoft 决策树算法支持下表中列出的特定输入列和可预测列。 有关在用于挖掘模型中的内容类型的含义的详细信息,请参阅 。列内容类型输入属性Continuous、Cyclical、Discrete、Discretized、Key、Ordered 和 Table可预测属性Continuous、Cyclical、Discrete、Discretized、Ordered 和 Table 注意
支持 Cyclical 和 Ordered 内容类型,但算法会将它们视为离散值,不会进行特殊处理。
此页面有帮助吗?
更多反馈?
1500 个剩余字符
我们非常感谢您的反馈。
开发人员中心君,已阅读到文档的结尾了呢~~
决策树算法 决策树分类算法 决策树 画决策树 决策树模型 决策树分析 决策树例题 c4.5决策树 envi决策树分类 spss决策树分析
扫扫二维码,随身浏览文档
手机或平板扫扫即可继续访问
基本的决策树学习算法
举报该文档为侵权文档。
举报该文档含有违规或不良信息。
反馈该文档无法正常浏览。
举报该文档为重复文档。
推荐理由:
将文档分享至:
分享完整地址
文档地址:
粘贴到BBS或博客
flash地址:
支持嵌入FLASH地址的网站使用
html代码:
&embed src='/DocinViewer-4.swf' width='100%' height='600' type=application/x-shockwave-flash ALLOWFULLSCREEN='true' ALLOWSCRIPTACCESS='always'&&/embed&
450px*300px480px*400px650px*490px
支持嵌入HTML代码的网站使用
您的内容已经提交成功
您所提交的内容需要审核后才能发布,请您等待!
3秒自动关闭窗口决策树算法学习笔记
今天学习了决策树算法中的ID3、c4.5、CART算法,记录如下:
决策树算法:顾名思义,以二分类问题为例,即利用自变量构造一颗二叉树,将目标变量区分出来,所有决策树算法的关键点如下:
1.分裂属性的选择。即选择哪个自变量作为树叉,也就是在n个自变量中,优先选择哪个自变量进行分叉。而采用何种计算方式选择树叉,决定了决策树算法的类型,即ID3、c4.5、CART三种决策树算法选择树叉的方式是不一样的,后文详细描述。
2.树剪枝。即在构建树叉时,由于数据中的噪声和离群点,许多分支反映的是训练数据中的异常,而树剪枝则是处理这种过分拟合的数据问题,常用的剪枝方法为先剪枝和后剪枝。后文详细描述。
为了描述方便,本文采用评价电信服务保障中的满意度预警专题来解释决策树算法,即假如我家办了电信的宽带,有一天宽带不能上网了,于是我打电话给电信报修,然后电信派相关人员进行维修,修好以后电信的回访专员询问我对这次修理障碍的过程是否满意,我会给我对这次修理障碍给出相应评价,满意或者不满意。根据历史数据可以建立满意度预警模型,建模的目的就是为了预测哪些用户会给出不满意的评价。目标变量为二分类变量:满意(记为0)和不满意(记为1)。自变量为根据修理障碍过程产生的数据,如障碍类型、障碍原因、修障总时长、最近一个月发生故障的次数、最近一个月不满意次数等等。简单的数据如下:
故障原因和故障类型都为离散型变量,数字代表原因ID和类型ID。修障时长为连续型变量,单位为小时。满意度中1为不满意、0为满意。
下面沿着分裂属性的选择和树剪枝两条主线,去描述三种决策树算法构造满意度预警模型:
分裂属性的选择:即该选择故障原因、故障类型、修障时长三个变量中的哪个作为决策树的第一个分支。
ID3算法是采用信息增益来选择树叉,c4.5算法采用增益率,CART算法采用Gini指标。此外离散型变量和连续型变量在计算信息增益、增益率、Gini指标时会有些区别。详细描述如下:
1.ID3算法的信息增益:
&&&&&信息增益的思想来源于信息论的香农定理,ID3算法选择具有最高信息增益的自变量作为当前的树叉(树的分支),以满意度预警模型为例,模型有三个自变量:故障原因、故障类型、修障时长。分别计算三个自变量的信息增益,选取其中最大的信息增益作为树叉。信息增益=原信息需求-要按某个自变量划分所需要的信息。
如以自变量故障原因举例,故障原因的信息增益=原信息需求(即仅仅基于满意度类别比例的信息需求,记为a)-按照故障原因划分所需要的信息需求(记为a1)。
其中原信息需求a的计算方式为:
其中D为目标变量,此例中为满意度。m=2,即满意和不满意两种情况。Pi为满意度中属于分别属于满意和不满意的概率。此例中共计10条数据,满意5条,不满意5条。概率都为1/2。Info(满意度)即为仅仅基于满意和满意的类别比例进行划分所需要的信息需求,计算方式为:
按照故障原因划分所需要的信息需求(记为a1)可以表示为:
其中A表示目标变量D(即满意度)中按自变量A划分所需要的信息,即按故障类型进行划分所需要的信息。V表示在目标变量D(即满意度)中,按照自变量A(此处为故障原因)进行划分,即故障原因分别为1、2、3进行划分,将目标变量分别划分为3个子集,{D1、D2、D3},因此V=3。即故障原因为1的划分中,有2个不满意和1个满意。D1即指2个不满意和1个满意。故障原因为2的划分中,有1个不满意和2个满意。D2即指1个不满意和2个满意。故障原因为3的划分中,有2个不满意和2个满意。D3即指2个不满意和2个满意。具体公式如下:
注:此处的计算结果即0.165不准确,没有真正去算,结果仅供参考。
因此变量故障原因的信息增益Gain(故障原因)=Info(满意度)-
同样的道理,变量故障类型的信息增益计算方式如下:
&&&&&&&&&&&&&&&&&&&
=0.205(结果不准,为准确计算)
变量故障类型的信息增益Gain(故障类型)=1-0.205=0.795
故障原因和故障类型两个变量都是离散型变量,按上述方式即可求得信息增益,但修障时长为连续型变量,对于连续型变量该怎样计算信息增益呢?只需将连续型变量由小到大递增排序,取相邻两个值的中点作为分裂点,然后按照离散型变量计算信息增益的方法计算信息增益,取其中最大的信息增益作为最终的分裂点。如求修障时长的信息增益,首先将修障时长递增排序,即10.2、12、14、16、18、20、22、23、24、25,取相邻两个值的中点,如10.2和12,中点即为(10.2+12)/2=11.1,同理可得其他中点,分别为11.1、13、15、17、19、21、22.5、23.5、24.5。对每个中点都离散化成两个子集,如中点11.1,可以离散化为两个&=11.1和&11.1两个子集,然后按照离散型变量的信息增益计算方式计算其信息增益,如中点11.1的信息增益计算过程如下:
中点11.1的信息增益Gain(修障时长)=1-0.222=0.778
中点13的信息增益计算过程如下:
中点11.1的信息增益Gain(修障时长)=1-1=0
同理分别求得各个中点的信息增益,选取其中最大的信息增益作为分裂点,如取中点11.1。然后与故障原因和故障类型的信息增益相比较,取最大的信息增益作为第一个树叉的分支,此例中选取了故障原因作为第一个分叉。按照同样的方式继续构造树的分支。
总之,信息增益的直观解释为选取按某个自变量划分所需要的期望信息,该期望信息越小,划分的纯度越高。因为对于某个分类问题而言,Info(D)都是固定的,而信息增益Gain(A)=Info(D)-InfoA(D)&
影响信息增益的关键因素为:-InfoA(D),即按自变量A进行划分,所需要的期望信息越小,整体的信息增益越大,越能将分类变量区分出来。
2.C4.5算法的增益率:
由于信息增益选择分裂属性的方式会倾向于选择具有大量值的属性(即自变量),如对于客户ID,每个客户ID对应一个满意度,即按此变量划分每个划分都是纯的(即完全的划分,只有属于一个类别),客户ID的信息增益为最大值1。但这种按该自变量的每个值进行分类的方式是没有任何意义的。为了克服这一弊端,有人提出了采用增益率(GainRate)来选择分裂属性。计算方式如下:
其中Gain(A)的计算方式与ID3算法中的信息增益计算方式相同。
以故障原因为例:
&&&&&&&&&&&&&&&&&&&&&&&&&=1.201
& Gain(故障原因)=0.835(前文已求得)
GainRate故障原因(满意度)=1.201/0.835=1.438
同理可以求得其他自变量的增益率。
选取最大的信息增益率作为分裂属性。
3.CART算法的Gini指标:
CART算法选择分裂属性的方式是比较有意思的,首先计算不纯度,然后利用不纯度计算Gini指标。以满意度预警模型为例,计算自变量故障原因的Gini指标时,先按照故障原因可能的子集进行划分,即可以将故障原因具体划分为如下的子集:{1,2,3}、{1,2}、{1,3}、{2,3}、{1}、{2}、{3}、{},共计8(2^V)个子集。由于{1,2,3}和{}对于分类来说没有任何意义,因此实际分为2^V-2共计6个有效子集。然后计算这6个有效子集的不纯度和Gini指标,选取最小的Gini指标作为分裂属性。
不纯度的计算方式为:
pi表示按某个变量划分中,目标变量不同类别的概率。
某个自变量的Gini指标的计算方式如下:
对应到满意度模型中,A为自变量,即故障原因、故障类型、修障时长。D代表满意度,D1和D2分别为按变量A的子集所划分出的两个不同元组,如按子集{1,2}划分,D1即为故障原因属于{1,2}的满意度评价,共有6条数据,D2即故障原因不属于{1,2}的满意度评价,共有3条数据。计算子集{1,2}的不纯度时,即Gini(D1),在故障原因属于{1,2}的样本数据中,分别有3条不满意和3条满意的数据,因此不纯度为1-(3/6)^2-(3/6)^2=0.5。
以故障原因为例,计算过程如下:
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&=0.5
计算子集故障原因={1,3}的子集的Gini指标时,D1和D2分别为故障原因={1,3}的元组共计7条数据,故障原因不属于{1,3}的元组即故障原因为2的数据,共计3条数据。详细计算过程如下:
同理可以计算出故障原因的每个子集的Gini指标,按同样的方式还可以计算故障类型和修障时长每个子集的Gini指标,选取其中最小的Gini指标作为树的分支。连续型变量的离散方式与信息增益中的离散方式相同。
树的剪枝:
树剪枝可以分为先剪枝和后剪枝。
先剪枝:通过提前停止树的构造,如通过决定在给定的节点不再分裂或划分训练元组的子集,而对树剪枝,一旦停止,该节点即成为树叶。在构造树时,可以使用诸如统计显著性、信息增益等度量评估分裂的优劣,如果划分一个节点的元组低于预先定义阈值的分裂,则给定子集的进一步划分将停止。但选取一个适当的阈值是困难的,较高的阈值可能导致过分简化的树,而较低的阈值可能使得树的简化太少。
后剪枝:它由完全生长的树剪去子树,通过删除节点的分支,并用树叶替换它而剪掉给定节点的子树,树叶用被替换的子树中最频繁的类标记。
其中c4.5使用悲观剪枝方法,CART则为代价复杂度剪枝算法(后剪枝)。
进一步研究的方向:
1、不同决策树算法的详细剪枝方式。
2、决策树算法性能为何如此优秀?
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。}

我要回帖

更多关于 决策树分类算法 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信