C4_5算法
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
算法:Generate_decision_tree由给定的训练数据集产生一颗决策树
输入:数据集D,候选属性集A
输出:一颗决策树T
Generate_decision_tree(D,A)
创建节点T:
If D都在统一各类C Then
返回T作为叶节点,以类C标记:
Else if A为空or没有剩余属性进一步划分样本then
设Di是D中test_A=Ai的样本集合;//一个划分
If Di为空then
加上一个树叶,标记为D中最普通的类;
Else
加上一个由Generate_decision_tree(Di,D-test_A)返回的节点;
进行剪枝;
3.
(1)熵
假设数据集合D,则:
Pr(cj)表示cj类在数据集D中的概率,当熵越小,数据越纯净,所以,熵可作为数据混杂度或混乱度的衡量指标
以“年级”属性为例,计算相应的信息熵,调查的样本中年级属性分为“大一、大二、大三、大四”四组,调查数据如下表4-2:
表4-2“年级”属性的统计数据
类别值
“选课”样本数
“不选课”样本数
总样本数
大一
e
e’
E
大二
f
f’
F
大三
g
g’
G
大四
h
h’
H
计测试属性子类的信息熵(以大一年级为例):
分别得到 , , ;
(3)C4.5算法,是对ID3算法的改进,弥补ID3算法在预测变量缺值处理、剪枝技术、派尘规则等方面的不足;
(4)1996年,M.Mehta和R.Agrawal等人提出SLIQ算法,采取了属性列表、分类列表、类直方图很好的解决了分类中数据量超过内存容量的问题。
(5)同年,R.Agrawal和J.Shafer等提出了SPRINT分类方法。和SLIQ算法一样,SPRINT算法也解决了内存空间的问题,但两者的处理方式不同,SPRINT具有并行处理问题的特点。
(4)抗噪性差,训练例子中的正例和反例比较难控制。
在ID3算法的基础上,为了解决以上问题,国外学者提出了C4.5算法。C4.5算法在保持ID3算法优点的前提下对ID3算法做出了改进[6]:
(1)用信息增益率来选择属性,避免出现Biblioteka Baidu向选择取值多的属性的现象;
(2)在树构造过程中进行剪枝,解决因运用ID3算法导致决策树中子树的重复问题,以及一些属性在决策树的某个路径上被检验多次的问题;
虽然ID3算法思路清晰、简单易学,但是存在着以下一些问题[5][6]:
(1)信息增益的值对特征数目较多的特征集有很大依赖性,往往选择属性取值最多的属性,而该属性不一定最优;
(2)ID3只能处理离散型数据,不能处理连续型数据;
(3)ID3是单变量决策树,即在分支节点上只考虑单个属性,许多复杂概念的表达困难,即所有的内部节点在创建决策树时必须要清楚;
(3)扩大数据处理范围,即C4.5算法能够处理连续型数据,前提是需要将连续型数据离散化;除此之外,C4.5算法还可以处理不完整数据。
2.
C4.5算法不仅可以应用于离散型属性的分类,还可应用于连续型属性。并且在测试属性的过程中,用信息增益率代替信息增益作为衡量标准。还进行了决策树的剪枝(基于悲观错误的后剪枝方法),将最不可靠的分枝删除,取而代之的是多个类的叶节点,从而加快分类速度并提高决策树分类新数据的准确率。文献[5]给出了C4.5算法主要过程,描述如下:
s表示属性Ai的可能取值数目,Dj表示D中具有Ai属性第j个值的子集。
四、
C4.5算法的应用范围相当广泛,特别是在高校教学管理数据挖掘方面,比如高校综合教学评价、高校学生成绩管理、高校就业预测分析、高校奖学金评定等方面。除此之外,在高校学生选课人数方面,本论文发现教师打分高、课程内容有趣并且和专业相关等等课程非常受学生欢迎,相反教师打分低或者课程内容无趣的课程选课人数寥寥无几。因此本论文认为,在高校学生选课背后存在一定规律,有一些因素影响着学生做出选课决策。通过分析学生选课背后的信息,可以了解高校学生青睐于哪种课程,提高高校课程设置的能力以及改善课程质量。本论文为此设计了研究实验,说明了实验思路,并结合C4.5决策树算法做出具体的数据分析,最后得出相关结论。
表4-1学生选课情况调查表
计数
年级
教师打分
感兴趣
专业相关
专业必修课
热门程度
归类:是否选课
…
…
…
…
…
…
注:①年级分为一共有四个阶段(大一、大二、大三、大四),表示为:“1、2、3、4”;
②教师打分:分为“高、低”两种情况
③感兴趣:旨在调查学生是否以课程内容感兴趣为标准选课
④专业相关:指学生是否以课程内容与专业相关为标准选课
输出待矫正决策树输出决策树
图2-1决策树生成过程[3]
决策树算法产生于20世纪60年代,几十年间,不断有新的算法被提出,有划时代的意义,为各科学领域的研究提供了帮助[2]:
(1)ID3算法,即迭代分类器,由J.R. Quinlan提出。以信息熵和信息增益作为衡量标准,对数据进行归纳分类;
(2)1984年,L.Breiman等提出CART(分类和回归树)算法,其重要思想是选择具有最小基尼指数的属性为测试属性生成决策树;
⑤专业必修课:指学生是否以课程为专业必修课,即高校强制选课为标准选课
⑥热门程度:致学生是否以课程热门为标准而跟风选课
(2)数据分析
具体分析步骤如下:
1.决策属性的信息熵:
由前文信息可知,D=2000,设其中决定“选课”人数为a,则“不选课”的人数为b(a+b=2000),则
2.计算测试属性子类的信息熵:
在众多的数据挖掘方法中,数据分类是一种高效的数据挖掘方法[3]。作为数据挖掘中重要的环节,数据分类主要利用解析训练,创建分类模型[3],具体过程如图1所示。而其中决策树算法是使用广泛的算法之一,回归树和分类树是两种基本的决策树种类[3]。其通过对历史数据的学习和训练,建立起高价值的、能够揭露数据隐含信息以及关联规则的树,以完成数据的分类。
(1)数据准备
以上海市某高校为例,通过线上线下两种方式收集数据。线下方式为在校内集中向学生发放有关选课的调查问卷,而线上方式通过在校内网站或者学生频繁活跃的社交网站(如人人网、新浪微博)上发布问卷调查信息,调查问卷见附件。
为了得到更具代表性的数据集,本次调查对象为该高校内各年级、不同专业的学生。待调查问卷回收后(保证2000份问卷数量),首先对问卷进行筛选,废除无效问卷(未填写完或者未按要求填写的问卷),然后按照问题分类统计数据。调查结果如下表4-1:
三、
1.
纵观国内外对决策树算法的研究,最著名的和经典的莫过于ID3算法,其主要思想是以信息增益为标准来选择测试属性,选取信息增益最高(或熵压缩最大)的属性作为当前节点的测试属性[4]。其基本过程是:首先计算每个属性的信息增益,选择信息增益最高作决策树的节点,再根据属性的取值情况创建分支,重复递归调用该方法对各分支的子集继续建立分支,直到全部子集归于同类别的数据,从而得到决策树[5]。
二、
数据挖掘,涉及到多种学科和技术领域,研究方向也不尽相同。根据数据挖掘的方法分,其可分为:数据的分类、聚类、分析与预测、关联规则挖掘、序列模式挖掘等;根据数据挖掘的对象分,有关系数据库、面向对象数据库、空间数据库、时态数据库、文本数据源、多媒体数据库、一直数据库、遗产数据库以及环球网Web[1]。决策树、BP神经网络、人工智能、贝叶斯网络、关联分析和统计方法等是数据挖掘中的经典算法[2]。
返回T为叶节点,标记为D中最普通的类;//多数表决
For each D中的属性
计算信息增益率gainRatio
选择A中具有最高信息增益率的属性test_A为测试属性;
标记节点T为test_A;
If测试属性为连续型then
找到该属性的分割阈值;
For each test_A中的已知值Ai;//划分D
由节点T生出一个条件为test_A=Ai的分枝;
(2)信息增益
信息增益衡量混杂度或混乱度的减少量。假设Ai是D的属性,可取v个值,则D可划分成v个不相交的子集D1,D2,…,Dv,划分后D的熵为:
则属性Ai的信息增益计算为:
(3)信息增益率
信息增益偏向选择取值较多的属性,为了修正这种偏袒性,利用数据集的相对于属性值分布的熵归一化信息增益,使得熵都是相对于累属性的,称为信息增益率,计算式为
计算按属性“年级”划分后的信息熵:
3.计算测试属性的信息增益率
同样的,以“年级”属性为例,计算其信息增益:
则“年级”属性的信息增益率为:
以此类推,计算出其他属性如“教师打分”、“是否感兴趣”等的信息增益率η2,η3,…,ηi。比较其大小,并进行排列,得到信息增益率最大的属性,即选择该属性做为测试属性,以此创建根节点,引出分枝,每个分枝迭代的进行计算,具体情况如下:例如,
Key words:Data Mining,Data Classification, Decision Tree Algorithm, C4.5 Algorithm
一、
“数据,已经渗透到当今每一个行业和业务职能领域,成为重要的生产因素。人们对于海量数据的挖掘和运用,预示着新一波生产效率增长和消费者盈余浪潮的到来”,这是全球知名咨询公司麦肯锡发表的关于目前大数据时代一段言论。大数据,是信息爆炸时代的必然产物,也是不可或缺的一部分,有着极其重要的意义。因此面对如此庞大的数据集,如何利用这些数据使之产生价值,为人类服务逐渐为广大信息技术工作者所重视。于是数据挖掘技术逐渐发展起来。数据挖掘技术,是一种通过计算机技术将隐含在大量的、不完全的、有噪声的、模糊的、随机的数据中具有潜在利用价值的信息和知识提取出来的手段,并探索其中的内部规则,以及预测数据未来的发展趋势。
(6)1998年,J.Genrke和R.Ramakrishnan等提出了Rain Forest分类算法,主要应用于大规模数据集快速建树的分类问题。其主要思想是根据每一次计算之后的计算机内存情况合理调整数据集大小,合理使用内存资源。
(7)2000年,PUBLIC算法由R.Rastogi和K.Shim提出,具有CART算法的优点。除此之外,由于将建树阶段和修剪阶段合并,其剪枝效率也更佳。
C4.5决策树算法的分析及其简单应用
——基于高校学生选课的应用研究
【摘要】随着“大数据”时代的发展,越来越多的学者逐渐重视对数据背后信息的探究。数据挖掘的方法多种多样,所运用的算法也不尽相同。本论文主要对数据分类方法下的经典决策树算法——C4.5算法——进行了分析,并且将其应用于高校选课案例中,体现了C4.5算法的优点,也指出了其存在的缺点。
【关键词】数据挖掘;数据分类;决策树算法;C4.5算法
Abstract:With the development of the era of“Big Data”,more and more scholarsattachgreatimportancein exploring data to acquire significant information.It is named as“Data Mining”.Thereare various methods toachieve data exploring. Inthe report, it focuses onanalyzingC4.5 algorithm, one of classic algorithms.Besides, this algorithm will be applied in a case in this report.Its advantages and disadvantages will be exposed in the case.
(8)2005年,C-模糊决策树算法诞生,它是由W.pedrycz和A.Zenon提出的。采用的模糊聚类方法改进了传统决策树建树的过程,可直接处理连续型数据,并且同时考虑多个属性;
(9)2007年,C.Qi改进了模糊决策树算法,即在测试属性时,若为多值或者连续属性,那么可以根据模糊理论在模糊化后计算得出熵,其他属性依旧按照传统的计算方法得出。
1.
实验目的:结合数据额挖掘中的C4.5决策树算法分析高校学生选课背后的隐含信息,即哪些因素可以影响学生选课的决策,以及影响其决策的过程。
研究对象:高校学生
研究意义:了解影响学生选课的各种决策因素,改善高校课程内容并且提高课程质量
研究方法和手段:C4.5决策树算法
研究结果:生成“学生选课”决策树
2.实验过程
输入:数据集D,候选属性集A
输出:一颗决策树T
Generate_decision_tree(D,A)
创建节点T:
If D都在统一各类C Then
返回T作为叶节点,以类C标记:
Else if A为空or没有剩余属性进一步划分样本then
设Di是D中test_A=Ai的样本集合;//一个划分
If Di为空then
加上一个树叶,标记为D中最普通的类;
Else
加上一个由Generate_decision_tree(Di,D-test_A)返回的节点;
进行剪枝;
3.
(1)熵
假设数据集合D,则:
Pr(cj)表示cj类在数据集D中的概率,当熵越小,数据越纯净,所以,熵可作为数据混杂度或混乱度的衡量指标
以“年级”属性为例,计算相应的信息熵,调查的样本中年级属性分为“大一、大二、大三、大四”四组,调查数据如下表4-2:
表4-2“年级”属性的统计数据
类别值
“选课”样本数
“不选课”样本数
总样本数
大一
e
e’
E
大二
f
f’
F
大三
g
g’
G
大四
h
h’
H
计测试属性子类的信息熵(以大一年级为例):
分别得到 , , ;
(3)C4.5算法,是对ID3算法的改进,弥补ID3算法在预测变量缺值处理、剪枝技术、派尘规则等方面的不足;
(4)1996年,M.Mehta和R.Agrawal等人提出SLIQ算法,采取了属性列表、分类列表、类直方图很好的解决了分类中数据量超过内存容量的问题。
(5)同年,R.Agrawal和J.Shafer等提出了SPRINT分类方法。和SLIQ算法一样,SPRINT算法也解决了内存空间的问题,但两者的处理方式不同,SPRINT具有并行处理问题的特点。
(4)抗噪性差,训练例子中的正例和反例比较难控制。
在ID3算法的基础上,为了解决以上问题,国外学者提出了C4.5算法。C4.5算法在保持ID3算法优点的前提下对ID3算法做出了改进[6]:
(1)用信息增益率来选择属性,避免出现Biblioteka Baidu向选择取值多的属性的现象;
(2)在树构造过程中进行剪枝,解决因运用ID3算法导致决策树中子树的重复问题,以及一些属性在决策树的某个路径上被检验多次的问题;
虽然ID3算法思路清晰、简单易学,但是存在着以下一些问题[5][6]:
(1)信息增益的值对特征数目较多的特征集有很大依赖性,往往选择属性取值最多的属性,而该属性不一定最优;
(2)ID3只能处理离散型数据,不能处理连续型数据;
(3)ID3是单变量决策树,即在分支节点上只考虑单个属性,许多复杂概念的表达困难,即所有的内部节点在创建决策树时必须要清楚;
(3)扩大数据处理范围,即C4.5算法能够处理连续型数据,前提是需要将连续型数据离散化;除此之外,C4.5算法还可以处理不完整数据。
2.
C4.5算法不仅可以应用于离散型属性的分类,还可应用于连续型属性。并且在测试属性的过程中,用信息增益率代替信息增益作为衡量标准。还进行了决策树的剪枝(基于悲观错误的后剪枝方法),将最不可靠的分枝删除,取而代之的是多个类的叶节点,从而加快分类速度并提高决策树分类新数据的准确率。文献[5]给出了C4.5算法主要过程,描述如下:
s表示属性Ai的可能取值数目,Dj表示D中具有Ai属性第j个值的子集。
四、
C4.5算法的应用范围相当广泛,特别是在高校教学管理数据挖掘方面,比如高校综合教学评价、高校学生成绩管理、高校就业预测分析、高校奖学金评定等方面。除此之外,在高校学生选课人数方面,本论文发现教师打分高、课程内容有趣并且和专业相关等等课程非常受学生欢迎,相反教师打分低或者课程内容无趣的课程选课人数寥寥无几。因此本论文认为,在高校学生选课背后存在一定规律,有一些因素影响着学生做出选课决策。通过分析学生选课背后的信息,可以了解高校学生青睐于哪种课程,提高高校课程设置的能力以及改善课程质量。本论文为此设计了研究实验,说明了实验思路,并结合C4.5决策树算法做出具体的数据分析,最后得出相关结论。
表4-1学生选课情况调查表
计数
年级
教师打分
感兴趣
专业相关
专业必修课
热门程度
归类:是否选课
…
…
…
…
…
…
注:①年级分为一共有四个阶段(大一、大二、大三、大四),表示为:“1、2、3、4”;
②教师打分:分为“高、低”两种情况
③感兴趣:旨在调查学生是否以课程内容感兴趣为标准选课
④专业相关:指学生是否以课程内容与专业相关为标准选课
输出待矫正决策树输出决策树
图2-1决策树生成过程[3]
决策树算法产生于20世纪60年代,几十年间,不断有新的算法被提出,有划时代的意义,为各科学领域的研究提供了帮助[2]:
(1)ID3算法,即迭代分类器,由J.R. Quinlan提出。以信息熵和信息增益作为衡量标准,对数据进行归纳分类;
(2)1984年,L.Breiman等提出CART(分类和回归树)算法,其重要思想是选择具有最小基尼指数的属性为测试属性生成决策树;
⑤专业必修课:指学生是否以课程为专业必修课,即高校强制选课为标准选课
⑥热门程度:致学生是否以课程热门为标准而跟风选课
(2)数据分析
具体分析步骤如下:
1.决策属性的信息熵:
由前文信息可知,D=2000,设其中决定“选课”人数为a,则“不选课”的人数为b(a+b=2000),则
2.计算测试属性子类的信息熵:
在众多的数据挖掘方法中,数据分类是一种高效的数据挖掘方法[3]。作为数据挖掘中重要的环节,数据分类主要利用解析训练,创建分类模型[3],具体过程如图1所示。而其中决策树算法是使用广泛的算法之一,回归树和分类树是两种基本的决策树种类[3]。其通过对历史数据的学习和训练,建立起高价值的、能够揭露数据隐含信息以及关联规则的树,以完成数据的分类。
(1)数据准备
以上海市某高校为例,通过线上线下两种方式收集数据。线下方式为在校内集中向学生发放有关选课的调查问卷,而线上方式通过在校内网站或者学生频繁活跃的社交网站(如人人网、新浪微博)上发布问卷调查信息,调查问卷见附件。
为了得到更具代表性的数据集,本次调查对象为该高校内各年级、不同专业的学生。待调查问卷回收后(保证2000份问卷数量),首先对问卷进行筛选,废除无效问卷(未填写完或者未按要求填写的问卷),然后按照问题分类统计数据。调查结果如下表4-1:
三、
1.
纵观国内外对决策树算法的研究,最著名的和经典的莫过于ID3算法,其主要思想是以信息增益为标准来选择测试属性,选取信息增益最高(或熵压缩最大)的属性作为当前节点的测试属性[4]。其基本过程是:首先计算每个属性的信息增益,选择信息增益最高作决策树的节点,再根据属性的取值情况创建分支,重复递归调用该方法对各分支的子集继续建立分支,直到全部子集归于同类别的数据,从而得到决策树[5]。
二、
数据挖掘,涉及到多种学科和技术领域,研究方向也不尽相同。根据数据挖掘的方法分,其可分为:数据的分类、聚类、分析与预测、关联规则挖掘、序列模式挖掘等;根据数据挖掘的对象分,有关系数据库、面向对象数据库、空间数据库、时态数据库、文本数据源、多媒体数据库、一直数据库、遗产数据库以及环球网Web[1]。决策树、BP神经网络、人工智能、贝叶斯网络、关联分析和统计方法等是数据挖掘中的经典算法[2]。
返回T为叶节点,标记为D中最普通的类;//多数表决
For each D中的属性
计算信息增益率gainRatio
选择A中具有最高信息增益率的属性test_A为测试属性;
标记节点T为test_A;
If测试属性为连续型then
找到该属性的分割阈值;
For each test_A中的已知值Ai;//划分D
由节点T生出一个条件为test_A=Ai的分枝;
(2)信息增益
信息增益衡量混杂度或混乱度的减少量。假设Ai是D的属性,可取v个值,则D可划分成v个不相交的子集D1,D2,…,Dv,划分后D的熵为:
则属性Ai的信息增益计算为:
(3)信息增益率
信息增益偏向选择取值较多的属性,为了修正这种偏袒性,利用数据集的相对于属性值分布的熵归一化信息增益,使得熵都是相对于累属性的,称为信息增益率,计算式为
计算按属性“年级”划分后的信息熵:
3.计算测试属性的信息增益率
同样的,以“年级”属性为例,计算其信息增益:
则“年级”属性的信息增益率为:
以此类推,计算出其他属性如“教师打分”、“是否感兴趣”等的信息增益率η2,η3,…,ηi。比较其大小,并进行排列,得到信息增益率最大的属性,即选择该属性做为测试属性,以此创建根节点,引出分枝,每个分枝迭代的进行计算,具体情况如下:例如,
Key words:Data Mining,Data Classification, Decision Tree Algorithm, C4.5 Algorithm
一、
“数据,已经渗透到当今每一个行业和业务职能领域,成为重要的生产因素。人们对于海量数据的挖掘和运用,预示着新一波生产效率增长和消费者盈余浪潮的到来”,这是全球知名咨询公司麦肯锡发表的关于目前大数据时代一段言论。大数据,是信息爆炸时代的必然产物,也是不可或缺的一部分,有着极其重要的意义。因此面对如此庞大的数据集,如何利用这些数据使之产生价值,为人类服务逐渐为广大信息技术工作者所重视。于是数据挖掘技术逐渐发展起来。数据挖掘技术,是一种通过计算机技术将隐含在大量的、不完全的、有噪声的、模糊的、随机的数据中具有潜在利用价值的信息和知识提取出来的手段,并探索其中的内部规则,以及预测数据未来的发展趋势。
(6)1998年,J.Genrke和R.Ramakrishnan等提出了Rain Forest分类算法,主要应用于大规模数据集快速建树的分类问题。其主要思想是根据每一次计算之后的计算机内存情况合理调整数据集大小,合理使用内存资源。
(7)2000年,PUBLIC算法由R.Rastogi和K.Shim提出,具有CART算法的优点。除此之外,由于将建树阶段和修剪阶段合并,其剪枝效率也更佳。
C4.5决策树算法的分析及其简单应用
——基于高校学生选课的应用研究
【摘要】随着“大数据”时代的发展,越来越多的学者逐渐重视对数据背后信息的探究。数据挖掘的方法多种多样,所运用的算法也不尽相同。本论文主要对数据分类方法下的经典决策树算法——C4.5算法——进行了分析,并且将其应用于高校选课案例中,体现了C4.5算法的优点,也指出了其存在的缺点。
【关键词】数据挖掘;数据分类;决策树算法;C4.5算法
Abstract:With the development of the era of“Big Data”,more and more scholarsattachgreatimportancein exploring data to acquire significant information.It is named as“Data Mining”.Thereare various methods toachieve data exploring. Inthe report, it focuses onanalyzingC4.5 algorithm, one of classic algorithms.Besides, this algorithm will be applied in a case in this report.Its advantages and disadvantages will be exposed in the case.
(8)2005年,C-模糊决策树算法诞生,它是由W.pedrycz和A.Zenon提出的。采用的模糊聚类方法改进了传统决策树建树的过程,可直接处理连续型数据,并且同时考虑多个属性;
(9)2007年,C.Qi改进了模糊决策树算法,即在测试属性时,若为多值或者连续属性,那么可以根据模糊理论在模糊化后计算得出熵,其他属性依旧按照传统的计算方法得出。
1.
实验目的:结合数据额挖掘中的C4.5决策树算法分析高校学生选课背后的隐含信息,即哪些因素可以影响学生选课的决策,以及影响其决策的过程。
研究对象:高校学生
研究意义:了解影响学生选课的各种决策因素,改善高校课程内容并且提高课程质量
研究方法和手段:C4.5决策树算法
研究结果:生成“学生选课”决策树
2.实验过程