决策树分类算法在课程成绩预测中的应用

2022-09-21 01:34杨丽萍郭宏升
电子测试 2022年17期
关键词:子集结点决策树

杨丽萍,郭宏升

(1.包头师范学院信息科学与技术学院,内蒙古包头,014030;2.包头师范学院政治与法律学院,内蒙古包头,014030)

0 引言

近年来,随着教育系统对大数据应用的不断探讨,大数据对高校教师教学与管理的支持日益加强,同时,在高校教育管理中,人们深刻认识到大数据在管理与决策中的重要作用,不再依赖于传统意义上的经验管理和直觉推断。大数据可以深度挖掘教育教学数据中的隐藏信息,发现教育过程中存在的问题和关键点,提供决策来优化教育管理。

利用大数据分析技术可以系统全面地整合学生的行为数据,对课堂教学实现全面的评价与分析。教师通过对学生行为相关的海量数据进行分析,可以发现学生的学习行为之间的关联关系,以及学习行为与学习结果之间的关联关系,从而对学生的学习成绩、课堂表现、知识掌握情况进行预测与评估,制定更为合理的教学方案,对有个性化需要的学生提供帮助。

1 决策树分类算法描述

决策树是一类常见的机器学习方法,是对训练集中数据表现出的属性进行总结分类,为表现出来的属性找到一个确切的描述与分类的模型,由该模型可以对未来不可预测的数据进行分类[1]。决策树分类算法是以给定数据样本为基础的归纳学习方法。在给定已知类标号的数据集的情况下,采用自顶向下的递归方式产生一棵树结构[2]。树的最顶层结点称为根结点,最底层结点称为叶结点,每个叶结点代表样本的类别。根结点和叶结点之间的结点称为内部结点。决策树分类算法首先选择具有最高信息增益的描述属性作为给定数据集的分支属性,从而创建决策树中的一个结点,并且根据该描述属性的不同取值再创建分支,之后对各分支中的样本子集递归调用上述方法建立该结点的各个子结点[3]。当某个分支上的所有数据样本都属于同一个类别时划分停止,形成叶结点;或者当某个分支上的样本不属于同一个类别,但是又没有剩余的描述属性可以进一步划分数据集时也形成叶结点,并且用多数样本所属的类别来标记这个叶结点。对未知类标号的数据样本进行分类时,从根结点开始逐层向下判断,直到叶结点,就可以得到该数据样本的类标号。

2 决策树分类算法实现

2.1 计算对训练集分类所需的期望信息

假设给定的数据集为X={(xi,yi)|i=1,2,…,total},其中样本xi(i=1,2,…,total)用d维特征向量xi=(xi1,xi2,…,xid)来表示,xi1,xi2,…,xid分别对应d个描述属性A1,A2,…,Ad的具体取值;yi(i=1,2,…,total)表示样本xi的类标号,假设要研究的分类问题含有m个类别,则yi∈{c1,c2,…,cm}。在创建根结点时,数据集X是最初给定的所有数据,在创建内部结点时,数据集X是上层结点的某个分枝对应的数据集。

假设nj是数据集X中属于类别cj的样本数量,则各类别的先验概率为P(cj)=nj/total,j=1,2,…,m。对给定数据集X分类所需的期望信息为:

2.2 计算各个描述属性划分训练集时的信息增益[4]

设描述属性Af(f=1,2,…,d)具有q个不同的取值{a1f,a2f,…,aqf},利用描述属性Af可以将数据集X划分为q个子集{X1,X2,…,Xq},其中Xs(s=1,2,…,q)中的样本在Af上具有相同的取值asf。设ns表示子集Xs中的样本数量,njs表示子集Xs中属于类别cj的样本数量。则由描述属性Af划分数据集X所得的熵为:

其中,pjs=njs/ns表示在子集Xs中类别为cj的数据样本所占的比例。则利用描述属性Af(f=1,2,…,d)划分数据集时的信息增益为:

2.3 对数据集进行继续划分

选择具有最高信息增益的描述属性作为给定数据集X的分枝属性,从而创建决策树中的一个结点,并且根据该描述属性的不同取值再创建分枝,之后对各分枝中的样本子集递归调用上述方法建立该结点的各个子结点。当某个分枝上的所有数据样本都属于同一个类别时划分停止,形成叶结点;或者当某个分枝上的样本不属于同一个类别,但是又没有剩余的描述属性可以进一步划分数据集时也形成叶结点,并且用多数样本所属的类别来标记这个叶结点。

3 实验测试与分析

3.1 实验数据集

本文采用2020学年度20电子班“C语言程序设计”课程教学中学生的课程学习数据以及期末考试成绩数据作为样本数据,每一个样本数据的描述属性包括学号、姓名、出勤率、课堂互动、小组讨论、课后作业、PTA平台程序设计,其中学号和姓名不作为构造决策树的属性,分类类别为期末成绩,包括3个类别,分别是良好(80~100分)、中等(60~79分)和不合格(0~59分)。表1给出了部分样本数据的描述属性和类别标记。

表1 部分样本数据

3.2 对描述属性值进行逻辑化

对于出勤率,0表示满,1表示不满;对于课堂互动,0表示积极,1表示不积极;对于小组讨论,0表示积极,1表示不积极;对于课后作业,0表示优,1表示良,2表示中;对于PTA平台程序设计,0表示优,1表示良,2表示中;对于期末成绩,80~100表示良好, 60~79表示中等,0~59表示不合格。例如,逻辑化后,学号1的数据可以表示为{0,0,0,0,0,”良好”}。

3.3 采用决策树分类算法构造决策树

本文采用java语言实现该算法,主要包括以下几个方法:

Object[][] createDataSet():建立样本数据集

double calcShannonEnt(Object[][] dataSet):计算对训练集分类所需的期望信息

int chooseBestFeatureToSplit(Object dataSet[][]):求信息增益最大的描述属性

Object createTree(Object dataSet[][], String labels[]):构造决策树[5]

String classify(HashMapinputTree,String featLabels[],Object[]testVec):利用决策树进行分类

根据表1给定的样本数据构造决策树,运行结果如图1所示。

图1 构造决策树运行结果

该运行结果对应的决策树如图2所示。

图2 运行结果对应的决策树

当给定的未知分类的数据为{1,1,1,2,2},采用上述决策树进行分类,运行结果如图3所示。

图3 采用决策树进行分类的结果

4 结语

本文采用2020学年度“C语言程序设计”课程教学中学生的课程学习数据以及期末考试成绩数据作为样本数据,采用决策树分类算法构造决策树分类器,并利用该决策树分类器对2021学年度“C语言程序设计”课程前期阶段学生的学习数据进行分类,对分类结果为不合格的学生有针对性地进行重点关注和课程知识点专项辅导,同时根据分类结果,对课程的教学方案进行适当调整,最终2021学年度“C语言程序设计”课程取得了优异的教学效果,学生通过率达到98%,成绩优秀率达到90%。

猜你喜欢
子集结点决策树
LEACH 算法应用于矿井无线通信的路由算法研究
基于决策树和神经网络的高血压病危险因素研究
拓扑空间中紧致子集的性质研究
基于八数码问题的搜索算法的研究
Carmichael猜想的一个标注
关于奇数阶二元子集的分离序列
决策树和随机森林方法在管理决策中的应用
决策树多元分类模型预测森林植被覆盖
基于决策树的出租车乘客出行目的识别
每一次爱情都只是爱情的子集