Python在学院招生数据分析中的应用

2018-01-04 11:35叶惠仙
计算机时代 2018年11期
关键词:招生算法

叶惠仙

摘 要: 在大数据的今天,Python丰富的工具包在科学计算、文件处理、数据可视化等领域越来越凸显其价值。使用Python对学院招生的生源地信息数据进行筛选,清洗,统计、分析得到可视化图像数据。通过这些数据,采用算法对下一年学院招生数进行预测,给招生管理提供数据支持,也为学院长远的招生规划提供参考。

关键词: Python; 招生; 生源地; 算法; 行为预测

中图分类号:TP393 文献标志码:A 文章编号:1006-8228(2018)11-102-05

Abstract: In big data's today, Python's rich toolkits are increasingly highlighting their value in areas such as scientific computing, file processing, and data visualization. Use Python to filter, clean, statistical, and analyze the data of the students' enrollment information to obtain visual image data. With these data, algorithm is used to predict the number of college enrollment in the next year, providing data support for enrollment management, and also providing reference for the college's long-term enrollment plan.

Key words: Python; enrollment; student source; algorithm; behavior prediction

0 引言

Python是目前市面上用于大數据分析的优先选择,Python数据分析功能强大、全面,从数据抽取、收集整理、分析挖掘及展示,都可以在同一种 Python里实现,避免了开发程序的切换,Python的数据挖掘能力和产品构建能力兼而有之,是跨平台且开源的技术、成本又小。南大教育基金会通过数据分析出被受资助的学生对像,就直接将补款打入学生餐卡,而学生无需填表,不用审核,而避免了“假”贫困生;Knewton利用大数据分析来帮助学生设计个性化课程,让课程和教科书能够适应每个学生的差异,学生可以按照自己的节奏来控制学习进度,面不受到周围其他学生的行业影响[1]。

大数据正在成为促进组织创新、产业升级和经济发展的强大驱动力。其中,教育领域被认为是一个大数据的重要应用领域,研究大数据应用与教育领域的深度融合,是我国教育发展的现实需求和未来趋势。

1 Python在数据分析中的应用

数据时代,通过数据分析挖掘数据的价值,Pythony就是很好的选择,它包含了Numpy、Pandas、Matplotlib、Scipy 、Ipython等主要数据分析库,当掌握并熟悉了这些数据分析库的使用方法后,对于一个几千万行的csv数据的处理用Pandas只需要不到十秒,而且使用的代码行更少[2]。大数据技术将要做的数据及面临的问题定义为测量、收集、分析和报告,从而对招生资源以及安排力度进行重新调整,对历年在招生过程中产生的海量数据进行解释和分析,以评估学院进展,预测未来表现,发现潜在的问题,大数据实质上是对应用者在应用过程中所产生的海量数据进行系统性的分析,以实现掌握规律及预测行为表现的目的。本文采用的技术路线如图1所示。

2 基于python的学院招生生源地大数据分析

伴随近8年来全国高考报名人数总体的下降,录取规模的持续增加,录取率呈快速增长态势,随着高校录取率的不断提高,延缓了高考参与人数下降的造成的影响,录取率是有上线的,从2020年开始每年100%的入学率,也很难再保持每年700万以上的大学毕业生数量了。那么也就意味着学校招生供应总量也会很快下降,以后不仅社会招生难度在加大,学校招生也会进入到白热化。未来10年,对生源的争夺会愈演愈烈,所以要对生源地数据分析提前布局,了解我院生源分布情况,在提高学院自身的办学水平的同时开展长远的招生规划[3]。

