卞欢平
摘要:该文介绍了数据挖掘中的一种改进的C4.5算法,简化了原C4.5算法中复杂的对数运算问题。并将该C4.5算法应用于《网站建设管理与维护》的成绩分析中,为教学提供相應的指导。
关键字:数据挖掘;改进的C4.5
中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2015)27-0164-03
数据挖掘(Data Mining) 是从大量的数据中挖掘出隐含的、未知的、用户可能感兴趣的和对决策有潜在价值的知识和规则[1]。随着高校信息化的推进,仅是简单统计成绩分布的需求已不能满足当前教学的需要,如何从庞大的教学数据中提取出有价值的知识,用于指导并提高教学,成为了当今大数据时代所关注的焦点。数据分类算法是数据挖掘中最重要的技术之一。决策树作为一种重要的数据分类方法,它能从一组没有任何关联的数据中寻找出它们的分类规则,并利用这些规则对这组数据以外的相似数据进行分类或预测。常见的决策树算法有:CART、ID3、C4.5等[2]。其中:C4.5算法是通过信息增益率进而进行属性的选择,可以支持对连续值和空缺值属性的处理。然而C4.5算法的缺点在于:在计算每个属性的信息量的时候,都需要用到对数函数来进行计算,由此增加了许多计算的时间和复杂度。因此,本文找到一种对C4.5进行改进的算法,来尽可能少地减少计算量,从而加快树的生成速度。
1 改进的C4.5算法
2 改进C4.5算法在成绩分析中的应用举例
《网站建设管理与维护》作为高职院校大三计算机专业实训课程,是将之前所学专业知识应用于网站实际开发中的综合技能的检验与提升。应用改进的C4.5算法来找出影响《网站建设管理与维护》的成绩因素,对教与学而言都起着重要的作用。
1) 数据采集
根据本门课程的特点,本次研究所采集的数据来自两个部分:一部分源自于学校教务管理系统中的学生基本信息以及与《网站建设管理与维护》这门课相关的前导课程的成绩数据。它们为:学号、姓名、性别、《ASP.net》、《Web编程基础(DW,div,css,ajax+HTML+JS)》、《XML Web Service开发》、《ADO.NET2.0》、《网站建设管理与维护》成绩。另一部分数据来自于学生问卷调查表的结果。包括:本课程兴趣程度、本课程课外所花时间。第三部分数据是由授课老师所提供学生本门课程的出勤率。本次共采集了1220条数据。
2) 数据集成
数据挖掘一般都需要涉及多个数据源的数据。数据集成是将多个数据源中的数据结合起来,存于统一的数据表中。根据上一步所采集到的数据,以学生的“学号”为主键,将它们汇总在一起。
3) 数据清理
数据清理目的是去除数据中存在的噪声。针对第2) 步收集成好的数据表,发现其中有些学生的某些成绩存在缺考的情况,则将它们直接删除。
4) 数据归约
数据归约是在原数据集的各属性中,选取与本次的挖掘任务关系密切的属性。因此,在第1)步所采集到的各成绩属性中,由于我们不是要研究某个前导课程对《网站建设管理与维护》这门课程成绩的影响,而是想了解学生之前所学的前导课程的总体学习情况对本门课程的影响程度。因此,对第1)步所采集到《ASP.net》、《Web编程基础(DW,div,css,ajax+HTML+JS)》、《XML Web Service开发》、《ADO.NET2.0》这几门前导课程的成绩取平均值,形成“前导课程学习情况”列的数据。并将“学号、姓名、性别”这些相关度较小的属性删除。最后构建的相关属性表如下表1所示:
5) 数据泛化
将“前导课程学习情况”所获得的成绩泛化为:85以上的为“优”,84~70分的为“良”,60~69分的为“中”,60以下的为“差”。由于前导课程60以下的,在《网站建设管理与维护》这门课最后的成绩基本也为不及格,对本次挖掘没有实质性意义,故将“前导课程学习情况”不及格的这部分数据删除。然后以“《网站建设管理与维护》成绩”为本次挖掘任务的类别属性,规定:成绩中大于60分的为“合格”,小于60分的为“不合格”。最后所得到的数据共1170条。数据表的各属性如下表2所示:
6) 利用改进的C4.5算法生成决策树
在表2中,以“前导课程学习情况”、“本课程到课率”“本课程兴趣程度”、“本课程课外所花时间”四个属性为决策属性,以“成绩”为类别标识属性。根据改进C4.5算法所得到的公式(1-7)、(1-8)、(1-9),计算各个决策属性的信息熵,信息量和信息增益率,以“前导课程学习情况”为例,计算如下:
7) 从决策树提取分类规则
从上图2-1中提取出如下的分类规则,其中成绩“合格”的为:
①IF 到课率=“满勤”and前导课程成绩=“优”,then 成绩为“合格”。
②IF 到课率=“满勤”and前导课程成绩=“良”,then 成绩为“合格”。
③IF 到课率=“满勤”and前导课程成绩=“中” and 课外时间=“大于4小时”,and (兴趣=“有兴趣”or兴趣=“一般兴趣”) then 成绩为“合格”。
④IF 到课率=“满勤”and前导课程成绩=“中” and 课外时间=“2-4小时”,and 兴趣=“有兴趣” then 成绩为“合格”。
⑤IF 到课率=“基本满勤”and 课外时间=“大于4小时”then 成绩为“合格”。
⑥IF 到课率=“基本满勤”and 课外时间=“2-4小时”and 兴趣=“有兴趣” and (前导课程成绩=“优”or前导课程成绩=“良”) then 成绩为“合格”。
⑦IF 到课率=“中等”and兴趣=“有兴趣” then 成绩为“合格”。
成绩为“不合格”的为:
①IF 到课率=“满勤”and前导课程成绩=“中” and (课外时间=“2-4小时”or课外时间=“小于2小时”) and 兴趣=“一般兴趣” then 成绩为“不合格”。
②IF 到课率=“基本满勤”and 课外时间=“2-4小时”and (兴趣=“一般兴趣”or兴趣=“不感兴趣”) and前导课程成绩=“中”then 成绩为“不合格”。
③IF 到课率=“基本满勤”and 课外时间=“小于2小时”then 成绩为“不合格”。
④IF 到课率=“中等”and (兴趣=“一般兴趣”or 兴趣=“不兴趣”) then 成绩为“不合格”。
⑤IF 到课率=“严重旷课”,then 成绩为“不合格”。
由此可见:首先:学生的“高到课率”和“兴趣”因素是通过本课程的重要先决条件,其次:若前导课程成绩的“优良”的学生,说明对于网站建设所需要的基本知识与实验操作技巧,之前的前导课程已基本涵盖,所以对于学习本实训课程基础打得较扎实,学起来较为轻松,基本上是全员通过的;若前导课程成绩为“中”的学生,说明之前的基础知识方面掌握得有所欠缺,但这些学生只要愿意在课外多花些时间去研究和补足之前的缺漏,完成每堂实训课所提出的实验任务,跟上整个课程的实训进度,也是可以通过本门课程的。而在“成绩不通过”的规则中,存在的共性是之前的前导课程掌握不好,使得本实训课所需知识储备不足,本实训课学习跟不上,因此对本门课的兴趣普遍不高,最后没有通过此课程。
计算机的实训课是以案例为导向,按照项目的开发周期按进度循序渐进所进行的一项综合性课程的学习,作为教学的老师而言,需要抓好学生的到课率,并且在课程教学中,选取合适的案例和教学方法,以提高学生的学习兴趣。同时,由于前导课程的学习情况参差不齐,而且前导课程开课跨度大,有些在大一开,有些在大二开,学生对于前导知识遗忘率高,因此在每次实训课结束,可针对下节課的案例,让学生先回去复习下节课在操作案例中所需的前导知识点,并在每节课上课前,用一小部分时间复习和强调,以提高学生知识点的熟悉程度,对于指导实验提高兴趣有较好的效果。而对于学生而言,要想真正掌握实训课程的技能,必须在课后花一定的时间进行研究与操作,以达到掌握并精通课程的实践技能。最后,针对一些同学前导课程掌握不好,进而导致跟不上进度,失去本课程兴趣的学生,建议给予分班教学,一方面给他们辅导前导知识学习的漏洞,另一方面选取适合他们程度的实训案例,缩小他们的学习差距,提高学习兴趣。
参考文献:
[1] 陈燕.数据挖掘技术及应用[M].北京:清华大学出版社,2011.
[2] 李雄飞,杜钦生,吴昊.数据仓库与数据挖掘[M].北京:机械工业出版社,2013.
[3] 黄爱辉.基于决策树算法的考试成绩分析系统的研究与开发[D].湖南:湖南大学,2008.