APP下载

基于Python的学习者基本数据分析与可视化研究

2021-09-05彭焕卜谢志昆

中国教育信息化·高教职教 2021年8期
关键词:Python语言数据分析

彭焕卜 谢志昆

摘   要:随着数据可视化的快速发展,传统的数据分析技术已经不能满足如今社会的发展需求,而Python语言则以其精准、高效、简明的设计理念在众多数据分析技术中脱颖而出。文章主要基于Python语言中的Numpy、Pandas、Matplotlib、Wordcloud等第三方库,在Jupyter Notebook(anaconda3)环境下,分析云南大学2019—2020学年春季学期本科生公共素选课《信息时代的学习技术及应用》的学习者基本数据,分别对学习者成绩、来源、学习能力、讨论区内容等进行可视化分析,从而加强Python数据可视化在教育教学中的应用。

关键词:Python语言;学习者数据;数据分析;可视化研究

中图分类号:G644 文献标志码:A 文章编号:1673-8454(2021)15-0060-05

一、引言

随着人工智能技术的发展,数据分析与可视化技术不断加快教育信息化建设,但如何合理有效地分析和应用大量的数据资源,则成为当前教育教学面临的最大问题。目前,在教育教学中数据分析与可视化主要应用在学生成绩统计、校园一卡通数据分析、实验数据的统计和分析等方面,但常见的数据可视化工具仍存在程序语言复杂、功能及呈现方式单一等问题。而Python语言以其丰富的功能和简洁的语法则可以实现多种数据可视化呈现方式,如散点图、热力图、词云图、雷达图等,为处理教育教学中的数据提供了良好的支持。因此,本研究主要使用Python第三方库Pandas、Matplotlib、Wordcloud等对课程学习者的基本数据进行可视化处理,从而使教育教学数据得到有效应用。

二、Python语言及数据处理

1.Python语言

Python是一门面向对象的程序设计语言,它支持命令式编程、函数式编程等,拥有大量的成熟扩展库。[1]目前Python语言已广泛应用于云计算、Web研发、人工智能、科学运算等领域,它有着其他语言所无法比拟的优秀特性。[2]其在处理数据上具备以下优势:①代码量少,开发速度快;②有丰富的数据处理包,对于正则表达式、html 解析、xml解析等处理起来非常方便;③使用成本低,且不需要额外操作;④语法简单,学习快、维护成本低;⑤免费开源,且兼容众多平台。[3]此外,Python将其全面、强大的数据分析能力融入到了数据采集、整理、分析、挖掘的全过程,正因如此,才使它逐步成为各行业做大数据分析的首要选择,尤其是在实现数据可视化方面。

2.数据处理

(1)数据采集

本研究的数据源于云南大学2019—2020学年春季学期本科生公共素选课《信息时代的学习技术及应用》的学习者基本数据。该课程主要采用PBL教学法进行线上教学,设置了3次小组研究性学习汇报、5次线上讨论、7次单元作业等学习任务,且将48名学习者通过异质分组平均分到8个项目学习小组。本研究采集了48名学习者的基本信息、7次单元作业的成绩以及本研究所需的3次线上讨论内容,用Excel和Word导出数据,并对部分信息进行隐藏、删除、替换等处理。其样本数据字段含义解读如表1所示。

(2)数据预处理

数据预处理是指在主要的处理之前对初始数据中存在的缺失、重复、不一致等一系列问题进行的处理,一般要经过数据清理、数据集成、数据规约及数据变换等操作。[4]本研究的IDE是IPython的Jupyter Notebook(anaconda3),运用Pandas处理结构化数据、Matplotlib绘制数据图表、Jieba处理非结构化数据、Wordcloud生成词云。由于数据已经通过Excel和Word进行过简单处理,所以不存在重复、不一致问题,部分数据缺失也是因为后续数据处理需要。因此,预处理阶段主完成的任务及程序步骤如下。

①读取excel“student score.xls”信息

import numpy as np

import pandas as pd

studentscore=pd.read_excel("student score.xls")

studentscore . info()

studentscore

②引入第三方庫及可视化基本设置

import jieba                                         #导入第三方库

