APP下载

C4.5决策树方法在课程教学成绩分析中的应用

2022-10-24

现代计算机 2022年16期
关键词:决策树数据结构C语言

胡 佳

(南昌师范学院数学与信息科学学院,南昌 330029)

0 引言

数据挖掘是一种从大量数据中提取潜在的和有价值的知识的过程。所谓的分类是把数据库的记录映射到一个已经定义好的类中的过程。实现分类的方法有很多,包括机器学习方法、神经网络和统计方法等,其中机器学习的决策树方法是一个比较热门的方向,其是通过信息论中的信息增益去寻找数据库中具有最大信息量的属性,建立决策树的一个可以分裂的结点,再根据这个属性字段的不同取值去建立树的分支。决策树方便于企事业单位管理部门做出决策。决策树学习算法的一个最大的优点就是只要在建模过程中训练事例能够用“属性-值”的方式表达出来,就能使用该算法来进行建模。

1 决策树分类的基本方法

决策树模型的内部结点是测试的属性,叶子结点是最后测试的类别,分支是测试属性的值。从决策树的根到叶子结点的路径就是一条分类规则。分类的过程分为两步:建立模型和使用模型。建立模型是通过给定的训练集找到适合的映射函数:->的表示模型,(该步也称为有指导的学习),这里建立模型阶段也分为两步:树的构造和树的剪枝,其中树的剪枝包括预先剪枝和后剪枝两种方法;使用模型是使用上一步训练完成的函数模型预测新数据的类别,或者对数据集中的每一类别进行描述,形成分类规则。这里我们一般采用交叉验证法来评估模型,也就是在训练开始前将一部分数据保留,在训练后,利用这部分数据对模型进行验证,一般认为准确率在60%的就比较合理。

决策树数据挖掘的一般步骤为:数据预处理,采用决策树算法进行挖掘,评价与表示。

2 C4.5算法决策树的构造过程(用一个算法表示)

整个C4.5的工作流程如图1所示。

图1 C4.5算法流程图

3 决策树技术在数据结构成绩分析中的应用

为了配合学校的发展我们构建了数字化校园,目前已经有了自己的信息门户平台,在这个平台中可以进行网上辅助教学,也可以完成一般的教务管理,比如在这个系统中可以输入学生成绩并生成成绩分析表,通过成绩分析表得出学生成绩的分布情况,方便老师总结学生本次考试成绩的基本情况,但是这种成绩分析仅仅停留在表面,更多的还是出于教师的教学经验判断。

因此,本文采用决策树方法中的C4.5算法,挖掘出考试成绩与影响教学的各种因素之间隐藏的内在联系。比如,教学改革的对象是计算机专业的学生,教学改革的课程是数据结构,在这门计算机专业的重要基础课程教学过程中,影响学生最终教学效果的因素有学生自身的基础、课堂教学方法和模式等,本次挖掘就是针对学生是否有畏惧情绪,先续课程是否扎实,教学的手段是否采用了多媒体,是否开辟了第二课堂等多方面因素对数据结构成绩的影响进行挖掘,得出内在的规则,这里的第二课堂主要是采用多媒体的形式,为教学改革提供有利的理论支撑,并且在今后的教学中“对症下药”。本文首先对收集到的数据进行预处理。

3.1 数据的预处理

本文挖掘的对象为接受过数据结构教学的计算机系的大一学生,其中包括进行教改的普通班学生和未进行教改的实验班学生;挖掘的数据集包括学生的成绩数据库,以及采用调查问卷形式收集的学生相关信息情况表,将他们进行对比最后得出影响学生成绩的潜在因素以及教学改革的效果,对调查问卷中的空白项进行忽略,对学生成绩进行规范化,将数据集成得出表1。表1中的畏惧情绪有两个属性:是和否;采用网上学堂的两个属性:是和否;教学方式为两种属性:传统教学全板书和采用1/3多媒体;C语言成绩的三个属性:良好、一般和不合格;数据结构分类的两个属性:良好和一般(其中分数≤75分为一般,分数>75为良好)。

表1 课程教学以及调查信息预处理后

3.2 数据结构成绩的挖掘

本文采用C4.5算法进行数据挖掘,计算其信息增益率。训练集的样本数有350个,其中数据结构成绩良好的有152个样本,数据结构成绩一般的有198个样本。其信息增益率计算过程如下:

首先根据公式计算分类属性的信息熵,Info(D)=-152/350×log(152/350)-198/350×log(198/350)=0.9875,根据公式,依次计算每个测试属性的信息量。

(1)畏惧情绪属性中属性值为“是”的有200个,数据结构成绩良好的有94个,数据结构成绩一般的有106;畏惧情绪属性中属性值为“否”的有150个,数据结构成绩良好的有58个,数据结构成绩一般的有92个,

Info畏 惧 情 绪(D)=200/350×(-log(94/200)-log(106/200))+150/350×(-log(58/150)-log(92/150))=2.0356。

