针对线上教学评价信息中缺失值的研究

2021-05-28 12:37曹丽娜
现代计算机 2021年10期
关键词:原始数据精确度分类器

曹丽娜

(江苏师范大学智慧教育学院,徐州221116)

0 引言

2019年末到2020年初爆发的新冠肺炎,为了避免人群聚集导致病毒传播,教育部对全国各大中小学利用网络平台开展“停课不停学”活动[1]。疫情期间开展线上教学的教学质量难以把控。教学评价是教学中最重要的一环,针对线上教学评价尤为重要。我们要精准掌握新课标下教学评价理念,科学分析线上教学评价标准,对教师线上教学情况进行分析,准确评价线上教学质量。进而依据评价结果制定新的教学方案,改进教学方式。然而教学评价信息收集过程中,因人工原因即人员操作失误或者填写信息遗漏和机器原因如机器出现故障等导致部分数据丢失的情况。研究表明不完整的数据集会导致错误的分析结果进而导致错误决策的产生。

数据缺失现象普遍存在于科学研究领域,不止是数字信息的缺失还包括交通运输中的图片和视频丢失,DNA微阵列的信息缺失以及医疗电子记录信息等等。在机器学习数据挖掘领域数据的缺失更普遍,包含缺失数据的数据集不仅使数据质量下降,还导致很多数据分析技术(例如回归和主成分分析)无法使用,进而导致数据挖掘结果的严重偏差。一直以来数据的缺失都是一个具有挑战性的问题。数据的缺失通用的定义是两种范式。第一种范式指出如果观察变量的概率与观察变量的值无关,则认为丢失数据是可忽略的;否则,将其视为不可忽略的[2]。第二种范式是Little,R.J.A.和Rubin,D.B.两位专家在文献[3]描述了缺失值的三种缺失机制:第一种完全随机缺失(MCAR)指数据的缺失不依赖于任何不完全变量和完全变量;第二种随机缺失(MAR)指数据的缺失依赖于其他完全变量;第三种非随机缺失(MNAR)指数据的缺失依赖于不完全变量。相比较而言前两种缺失机制容易解决,MNAR需要针对每个问题作出特点的方案和建模。文中为了简化,我们只对前两种缺失机制进行模拟。

学术界对于缺失数据的处理研究广泛存在,并提出了大量的处理缺失数据的算法。最简单的缺失值处理方法是删除缺失数据,依靠很多机器学习库可以轻松实现,但是当面临缺失数据多而样本少或者样本的属性值多,针对一个属性值的缺失要删除一整行数据导致样本缺失过多,通常不建议这样做,除非有充分的理由相信缺少值是随机产生的或者无关紧要的[4]。代替删除缺失值,文献[3]提出的数据填补算法是另一种选择。最简单最容易实现的插补算法是均值插补,如果是标签数据用众数填补缺失数据,然而忽视了数据之间的相关性,此相关性正是学习算法去探究的。考虑到保留数据集属性之间的相关性,研究者们提出了基于统计学和机器学习理论的缺失值填补算法。文献[4]针对DNA微阵列数据缺失问题,提出了基于奇异值分解的SVD填补算法(SVDImpute)和基于k最近邻技术的加权最近邻填补(KNNImpute)。文献[5]在处理基因表达谱缺失值问题上,提出基于贝叶斯理论的贝叶斯主成分分析(BPCA),该模型可以自动确定模型参数,弥补了KNNImpute的缺点。文献[6]通过期望最大算法(EM)对缺失数据进行极大似然估计。除了以上的单个数值的插补,文献[7]提出了一种基于统计学的多值插补(MI)方案,该算法针对某个缺失值提供多个可选填补,最后分析多组数据的插补性能,选出最优的一组作为插补数据,克服了单值插补的局限性。文献[2]使用FancyImpute[8]和scikit-learn[9]实现了对电子健康记录中医疗缺失信息的填补。

本文的主要工作是使用免费的开源库FancyIm-pute和scikit-learn中的填补算法对教学评价缺失信息进行填补。对于插补性能的评估,使用两种误差的计算方法评估填补算法的精确度。为了评估填补操作对分类器性能的影响,利用两种分类算法分析填补操作对原始数据集的影响。

1 实验设计

本节首先描述参与实验的原始数据集的信息,然后介绍如何在原始数据集的基础上模拟两种缺失机制,简述五种填补算法的基本原理,最后提出性能评价方法。

1.1 数据集