import numpy as np

import pandas as pd

import matplotlib.pyplot as plt

from wordcloud import WordCloud

%matplotlib inline                      #在notebook中显示绘图结果

plt.rcParams['font.sans-serif'] = ['SimHei']       #中文乱码的处理

plt.rcParams['axes.unicode_minus'] = False

plt.style.use('ggplot')                              #设置绘图风格

import matplotlib                          #设置一些全局的资源参数

matplotlib.rc('figure', figsize = (20, 10))          #设置图片尺寸

matplotlib.rc('font', size = 15)                     #设置字体大小

三、学习者学习成绩可视化分析

1.学习者总成绩分析

在总成绩分析中,以X轴代表总成绩;Y轴代表学号,运用“my_y_tick=np.arange(100,150,6)”,以每6个学号对Y轴分段,每个分段代表一个项目小组。最后使用图形库中的plt.scatter函数,绘制学习者总成绩分布的散点图,如图1所示。

散点图用于表示X、Y轴坐标间数据的变化关系, 借助可视化分析工具,数据的变化关系可以被可视化地分析并展示出来。[5]学习者总成绩分析是指,绘制学号和总分两个变量间关系的散点图来反映课程学习者的学习状况。从X轴可知,学习者总成绩大多集中在475~650分,说明多数学习者整体学习状态良好;总成绩小于400分的学习者共有3名,查看作业完成情况发现,这3位学习者均有3次及其以上未提交作业,由此说明学习者总成绩与学习者的学习态度成正比。另外,从散点图的Y轴以及3次小组汇报的情况发现,3位不及格学习者所在的小组,在研究性学习过程中进度稍慢于其他小组,由此可见组内成员的进度会影响小组整体进度。因此,学习者需要增强团队协作意识。

2.单元平均成绩分析

单元平均成绩可以反映学习者每单元的学习掌握情况,而折线图恰好可以清晰地反映各单元学习情况之间的差异和波动。所以,先采用df.mean函数求出每个单元的平均成绩,再利用图形库中的plt.plot函数绘制出单元平均成绩的折线图,如图2所示。

从折线整体走势来看,7个单元的平均成绩存在一定波动,但波动较小,其中最高分为87.9,最低分为84.45,说明整体教学效果相对较好。另外,通过对各单元平均成绩的比较,第二单元和四单元相对较高,第一单元和第六单元相对较低,而第一单元属于课程开始的理论知识,学习者处在新课程学习的适应阶段。另外,第四单元和第六单元都属于动手实践类内容,并且第四单元是基于项目的小组研究性学习成果展示,由此说明基于小组的研究性学习效果较好,而第六单元平均成绩较低则是因为部分学习者软件无法成功安装、审题不仔细及软件使用不熟练等。该课程提供线上可反复学习的资料,由上述分析可知,回看资料的学习者较少,因此,学习者自我约束能力有待加强。

3.男女生成绩等级分析

男女生成绩等级分析是通过几组数据比较,来分析男女生学习者的学习态度和学习效果,因此,使用df.groupby函数导出数据、Excel表格生成数据,最后用plt.bar函数绘制男女生成绩等级频次分组柱状图,如图3所示。

学习者成绩等级是将学习者的总成绩分别划分为0~399分、400~474分、475~549分、550~624分、625~700分五个区间,分别表示不及格、及格、中等、良好和优秀五个等级。由分组柱状图可以看出,整体成绩呈现正态分布,符合当前的教育教学规律。从图3可知,大多数学习者成绩都处在中等、良好和优秀这三个等级,其中550~624分的良好等级占到总人数一半,不及格人数仅有3人,且为3次及以上未交作业者。而在优秀和良好两个等级中,女生明显多于男生;在不及格和及格等级中,男生是女生的2.5倍,且不及格者均为男生。由此说明,女生成绩普遍好于男生,但在实际操作方面往往男生优于女生。因此要求教师根据不同学习者的特征因材施教。

四、学习者学习特征可视化分析

1.学习者来源分析

学习者来源分析有助于了解学习者自身优势和知识储备。而饼状图通常用于统计某一范围内不同样本数量或者值在总数量或总和中的百分比,[6]所以此部分将采用图像库中的plt.pie函数来绘制学习者来源分布饼状图,如图4所示。

