APP下载

Python在校园大数据中的应用研究

2020-05-12朱正国

商丘师范学院学报 2020年6期
关键词:汇总消费行为校园

朱正国

(安徽城市管理职业学院,安徽 合肥 230011)

伴随着信息技术的发展和学校信息化建设的加强,每天都会产生大量信息化数据,如何有效利用好这些数据资源是目前很多学校面临的问题.

当今社会已经进入大数据时代,各种数据正在迅速膨胀变大,人们将越来越依赖大数据[1].大数据具备海量、多样、高速、易变四大特点和数据类型繁多、价值密度相对较低、处理速度快时效性要求高三大特征[2].当今高校也进入了大数据时代,各种关联性数据正在呈几何级的增加,Python在大数据时代越来越凸显出它的优势.Python丰富的工具包让它在数据搜集、科学计算、文件处理、数据处理、数据可视化、人工智能、自动化控制等方面具备很大的优势.我们使用Python进行校园大数据的数据采集、分析、汇总,给学校的教学改进和学生管理提供决策支持.

1 Python在数据处理上的优势分析

Python是一种计算机程序设计语言.它是面向对象的动态脚本语言,起初主要用于自动化脚本的编写,后期版本的更新和新增的语言功能使得Python语言现在可以用来进行大型项目和独立项目的开发[3].

Python在处理数据上具备以下优势:(1)代码量少,开发速度快;(2)丰富的数据处理包,对于正则表达式、html解析、xml解析等处理起来非常方便;(3)使用成本低,且不要额外操作;(4)语法简单,学习快、维护成本低;(5)Python是免费开源的、且兼容众多平台.正是由于Python不需要考虑诸如如何管理程序使用的内存之类的底层细节、可移植性、可扩展性良好等优点,非常适合高校做大数据分析.

2 Python在数据处理上的应用

2.1 数据搜集

学校每天的数据资源非常多,既有传统的关系型数据库,又有包含视频、音频、文本以及其他形式的非结构化数据.数据收集就是要对这些碎片化的数据进行收集的同时进行清洗来保证数据质量,同时还要更新数据模式来确定数据实体之间的关系,统一格式存储,以便给后期数据分析阶段提供有效的优质数据资源[4].

本文研究的Python工具版本是Python3,开发工具使用的是Eclipse,具体开发环境搭建过程在此不做详细阐述,网上案例很多.Python抓取的系统包括:网页形式各种校方教务、学工系统、门户网站、包含人脸识别的视频采集分析系统的智慧教室、校园一卡通系统、相关的各种交流论坛、实训室管理系统、以及在线学习平台网站等.设计思路是首先进入校园门户网站,根据该网络爬出所有相关连的网站和系统url,包括校内和校外的,部分实现代码如下:

def crawl(pages,depth=2):

for i in range(depth):

newpages = set()

for page in pages:

try:

c = urllib.request.urlopen(page)

except:

print(’Invaild page:’,page)

continue

soup = bs4.BeautifulSoup(c.read())

links = soup(’a’)

for link in links……

通过一个循环抓取当前页面上所有的链接,我们尽可能多地去抓取链接,之所以选择set而不使用list是防止重复的现象,我们可以将爬取的网站存放到文件或者MySQL或者是MongoDB里.

output = sys.stdout

outputfile = open(’chengguan.txt’,’w’)

sys.stdout = outputfile

list = GetFileList(chengguan,[])

这一步的目的是做数据资源的来源分析.接下来,需要做的是“关键词”搜索,如:“学生成绩”“某某班级”“某某人”“某某实训室”等,部分实现代码如下:

import jiban

import jiban.analyse

text = “关键词”

fenci_text = jiban.cut(text)……

通过Python编写的网络爬虫程序,只需要设计好规则,程序就会自动的、不间断的按照既定规则去抓取你所需要的数据.同时对抓取的数据进行存储、分析、过滤、建立索引,方便后期查询与检索,通过这一系列过程所得到的分析结果还会对以后的抓取过程给出反馈和指导[5].

2.2 数据清洗

通过Python爬虫抓取的数据是臃肿的、散乱的、未校验、不规则的,在提交给“数据分析”之前,还需要进行“数据清理”工作.因为Python是不间断地进行数据搜集工作,如果不进行数据清洗,那么爬虫库也将越来越庞大、对其进行的分析时间也将越来越长,逐渐的就会失去其意义.

我们利用数据挖掘、数理统计、预定义清理的规则等对数据进行审查和校验,剔除重复、错误的信息,保证数据的准确、一致、有用[6].本研究部分Python编写的数据清洗代码如下:

import pandas as pd

import numpy as np

from collections import Counter

from sklearn import preprocessing

from matplotlib import pyplot as plt

matplotlib inline

import seaborn as sns

plt.rcParams[’font.sans-serif’]= [’SimHei’]

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

sns.set(font=’SimHei’)

data=pd.read_excel(’...’)

data.head()

data.shape

data.describe()

data.isnull().any()

total = data.isnull().sum().sort_values(ascending=False)

print(total)

data.duplicated().sum()

data.drop_duplicates()

for i in cat_col:

print(pd.Series(data[i]).value_counts())