当前福建省高考生源正也呈现下降的趋势如表1所示。家长和考生都更加倾向于知名度高的名牌高校,高校尤其是农林院校之间的生源竞争正在日趋白热化,招生工作面临着各种各样的挑战,学生的个性化选择与高校传统专业设置之间的不匹配导致很多专业无人问津,学生录取后不报到的现象日益严重。如何在这场巨大的、彻底的、颠覆性的变革中有效地利用大数据发掘招生数据的相关性,寻找到招生的新途径,使高校招生工作更具有实效性与科学性。现对我院 2010、2011、2012、2013、2014、2015、2016、2017年所有入学新生相关数据进行分析,并从中发现规律并找到有用的信息,用来掌握本院的招生宣传方式的侧重点。表1为我省2010年—2018年高考考生数。

本文基于python的学院招生生源地大数据分析—以福建农业职业技术学院为例,在学院历年招生信息数据中,使用Python工具作为数据分析与挖掘软件,分析学生报到的高考生源地各地区报名情况,把生源地形成图例进行对比与分析。

2.1 用python来做我校招生数据的科学分析

在众多的数据中,python提供了功能强大的三大模块:Numpy、Pandas以及Matplotlib。numpy提供了多维数组对象 ndarray,能直接对数组执行数学和元素级别的运算;Pandas主要提供快速便捷地处理结构化数据的大量数据结构和函数。matplotlib用于绘制数据图表, ipython能够极大提高python的编程速度,还用于交互式数据处理。Scipy内有用于解决科学计算中各种标准问题域的各种包[4],本文用到的是ipython的Jupyter Notebook作为IDE。提取出所需的数据,并将它可视化。

2.1.1 读取我校原始数据

如图2为我校招生原始的EXCEL格式的一部分数据,对我校自2010年至2017年在福建省各城市及省外的招生人数、各年招生总人数进行读取。首先导入matplotlib、pandas、numpy模块,读取数据代码,代码如下:

#coding:utf-8

import matplotlib.pyplot as plt

import pandas as pd

import numpy as np

import string

from pylab import *

df=pd.read_csv('data.csv',delimiter=',')

df.columns=['num','name','sex','addre','mail','tele',

'address','major','colle']

2.1.2 读取数据代码

def city(cy):

num=0

bools=[]

for i in df.addre:

if i.find(cy)!=-1:

bools.append(True)

else:

bools.append(False)

a=df [bools]

for x in list(a['addre']):

if cy in x:

num+=1

return num

2.1.3 以地区城市为判断进行筛选、计算并用可视化实现

mpl.rcParams['font.sans-serif']=['SimHei']

plt.style.use('ggplot')

plt.figure(figsize=(24,12))

plt.plot(x,y),

plt.xlabel(u'地区')

plt.ylabel(u'人数')

plt.title(u'各城市招生情况')

plt.legend()

plt.title(u'招生人数')

plt.ylabel(u'人数')

plt.xlabel(u'年份')

plt.bar(x,y,fc='c')

结果如图4所示:

由图4可知,在每年的招生人数中,福州地区的人数近几年来都是最多,而厦门与省外的人数都较少,原因可能是我校处于距福州市区40公里的南郊相思岭校区及在市区内另有一个校区的原因,地理位置在招生中起到了一定的相对优势,离家里近,假期回家方便;从这个因素就可得出在招生力度上这两个区域应为重点;而厦门的人数少,可能是因为厦门本身在经济上与福州不相上下,且又是个旅游城市。省外的招生人数较少,原因可能是高职校是普通的院校,若是普通专业特色性又不强,吸引外省的考生的诱因就没那么强,故也是招生人较少的原因。 泉州、漳州与南平这三个市区报考的人数相当,我市泉州,漳州是良好的水果生产基地,如平和的蜜柚,莆田的枇杷,龙眼都极具代表性。南平地区的食用菌,莲子等农业类的生产也极具特色,这也利于农业院校招生。故这三个地区是我院招生宣传的重点所在。

2.2 对2018年生源地招生人数预测

Python为我们提供了一个机器学习模块:sklearn,scikit-learn是Python的一个开源机器学习模块,它建立在Numpy、Pandas、Scipy和matplotlib模块之上能够为用户提供各种机器学习算法接口,可以让用户简单、高效地进行数据挖掘和数据分析。本次预测采用KNN算法加朴素贝叶斯算法。

