数据挖掘十大经典算法——C4.5

一、 C4.5
C4.5算法是机器学习算法中的一种分类决策树算法,其核心算法是ID3 算法. C4.5算法继承了ID3算法的优点,并在以下几方面对ID3算法进行了改进:
1) 用信息增益率来选择属性,克服了用信息增益选择属性时偏向选择取值多的属性的不足;
2) 在树构造过程中进行剪枝;
3) 能够完成对连续属性的离散化处理;
4) 能够对不完整数据进行处理。
C4.5算法有如下优点:产生的分类规则易于理解,准确率较高。其缺点是:在构造树的过程中,需要对数据集进行多次的顺序扫描和排序,因而导致算法的低效。
1、机器学习中,决策树是一个预测模型;他代表的是对象属性与对象值之间的一种映射关系。树中每个节点表示某个对象,而每个分叉路径则代表的某个可能的属性值,而每个叶结点则
对应从根节点到该叶节点所经历的路径所表示的对象的值。决策树仅有单一输出,若欲有复数输出,可以建立独立的决策树以处理不同输出。
2、 从数据产生决策树的机器学习技术叫做决策树学习, 通俗说就是决策树。
3、决策树学习也是数据挖掘中一个普通的方法。在这里,每个决策树都表述了一种树型结构,他由他的分支来对该类型的对象依靠属性进行分类。每个决策树可以依靠对源数据库的分割
进行数据测试。这个过程可以递归式的对树进行修剪。当不能再进行分割或一个单独的类可以被应用于某一分支时,递归过程就完成了。另外,随机森林分类器将许多决策树结合起来
以提升分类的正确率。
决策树是如何工作的?
1、决策树一般都是自上而下的来生成的。
2、选择分割的方法有好几种,但是目的都是一致的:对目标类尝试进行最佳的分割。
3、从根到叶子节点都有一条路径,这条路径就是一条―规则
4、决策树可以是二叉的,也可以是多叉的。
对每个节点的衡量:
1) 通过该节点的记录数
2) 如果是叶子节点的话,分类的路径
3) 对叶子节点正确分类的比例。
有些规则的效果可以比其他的一些规则要好。
由于ID3算法在实际应用中存在一些问题,于是Quilan提出了C4.5算法,严格上说C4.5只能是ID3的一个改进算法。相信大家对ID3算法都很.熟悉了,这里就不做介绍。
C4.5算法继承了ID3算法的优点, 并在以下几方面对ID3算法进行了改进:
1) 用信息增益率来选择属性,克服了用信息增益选择属性时偏向选择取值多的属性的不足;
2) 在树构造过程中进行剪枝;
3) 能够完成对连续属性的离散化处理;
4) 能够对不完整数据进行处理。
C4.5算法有如下优点:产生的分类规则易于理解,准确率较高。其缺点是:在构造树的过程中,需要对数据集进行多次的顺序扫描和排序,因而导致算法的低效。此外,C4.5只适合于
能够驻留于内存的数据集,当训练集大得无法在内存容纳时程序无法运行。 来自搜索的其他内容:
C4.5算法是机器学习算法中的一种分类决策树算法,其核心算法是ID3算法. 分类决策树算法是从大量事例中进行提取分类规则的自上而下的决策树. 决策树的各部分是:

         根:    学习的事例集.
         枝:    分类的判定条件.
         叶:    分好的各个类.  

ID3算法
1.概念提取算法CLS
1) 初始化参数C={E},E包括所有的例子,为根.
2) IF C中的任一元素e同属于同一个决策类则创建一个叶子

           节点YES终止.
       ELSE      依启发式标准,选择特征Fi={V1,V2,V3,...Vn}并创建
                   判定节点

划分C为互不相交的N个集合C1,C2,C3,...,Cn;
3) 对任一个Ci递归.

2.      ID3算法  

1) 随机选择C的一个子集W (窗口).
2) 调用CLS生成W的分类树DT(强调的启发式标准在后).
3) 顺序扫描C搜集DT的意外(即由DT无法确定的例子).
4) 组合W与已发现的意外,形成新的W.

5) 重复2)到4),直到无例外为止.

启发式标准:

   只跟本身与其子树有关,采取信息理论用熵来量度.
   熵是选择事件时选择自由度的量度,其计算方法为
           P    =    freq(Cj,S)/|S|;
   INFO(S)=    -    SUM(    P*LOG(P)    )    ;        SUM()函数是求j 从1到n和.
   Gain(X)=Info(X)-Infox(X);
   Infox(X)=SUM(    (|Ti|/|T|)*Info(X);  

为保证生成的决策树最小,ID3 算法在生成子树时,选取使生成的子树的熵(即Gain(S))最小的
的特征来生成子树.

3、 ID3算法对数据的要求
1). 所有属性必须为离散量.
2). 所有的训练例的所有属性必须有一个明确的值.
3). 相同的因素必须得到相同的结论且训练例必须唯一.

C4.5对ID3算法的改进:

   1.      熵的改进,加上了子树的信息.
         Split_Infox(X)=    -    SUM(      (|T|/|Ti|    )    *LOG(|Ti|/|T|)      );
         Gain    ratio(X)=      Gain(X)/Split    Infox(X);
    2.      在输入数据上的改进.
     1)  

因素属性的值可以是连续量,C4.5 对其排序并分成不同的集合后按照ID3 算法当作离散量进 行处理,但结论属性的值必须是离散值.

   2)    训练例的因素属性值可以是不确定的,以    ?    表示,但结论必须是确定的
   3.      对已生成的决策树进行裁剪,减小生成树的规模.
时间: 2024-11-01 19:38:41