教学评价数据集(记为eduData)包含1000条数据和6个属性值分别是(Teaching aims教学目标,teach-ing design教学设计,Teaching attitude教学态度,Class-room interaction课间互动,learning evaluation学习评估,Rating等级),其中每个属性值为0-20之间的整数,其中等级分类为Total score>=70记为1类,50<=Total score<70记为2类,Total score<50记为3类。

1.2 构造缺失数据集

对于本身含有缺失值的数据集,填补方法的性能不方便比较。文中以完整的数据集为基础,模拟完全随机缺失(MCAR)和随机缺失(MAR)两种数据缺失机制,依据缺失机制诱导完整数据集随机缺失一定的比例。

(1)模拟完全随机缺失的数据集我们的唯一限制是:针对一行数据最多诱发一个属性值缺失。因此令单个属性值缺失来模拟完全随机缺失机制。固定缺失属性是Teaching design(教学设计),随机诱发10%、20%、30%、40%、50%由低到高的缺失比例。

(2)采用控制第三属性值令两个属性值缺失来模拟随机缺失机制。实验令Classroom interaction(课间互动)作为第三个属性即控制属性,定义控制因子为12.65即缺失数据所在行的Classroom interaction属性值必须大于12.65,然后令Teaching attitude(教学态度)和Teaching design(教学设计)两个属性随机产生10%、20%、30%、40%、50%的缺失比例。

1.3 填补方法

我们使用开源的FancyImpute[8]实现了复杂类型的插补算法:

(1)K最近邻填补(KNNimpute)。通过选择与缺失数据最近的K个邻居并根据距离确定权重最后加权平均得到估计值。

(2)IterativeImputer。通过以循环方式将具有缺失值的每个特征建模为其他特征的函数来估算缺失值的策略属于多变量插补与多重插补类似。

(3)SoftImpute。通过用软阈值奇异值分解中的值迭代替换缺失值来完成填补。

使用scikit-learn中的impute包实现简单类型的插补算法:

(1)列均值填补(mean)。使用缺失数据所在列的均值填补。

(2)列中位数填补(median)。使用缺失数据所在列的中位数填补。

1.4 性能评价方法

(1)采用平均绝对误差(MAE)和均方根误差(RMSE)来计算原始数据集和填补后数据集的差值,以此来评估插补算法的精确度。结果的数值越小表明算法的误差越小,精确度越高。

(2)从scikit-learn库中选择了两个有代表性的分类算法,评估填补技术的估算如何影响以后将使用的分类算法的性能。使用标准的分类算法决策树(DT)[10]和随机森林(RF)[11]来比较分类性能。针对eduData原始数据集采用网格搜索调整分类算法参数,使分类模型更加拟合数据集,保证每个分类算法获得良好的性能。文中调整的参数有Epochs迭代次数、max_depth最大深度、min_samples_split内部节点再划分所需最小样本数。最佳参数如表1。对评估数据集交叉验证获得多组分类结果,然后对分类结果计算平均的分类性能。结果的值越高说明分类性能越好进而说明该填补算法表现良好。

表1 eduData数据集的参数设置

2 实验结果分析

2.1 完全随机缺失实验结果

构造单个属性值缺失10%、20%、30%、40%、50%的数据来模拟完全随机缺失。使用mean、median、KNNimpute(记为KNN)、IterativeImputer(记为IterIm-pute)、SoftImpute共五种方法进行填补实验。MAE和RMSE两种计算方法判断精确度结果如图1-图2。数据集的两种分类器效果如图3-图4,颜色为黑色的水平线代表原始数据集的分类效果。

图1 五种算法的MAE值

图2 五种填补算法的RMSE值

图1、图2可知在模拟完全随机试验中Iterative Imputer算法的填补精确度最好。意外的是在其他各类数据集表现良好的SoftImpute算法的精确度却是最差的。针对该数据集KNNimpute算法并未展现出填补优势,低于mean和median的精确度。随着缺失比例从10%到50%的增加,填补算法的误差也随之增加,当然误差的增幅还算平稳,未呈现激增的情况。