(2)网上学堂教学属性中属性值为“是”的有173个,其中数据结构成绩良好的有101个,数据结构成绩一般的有62;网上学堂属性中属性值为“否”有177个,数据结构成绩良好的有51个,数据结构成绩一般的有126个,

Info是否采用网上学堂(D)=173/350×(-log(101/173)-log(62/173))+177/350×(-log(51/177)-log(126/177))=2.2713。

(3)教学方法属性中属性值为“1/3多媒体”有213个,其中数据结构成绩良好的有121个,数据结构成绩一般的有92;网上学堂属性中属性值为“板书”有137个,数据结构成绩良好的有31个,数据结构成绩一般的有106个,

Info教 学 方 法(D)=213/350×(-log(121/213)-log(92/213))+137/350×(-log(31/137)-log(106/137))=2.2176。

(4)C语言成绩属性中属性值为“良好”的有144个,其中数据结构成绩良好的有95个,数据结构成绩一般的有49;C语言成绩中属性值为“一般”有206个,数据结构成绩良好的有57个,数据结构成绩一般的有149个,

InfoC语 言 成 绩(D)=144/350×(-log(95/144)-log(49/144))+206/350×(-log(57/206)-log(149/206)=2.2528。

因此:

Gain(畏惧情绪)=Info(D)-Info畏惧情绪(D)=0.9875-2.0356=-1.0481;

Gain(是否采用网上学堂)=Info(D)-Info是否采用网上学堂(D)=0.9875-2.2713=-1.2838;

Gain(教学方法)=Info(D)-Info教学方法(D)=0.9875-2.2176=-1.2301;

Gain(C语言成绩)=Info(D)-InfoC语言成绩(D)=0.9875-2.2528=-1.2653;

SplitInfo(畏惧情绪)=-200350×log(200/350)-150/350×log(150/350)=0.9852;

SplitInfo(是否采用网上学堂)=-173/350×log(173/350)-177/350×log(177/350)=0.9999;

SplitInfo(教学方法)=-213/350×log(213/350)-137/350×log(137/350)=0.9657;

SplitInfo(C语言成绩)=-144/350×log(144/350)-206/350×log(206/350)=0.9772;

GainRatio(畏惧情绪)=Gain(畏惧情绪)/SplitInfo(畏惧情绪)=-1.0481/0.9852=-1.0638;

GainRatio(是否采用网上学堂)=Gain(是否采用网上学堂)/SplitInfo(是否采用网上学堂)=-1.2838/0.9999=-1.2839;

GainRatio(教学方法)=Gain(教学方法)/SplitInfo(教学方法)=-1.2301/0.9657=-1.2738;

GainRatio(C语言成绩)=Gain(C语言成绩)/SplitInfo(C语言成绩)=-1.2653/0.9772=-1.2948。

此时,得出的最大信息增益率是:C语言成绩,采用网上学堂和教学方法的两个属性可以合并,进行分裂后,再按相同的方法进行分裂。

图2 第一次分裂属性

采用递归的思想计算优良分支中的教学方法和畏难情绪的信息增益率,得到教学方法的信息率更大,因此将优秀分支进行教学方法的划分,以期仅剩下畏难情绪属性,可以根据样本的比率进行分配。

图3 再一次分裂属性

同理,通过迭代完成分支的划分,最终建立C4.5决策树模型,如图4所示。

图4 最终的决策树模型

因为数据清理过程中已经对数据进行过处理,所以这里不进行剪枝。

采用IF-THEN表示分类规则为:

IF C语言成绩优良AND教学方法为多媒体,那么数据结构成绩为良好。

IF C语言成绩好AND采用板书,那么数据结构成绩为一般。

IF C语言成绩一般,AND有畏难情绪,那么数据结构成绩为一般。

IF C语言成绩一般AND没有畏难情绪AND教学方法为多媒体,那么数据结构成绩为良好。

IF C语言成绩一般AND没有畏难情绪AND教学方法采用板书,那么数据结构成绩为一般。

4 结语

本文通过预处理,然后对数据结构成绩进行挖掘,得到了不同教学方法的重要性,数据结构是一门比较抽象的计算机课程,采用一定的多媒体教学对学生学习数据结构知识是有帮助的。在今后的教学过程中,我们可以选择数据挖掘的各种方法和算法进行教学方面的挖掘,以达到辅助教师教学的决策。

猜你喜欢

决策树数据结构C语言
“C语言程序设计”课程混合教学探索
数据结构线上线下混合教学模式探讨
重典型应用,明结构关系
简述一种基于C4.5的随机决策树集成分类算法设计
基于C语言的计算机软件编程技术探究
中职C语言单片机课堂教学中的趣味性探讨
计算机原理中C语言的应用价值
决策树学习的剪枝方法
决策树在施工项目管理中的应用
数据结构与算法课程设计教学模式的探讨