plt.plot(data[i])

dummies=pd.get_dummies(data[cat_col])

dummies

数据清洗路径如图:

图2 数据清洗路径

2.3 数据分析

爬取后的数据经过数据清洗后还需要经过数据分析这个过程来挖掘其潜在的价值,我们可以用传统的方法来对数据进行分析诸如数据挖掘、机器学习、统计分析等[7].只是需要按照大数据的特点来进行调整:首先对于处理海量信息化数据的分析,我们需要借助Map/ Reduce模型经过数据拆分处理和结果汇总二个过程,一次完整的分析可能需要多次类似的处理过程;其次,正如前面所说的大数据的应用有很强的时效性,数据的价值会随着时间的推移而不断降低,因此我们在进行数据分析时需要处理和平衡好效率和准确率之间的关系[7].

高校大数据分析需要从多维度进行:例如课堂教学质量分析,通过清洗后的课堂视频数据,我们可以得到课堂的出勤、教师提问、学生举手抬头鼓掌包括学生上课睡觉等情况;例如学校科目分析,通过清洗后的相关教学数据,可以得到不同学年、不同教师对同一科目的教学成果,可以得到同一教师在不同学期、不同专业的同一科目教学成果;例如具体学生学习分析,可以通过清洗后的教学数据、学工数据、一卡通数据,获得该学生不同学科的 成绩、进出宿舍打卡时间统计信息、进出教室打卡时间统计信息、进出实训室打卡时间统计信息、科目教师对其评价汇总信息、该学生在学校推荐在线学习平台学习情况汇总信息;例如学生消费分析,可以通过该学生的一卡通在校园内食堂刷卡消费记录、零食品店铺刷卡消费记录,获得该学生不同时间段消费记录汇总信息、不同类型消费对比信息.

本研究,部分Python编写的数据分析代码如下:

from collections import defaultdict

def group_data(data,key_name):

grouped_data=defaultdict(list)

for data_point in data:

grouped_data[data_point[key_name]].append(data_point)

return grouped_data……

数据分析的结果,很容易了解哪些课是受欢迎的;哪些教师是学生喜欢的,哪些院系重视教学工作;哪些课程需要改进,如何改进;哪些教师应该获得帮助,需要哪些帮助;哪些课程应该获得更多的投入;哪些教师应该获得奖励;哪些教室应该进行改造,如何改造;哪些院系应该淘汰哪些课程等.

数据分析的结果,能够帮助学校健全学生信息,例如生源、家庭条件、专业背景、学习习惯、学习成绩、消费习惯、网络浏览习惯、上课状态、对某些科目的喜好程度、校内社交情况、主动上网在线学习情况、主动预约实训室学习情况等;这些信息具有很高的价值,角度全面、且信息处于不断变化之中.

按照一定规则分析出的数据,就可以进行下一步环节:数据汇总.

2.4 数据汇总与反馈

通过Python进行数据搜集和分析,我们可以汇总出在校学生的各科学习情况、学生成绩阶段性对比情况、同级学生对比情况、同科学生对比情况、不同教师上同一科目的教学效果对比情况、同一教师上不同班级教学效果对比情况等;同时还汇总出学生在校消费行为报告、不同学生消费行为对比分析报告、不同时间段学生消费行为分析报告、学生在考试前和考试后消费行为分析报告等;以及学生消费行为和当天上课效果关联性分析、学生在节假日前后消费和学习效果关联性分析等.

这些分析汇总数据,对学校进行教学诊改、学生个性化优势教学、学生消费行为指导等,提供了决策数据支持.

3 总结及后续工作

本文运用Python对安徽城市管理职业学院的校园大数据进行挖掘分析,旨在为校园大数据的充分利用探索可行路线.现在很多高校都在探索校园大数据问题,大部分是从发展规划的角度去探索数据分析问题,包括挖掘关乎学校发展的各类数据指标,然后从几个维度进行纵、横向比较分析,从而分析学校发展存在的问题[2].本研究以学生为中心,进行数据搜集、挖掘、清洗、分析、汇总,通过对学生的多维度分析,从而更好地培养人才.

当然,在研究的过程中,也遇到了一些问题:比如信息不全面,为此学校在智慧校园的改造过程中,把以前那些互联性较差的、数据统一标准较差的系统进行了逐步改造,现在学校的各种系统基本都是web方式部署,且建立了统一的数据标准;比如缺乏数据分析的模式和方法,用户需求零散琐碎,数据价值难以真实体现等等[9].为了解决诸如此类问题,我们参考了多所其他院校分析模式结合网上专家的一些指导方向,通过摸索实验,建立了适合本校的研究模式.利用Python对校园信息化大数据的分析应用,只是起点,后续还有很多需要完善的地方.如何利用好这些数据,让其价值得到充分的体现,是我们每个教育工作者都应该尽力去做的事情.

猜你喜欢

汇总消费行为校园
常用缩略语汇总
系统抽样的非常规题汇总
“九零后”大学生消费行为误区和疏导方法
浅析花卉市场中的消费行为
校园的早晨
春满校园
浅析当代大学生消费行为
供应商汇总
供应商汇总
基于大学生消费行为的团购网站建设