观察图3、4的分类效果图得出填补操作对原始数据集的分类效果具有影响。针对图3的DT分类器来看除了SoftImpute算法处理后的数据集分类效果低于原始数据集的分类效果,其余的均优于原始数据集。IterativeImputer算法的分类效果最好,且随着缺失比例的增加呈现上升的趋势。mean和KNNimpute呈现的分类效果趋势类似,均在40%缺失比例时达到最低,相反的是median在该比例下分类效果最优。RF呈现与DT分类器相反的情况,进行填补后的数据集的RF分类效果低于原始数据集,降低了分类器的性能。其中最差的是KNNimpute,相对优秀的是IterativeImputer,但在50%缺失值时出现猛烈的下降。针对完全随机缺失机制的整体来看IterativeImputer算法的填补误差最小,分类器的性能最优。

图3 六种数据集的DT分类效果

图4 六种数据集的RF分类效果

2.2 随机缺失实验结果

控制第三个属性值使两个属性值缺失10%、20%、30%、40%、50%的数据来模拟随机缺失。使用mean、median、KNNimpute(记为KNN)、IterativeImputer(记为IterImpute)、SoftImpute共五种方法进行填补实验。用MAE和RMSE两种误差计算方式评估填补算法的精确度,结果如图5-图6。采用两种分类器评估填补算法对数据集的分类影响,结果如图7-8,颜色为黑色的水平线代表原始数据集的分类效果。

图5 五种算法的MAE值

图6 五种填补算法的RMSE值

图7 六种数据集的DT分类效果

图8 六种数据集的RF分类效果

图5、图6可知在模拟随机试验中IterativeImputer算法的填补精确度最好。与完全随机缺失类似SoftIm-pute算法的精确度是最差的,随着缺失比例的增加误差呈直线上升趋势。KNNimpute、mean和median三种算法误差接近但前者略大。填补算法误差的整体趋势随着缺失比例的增加呈上升趋势。两种分离器的结果知IterativeImputer填补后的性能最优并随着缺失比例增加分类性能呈上升趋势。DT分类器中仅有median和SoftImpute处理后的数据集分类性能低于原始分类效果而RF分类器中除了IterativeImputer算法,其余算法均低于原始数据集。在DT分类器中KNNimpute随着缺失比例增加分类性能浮动较大,在40%缺失时分类效果最好。随机缺失机制下的两种分类器的分类性能随着缺失比例的增加整体呈下降趋势。

3 结语

疫情期间开展线上教学起到防控疫情作用,而对线上教学质量的把握也尤为重要。教学评价环节是掌握教学质量的关键环节。针对于教学评价信息缺失现象,文中在eduData教学评价数据集上使用5种数据缺失填补方法进行了实验。实验结果显示,无论是完全随机缺失还是随机缺失表现最好的算法是IterativeIm-pute算法。IterativeImpute算法的填补精确度最高,填补后的数据集的分类性能也最优。在本实验中表现最差的算法是SoftImpute,该算法的填补数据精确度极差,当然我们也尝试了SoftImpute与BiScaler和KNN算法结合但误差值比单纯的使用SoftImpute更高,说明该算法不适合用于eduData数据集。在数据集中KNNimpute算法不占优势,低于mean和median的性能。根据图中的分类器折线图可以看出,填补算法影响了数据集的分类性能。两种分类器算法都受到缺失比例增加的影响,但是相应的表现不同。针对两种趋势整体来看DT分类器的分类性能在填补操作后提升并随缺失比例的增加呈上升趋势,与其相反的是经过填补操作数据集的RF分类器的分类性能降低,整体低于原始数据集并随缺失比例的增加呈下降趋势。以上分析得出未来在填补评价信息缺失值方面我们可以使用IterativeImpute算法。

本文对于教学评价信息缺失现象实现了5种信息填补算法,然而这对于广泛存在的缺失数据填补算法是远远不够的,未来尝试针对教学评价信息缺失实现更多的插补算法来提高评价信息填补的精确度。文中评估了填补算法对分类器性能的影响,在以后的实验中会研究填补算法对数据之间相关性的影响。从上文的实验知KNN算法的填补性能没有很好的展现,可能与k值的选择有关,未来工作尝试使用无参的方法填补教育评价信息的缺失值,并为确定K值探究更好的方法。未来会进一步尝试使用R语言的经典包库来填补教育评价信息缺失值并与Python中填补缺失值的包库做比较。希望本文对大家有所帮助。

猜你喜欢
原始数据精确度分类器
少样本条件下基于K-最近邻及多分类器协同的样本扩增分类
学贯中西(6):阐述ML分类器的工作流程
放缩法在递推数列中的再探究
基于AdaBoost算法的在线连续极限学习机集成算法
论航空情报原始数据提交与应用
数形结合
对物理实验测量仪器读数的思考
近似数1.8和1.80相同吗