2.2.1 KNN算法

K最近邻(k-Nearest Neighbor,KNN)分类算法,当测试对象的属性和某个训练对象的属性完全匹配时,便可以对其进行分类。KNN是通过测量不同特征值之间的距离进行分类。它的思路是:如果一个样本在特征空间中的k个最相似(即特征空间中最邻近)的样本中的大多数属于某一个类别,则该样本也属于该类别,其中K通常是不大于10的整数。KNN算法中,所选择的邻居都是已经正确分类的对象[5]。该方法在定义类决策上只依据最邻近的一个或者几个样本的类别来决定待分样本所属的类别。在KNN中,通过计算对象间距离作为各个对象之间的非相似性指标,避免了对象之间的匹配问题,在这里距离使用曼哈顿距离公式如公式⑴所示:

同时,KNN通过依据K个对象中占优的类别进行决策,而不是单一的对象类别决策。

2.2.2 朴素贝叶斯分类算法

贝叶斯分类是一类分类算法的总称,这类算法均以贝叶斯定理为基础,故统称为贝叶斯分类。而朴素贝叶斯分类是贝叶斯分类中最见的一种分类方法。它依据研究对象的某些特征来推断出该研究对象属于该研究领域的哪个类别[6]。朴素贝叶斯分类算法它的核心是贝叶斯公式如公式⑵所示:

同时朴素贝叶斯能多处理多分类任务,适合增量式訓练,尤其是数据量超出内存时,可以一批批的去增量训练。

from sklearn import neighbors

from sklearn.naive_bayes import GaussianNB

from sklearn.naive_bayes import MultinomialNB

导入算法库代码

for i in df.city:

city_num[]

num_d[]

city_num_g[]

num_d_g[]

knn=neighbors.KNeighborsClassifier()

train_x=[]

train_y=[]

test_x=[]

test_y=[]

cou=int(len(city_num))

train_x=city_num[0:cou]

train_y=num_d[0:cou]

test_x=city_num[cou:]

test_y=num_d[cou:]

train_x1=city_num1[0:cou]

train_y1=num_d[0:cou]

test_x1=city_num1[cou:]

test_y1=num_d[cou:]

設置训练集代码

if sum(tra1)/len(tra1)>=9:

print '学院在'+ `i`+'招生300人以上的机率为90%~100%‘

elif sum(tra1)/len(tra1)>=8:

print '学院在'+`i`+'招生300人以上的机率为80%~89%‘

elif sum(tra1) / len(tra1)>=7:

print '学院在'+`i`+'招生300人以上的机率为70%~89%‘

elif sum(tra1) / len(tra1)>=6:

print '学院在'+`i`+'招生300人以上的机率为60%~69%'

else:

print '学院在'+`i`+'招生300人以上的机率很小

print '学院2018年招生的人数为‘+n+以上

2018我院生源地招生信息情况与招生总数预测代码结果如下:

学院在福州招生300人以上的机率为90%~100%

学院在泉州招生300人以上的机率为90%~100%

学院在莆田招生300人以上的机率为60%~69%

学院在厦门招生300人以上的机率很小

学院在三明招生300人以上的机率为90%~100%

学院在龙岩招生300人以上的机率为60%~69%

学院在漳州招生300人以上的机率为70%~79%

学院在南平招生300人以上的机率为80%~89%

学院在宁德招生300人以上的机率为90%~100%

学院在外省招生300人以上的机率很小

学院2018年招生的人数为2350以上。

由此可见,学院由于地处福州,一些经济较落后的城市考生,会有较大的机率选择。福州省会城市的地理位置是吸引考生的原因之一,学院可在莆田、龙岩和厦门加强宣传。而对于外省,由于地理位置及学院本身是高职院校,知名度及影响力不足,故招生人数相对较少且是一种常态,则可从学院办学理念及创新模式上提高省外考生报考量。而对于泉州,漳州,南平,宁德等地区需要常态化的招生宣传。