由饼状图可以看出,共有12个学院的学习者选修该课程,其中信息学院有15人,约占总人数的三分之一,该课程内容与信息学院学习者自身知识储备息息相关;占比较多的还有数学与统计学院、经济学院,各占了12.5%,对于这两个学院学习者而言,学习新的技术有助于其专业发展;除此之外,还涉及外国语学院、公共管理学院等其他9个学院,这些数据足以说明《信息时代的学习技术及应用》这门课程逐渐受到其他学院和专业学习者的青睐,信息技术也越来越多地融入到我们的学习、生活、工作中,选择该课程的学习者来源足以体现这一现象,相信之后该课程也会逐渐受到其他专业学习者的喜欢,就如Python语言越来越受到各行各业的青睐那样。

2.学习者能力分析

对本课程7个单元作业所考察的学习者观点表述、理论+实践、小组合作、动手实践四方面能力90分以上的平均频次进行统计,以此了解学习者的学习偏向及教学内容的难易程度。通过for语句读取数据、极坐标函數绘制雷达图,如图5所示。

雷达图是以一点为中心、每个变量为一轴、由内向外发射状、能对多变量资料进行综合分析的图形。[7]学习者能力分布雷达图可以帮助教师优化教学,推动学习者综合能力发展。由单元作业内容发现,第一、二单元考察观点表述能力,第三、五单元考察“理论+实践”能力,第四单元考察小组合作能力,第六、七单元考察动手实践能力。雷达图中小组合作能力排第一,观点表述能力排最后,这是由于该课程采用PBL教学法,且该课程是技术应用类课程。但动手实践能力仅排第三,这与学习者初学新技术、熟练度不够有关,“理论+实践”排第二也能说明在注重学习者实践能力的同时,没有忽视理论基础。综上所述,在后期的教学过程中应该注重培养学习者的观点表述和动手实践能力。

3.讨论区关键词分析

词云是文本数据可视化的常用方式,对文本中出现频率较高的关键词予以视觉上的突出展现。[8]所以,先提取3次讨论区的文本内容,使用Jieba对文本内容进行分词和优化,再用Wordcloud生成词云图,如图6所示。

选取的3次讨论区内容分别位于课程的前期、中期和后期,并且讨论的题目都具有开放性和分享性的特点。由图6可知,出现频次较高的有“信息”、“学习”、“搜索”、“知识”等词,其正向反馈的居多;还有“网络”、“互联网”、“数据”、“搜索引擎”等与信息时代相关的词,由此说明学习者希望掌握或进一步学习更多该课程的知识,学习技术确实给学习者带去了许多便利;另外,值得注意的是像“需要”、“提供”、“整合”、“资源”、“获取”等基于表象的词较多,则从侧面反映出学习者学习得还不够深入。综上,通过讨论区词云图可以了解学习者的知识储备、学习效果以及学习的兴趣点,从而有利于教师及时调整课程、内容进程等,进而实现高效学习。

五、研究结论及建议

1.结合特性,协同发展

随着“个性化学习”的教学理念不断深入人心,了解、分析学生并引导学生自主学习的需求已成为教育教学的重要课题。[9]通过可视化分析发现,学习者在学习特性、兴趣、需求等方面都存在一定差异,所以在教育教学中就要做到因材施教、因需施教。首先,对不同性别学习者进行分析,男性学习者更偏向于学习动手实践类知识,女性学习者则偏向文字表述类知识,因此就要强调男女搭配成组的重要性,可根据男女生的特性设置不同的任务,从而在小组合作中相互学习、取长补短。其次,对不同学院学习者进行分析,信息学院学习者占到总人数的1/3,他们有自身的专业优势,学习速度相对较快,但像外语学院等学习者就很难适应快节奏学习,因此要求教师合理把控教学节奏,注重异质分组,以强带弱,共同学习。最后,从课程方面来说,该课程为公共素选课,大多数学习者学习的目的是掌握更多信息时代的技术与方法并应用于实践,所以在课程内容安排上,要合理分配理论、技术、实践课程的教学时间。基于此,该课程后期发展应该充分尊重学习者及课程特性,不断完善机制、加强协作,从而发展综合能力。