数据挖掘十大经典算法——C4.5的相关文章

数据挖掘十大经典算法(详解)

数据挖掘十大经典算法  一. C4.5  C4.5算法是机器学习算法中的一种分类决策树算法,其核心算法是ID3 算法.   C4.5算法继承了ID3算法的优点,并在以下几方面对ID3算法进行了改进:  1) 用信息增益率来选择属性,克服了用信息增益选择属性时偏向选择取值多的属性的不足:  2) 在树构造过程中进行剪枝:  3) 能够完成对连续属性的离散化处理:  4) 能够对不完整数据进行处理.  C4.5算法有如下优点:产生的分类规则易于理解,准确率较高.其缺点是:在构造树的过程中,需要对数据

数据挖掘十大经典算法——PageRank

数据挖掘十大经典算法(6) PageRank PageRank,网页排名,又称网页级别.Google左侧排名或佩奇排名,是一种由搜索引擎根据网页之间相互的超链接计算的技术,而作为网页排名的要素之一,以Google公司创办人拉里•佩奇(Larry Page)之姓来命名.Google用它来体现网页的相关性和重要性,在搜索引擎优化操作中是经常被用来评估网页优化的成效因素之一.Google的创始人拉里•佩奇和谢尔盖•布林于1998年在斯坦福大学发明了这项技术. PageRank通过网络浩瀚的超链接关系来

数据挖掘十大经典算法——CART

数据挖掘十大经典算法(10) CART 分类回归树(CART,Classification And Regression Tree)也属于一种决策树, 分类回归树是一棵二叉树,且每个非叶子节点都有两个孩子,所以对于第一棵子树其叶子节点数比非叶子节点数多1. 决策树生长的核心是确定决策树的分枝准则. 1. 如何从众多的属性变量中选择一个当前的最佳分支变量: 也就是选择能使异质性下降最快的变量. 异质性的度量:GINI.TWOING.least squared deviation. 前两种主要针对分

数据挖掘十大经典算法——kNN

数据挖掘十大经典算法(8) kNN 1.K最近邻(k-Nearest Neighbor,KNN)分类算法,是一个理论上比较成熟的方法,也是最简单的机器学习算法之一.该方法的思路是:如果一个样本在特征空间中的k个最相似(即特征空 间中最邻近)的样本中的大多数属于某一个类别,则该样本也属于这个类别. 2.KNN算法中,所选择的邻居都是已经正确分类的对象.该方法在定类决策上只依据最邻近的一个或者几个样本的类别来决定待分样本所属的类别. KNN方法虽然从原理上也依赖于极限定理,但在类别决策时,只与极少量

数据挖掘十大经典算法——Apriori

数据挖掘十大经典算法(4)Apriori Apriori算法是种最有影响的挖掘布尔关联规则频繁项集的算法.它的核心是基于两阶段频集思想的递推算法.该关联规则在分类上属于单维.单层.布尔关联规则.在这里,所有支持度大于最小支持度的项集称为频繁项集(简称频集),也常称为最大项目集. 在Apriori算法中,寻找最大项目集(频繁项集)的基本思想是:算法需要对数据集进行多步处理.第一步,简单统计所有含一个元素项目集出现的频数,并找出那些不小于最小支持度的项目集,即一维最大项目集.从第二步开始循环处理直到

数据挖掘十大经典算法——k-means

二.数据挖掘十大经典算法(2) k-means 术语"k-means"最早是由James MacQueen在1967年提出的,这一观点可以追溯到1957年 Hugo Steinhaus所提出的想法.1957年,斯图亚特•劳埃德最先提出这一标准算法,当初是作为一门应用于脉码调制的技术,直到1982年,这一算法才在贝尔实验室被正式提出.1965年, E.W.Forgy发表了一个本质上是相同的方法,1975年和1979年,Hartigan和Wong分别提出了一个更高效的版本. 算法描述 输入

数据挖掘十大经典算法——AdaBoost

数据挖掘十大经典算法(7) AdaBoost AdaBoost,是英文"Adaptive Boosting"(自适应增强)的缩写,是一种机器学习方法,由Yoav Freund和Robert Schapire提出.AdaBoost方法的自适应在于:前一个分类器分错的样本会被用来训练下一个分类器.AdaBoost方法对于噪声数据和异常数据很敏感.但在一些问题中,AdaBoost方法相对于大多数其它学习算法而言,不会很容易出现过拟合现象.AdaBoost方法中使用的分类器可能很弱(比如出现很

数据挖掘十大经典算法——Naive Baye

数据挖掘十大经典算法(9) Naive Baye 简介 贝叶斯分类的基础是概率推理,就是在各种条件的存在不确定,仅知其出现概率的情况下,如何完成推理和决策任务.概率推理是与确定性推理相对应的.而朴素贝叶斯分类器是基于独立假设的,即假设样本每个特征与其他特征都不相关.举个例子,如果一种水果其具有红,圆,直径大概4英寸等特征,该水果可以被判定为是苹果. 尽管这些特征相互依赖或者有些特征由其他特征决定,然而朴素贝叶斯分类器认为这些属性在判定该水果是否为苹果的概率分布上独立的.朴素贝叶斯分类器依靠精确的

数据挖掘十大经典算法

国际权威的学术组织the IEEE International Conference on Data Mining (ICDM) 2006年12月评选出了数据挖掘领域的十大经典算法:C4.5, k-Means, SVM, Apriori, EM, PageRank, AdaBoost, kNN, Naive Bayes, and CART.  不仅仅是选中的十大算法,其实参加评选的18种算法,实际上随便拿出一种来都可以称得上是经典算法,它们在数据挖掘领域都产生了极为深远的影响. 1.C4.5