3 大数据分析在教育方面展望

高校招生工作应借助各种信息平台的力量实现借力打力,更应该把数据信息收集及处理放在首要位置,助力于高校推广宣传、计划投放、专业设置、学生录取等招生过程的改进。

学院招生规模能促进学校与生源、企业用人单位的双向沟通,增强学校向心力和凝聚力,塑造优秀的学校文化。不少院校采取自主招生的办法,在当下有“二元制”招生模式,这样做容易将生源融入到校园文化,因为学校文化是学校的灵魂,它是一种以价值观为核心对全体师生进行学校意识教育的微观文化体系[7]。学校管理人员和生源认同学校文化,不仅会自觉学习掌握科技知识和技能,而且会增强主人翁意识、质量意识、创新意识。从而培养大家的敬业精神、革新精神和社会责任感,形成上上下下自学科技知识,自觉发明创造的良好氛围.故高职院校招生工作还可以从以下几个方面进行改进。

⑴ 高职院校扩大招生计划和转变办学模式。

⑵ 完善招生制度,提升招生效率的策略。

⑶ 增强高职院校自身内涵建设。

⑷ 根据专业设置进行单独招生。

⑸ 加强就业指导,以就业促招生。

⑹ 突出职业特色,深化教育教学改革,明确学校发展定位。

通过大数据进行招生分析,能够为每一所院校创设一个量身定做的环境和个性化的招生规程,还能创建一个早期预警系统以发现潜在的风险,为学院的多年招生提供一个富有挑战性而非减少的招生规模。因此,有识之士预言未来的学院招生也将是大数据驱动的新时代。我们应该积极迎接这个新时代,感知和记录更大规模和更多种类的数据,并且通过对这些数据的分析和处理,深度挖掘蕴含其中的核心价值。

4 总结

本文从应用视角出发诠释Python的概念内涵,通过梳理,把握大数据在教育领域应用的态势。在实践解析方面,结合我院历年校招生信息数据,实现大数据应用驱动下的我院招生生源地数据分析。大数据招生数据的分析应用远不止这些,可对学生报到率做出分析,可对区域生源做出分析,可对报考院校原因进生分析,本文只从报考考生生源地一个角度利用Python来分析我院学生生源地情况,以及预测我院的招生人数。进而找到今后招生工作的宣传重点,及发现可挖掘数据。这些应用只是大数据应用的冰山一角,今后可从多个角度对学院的招生,管理及其他方面用大数据技术分析提取更多有关于教育的信息,为学校的发展贡献微薄之力。

参考文献(References):

[1] 聂晶.Python在大数据挖掘和分析中的应用优势[J].广西民族大学学报(自然科学版),2018.1(24).

[2] 刘海涛,林燕妮.大数据时代语言研究的方法和趋向[J].新疆师范大学学报(哲学社会科学版),2018.39(1):72-83

[3] 邓广彪.预测性大数据分析在高校招生中的应用研究[J].微型电脑应用,2017.33(11)

[4] 朝乐门,邢春,晓张勇.数据科学研究的现状与趋势[J].计算机科学,2018.1:1-13

[5] 陈伟,李红,王维.一种基于Python的K-means聚类算法分析[J].数字技术与应用,2017.10:118-119

[6] MatchingTools: A Python library for symbolic effective field theory calculations Juan C. Criado Computer Physics Communications,2018.227.

[7] 韩志豪.人工智能背景下的Python教学探索[J].计算机时代,2018.7:76-81

猜你喜欢
招生算法
基于MapReduce的改进Eclat算法
Travellng thg World Full—time for Rree
进位加法的两种算法
基于PHP招生管理信息系统
基于Android的招生报名系统设计与实现 
一种改进的整周模糊度去相关算法