2.借助技术,多维发展

在大数据时代,为了更好地了解教学、课程、学习者学习等状况,充分利用技术分析数据则是当前教育教学的关键。一方面,借助技术提高学习者自主学习能力,通过对作业成绩和讨论区关键词分析发现,学习者很少回看线上资料,讨论区的内容流于表面,任务完成也存在滞后性,所以学习者主动学习能力不足。因此,我们可以借助技术对学习过程进行实时“监控”,加大过程性评价的占比,还可以设置一些个性化警告和提醒,从而使学习者多方发展,如AI智能教学监测系统。另一方面,借助技术完善个性化服务,通过分析发现学习者的学习节奏、知识储备等都有所不同,而以往的教学又很难照顾到每一位学习者,因此就可以通过技术对线上的数据进行挖掘和处理,如对学习进度、学习结果等的分析,从而为不同的學习者提供个性化定制服务,并且教师还可以根据实际情况,对学习方案进行调整,进而提高学习者的综合能力,如本研究就是通过Python语言对学习者成绩的简单可视化。总之,借助技术,可以更好地进行数据挖掘和数据分析,更好地为教学和学习提供支持,从而实现多元化、多维度的学习。

六、结语

人工智能时代,利用大数据、学习分析等技术分析教育问题是国际研究趋势,也是教育现代化发展的重要驱动力。[10]Python语言以操作简单、容易理解等自身的优势受到各个领域的青睐,而教育领域中也需要运用Python对庞杂的教育数据进行深度且精准的分析,从而不断优化教学。本研究主要将数据挖掘与分析的思想与《信息时代的学习技术及应用》课程的学习者基本数据相结合,通过挖掘数据背后的价值,对数据进行采集、分组统计、预处理、可视化等操作,从而为该课程教育教学提供一些有利支撑。但目前,研究的数据样本还不充足、技术的使用还不成熟、数据挖掘也不够深入,所以之后仍需要不断探索、深入钻研,进而使Python语言与教育教学进行多角度、深层次的融合。

参考文献:

[1]姜赵,谢晓伟.基于Python的数据可视化应用与研究[J].科学技术创新,2020(30):88-89.

[2]朱正国.Python在校园大数据中的应用研究[J].商丘师范学院学报,2020,36(6):14-17.

[3]贺路路,阮晓龙.高校学生考试成绩的数据分析模式与可视化研究[J].计算机时代,2019(9):50-52,56.

[4]韦建国,王建勇.基于Python的Web数据挖掘应用[J].浙江水利水电学院学报,2019,31(4):79-82.

[5]陈伟.基于可视化分析技术的大数据审计案例研究[J].中国注册会计师,2019(6):61-64.

[6]刘雨珂,王平.基于Python+Pandas+Matplotlib的学生成绩数据统计与图形输出实现[J].福建电脑,2017,33(11):104-106,142.

[7]余水发,张惠锋,傅海婷,李子杭,李秀央.基于统计图表的学生考试成绩可视化分析[J].教育教学论坛,2015(8):77-79.

[8]宋永生,黄蓉美,王军.基于Python的数据分析与可视化平台研究[J].现代信息科技,2019,3(21):7-9.

[9]冯桂尔.数据挖掘技术在远程教育中的应用[J].现代教育技术,2012,22(12):96-98.

[10]曾宁,张宝辉,范逸洲.如何分析慕课论坛中的数据:六大分析方法述评[J].现代远距离教育,2019(6):87-96.

(编辑:王天鹏)

猜你喜欢

Python语言数据分析
Python语言程序设计教学体系建设
面向计算生态的Python语言入门课程教学方案
基于Python语言和支持向量机的字符验证码识别
论Python程序设计语言
基于Python语言的面向对象课程实践教学探讨
基于Android的Python语言英汉维电子词典设计与实现
新常态下集团公司内部审计工作研究
浅析大数据时代对企业营销模式的影响
基于读者到馆行为数据分析的高校图书馆服务优化建议