基于R语言的大数据挖掘课程建设研究

2018-04-24 05:01渠畅
无线互联科技 2018年4期
关键词:R语言课程建设实践

渠畅

摘 要:为了解决数据挖掘课程建设中存在的不足之处,培养符合时代要求的大数据挖掘人才,引入R语言作为课程的实践软件。R语言作为目前流行的数据分析软件,有着简单易学、功能强大、可扩展性强等特点,在教学过程中可以充分利用其功能包生成各种算法的过程示意图或动画来提高教学效果,同时便于开展课程的实践教学环节。文章对基于R语言的大数据挖掘课程建设进行研究。

关键词:大数据挖掘;R语言;实践;课程建设

1 R语言简介

R语言是一种用于统计计算的编程语言和环境,它是由S语言发展而来的。R语言擅长统计建模和解决数据分析相关的问题,是一種为数据而生的程序设计语言。不同于其他主流的计算机编程语言,R语言使用命令加回车的方式进行操作,以人机对话模式进行交互,使用起来较为简单。R的核心要素是数据和函数,任何数据分析都可以理解为通过函数来操作数据,学习R语言无需掌握复杂的语法。R语言可以很方便地和几乎市面上所有的数据库系统相连接,再加上诸多的R数据库支持包,使R能够方便地对数据库进行读写操作,实现的技术包括ODBC和JDBC两大方面(其中RJDBC和RpgSQL需要Java的支持)。R语言中提供了大量数据挖掘相关的函数及功能包[1]。

通过以上R语言的简介可以总结出选用R语言作为数据挖掘课程的实践软件有以下5个优点:(1)R语言是免费的,相比多数价格不菲的商业统计软件而言,其优势显而易见。(2)通过数据挖掘课程的学习使得学生认识并掌握R语言的数据分析方法,为学生今后的职业发展提供更加广阔的选择空间。(3)R语言有着强大的图形和动画功能,在教学过程中可以方便地通过R语言生成各种数据挖掘算法的过程示意图和过程演示动画,能有效提高教学效果并增加学生的学习兴趣。(4)R语言的简单、易操作性可以使得拥有不同计算机编程基础的学生都能在较短时间内学会利用R语言进行数据挖掘实践操作,便于开展课程的实践教学。(5)R语言能支持各种数据库系统,因此对于先修课程数据库系统所使用的实践软件无特别要求,方便衔接形成课程体系。

2 教学大纲设置

美国计算机学会数据挖掘专门兴趣小组(ACMSIGKDD)曾在2006年拟定了一套公认的标准数据挖掘课程的教学大纲[2]。大纲建议将数据挖掘的教学内容分为基础和高级专题两部分,其中基础部分包括数据挖掘导论,数据预处理,数据仓库与联机分析处理(Online Analytical Processing,OLAP),关联规则与频繁模式挖掘、分类、聚类与孤立点分析,时间序列与序列模式,文本与Web挖掘,数据挖掘的可视化,数据挖掘应用十章内容。高级部分主要是对基础部分进行进一步的深入扩展,对不同的挖掘算法进行比较分析,并增加了数据流挖掘、多媒体数据挖掘等内容。

考虑到本科阶段该课程的教学总学时一般为32~48学时,且学生的理论背景知识有限,因此需要对标准大纲的内容作一定的调整,对理论部分可以做一定删减而增加一些大数据相关的背景知识,让学生对数据挖掘的大环境有一个完整的认识。同时为了突出培养学生的实践能力,课时安排以实践教学为主,理论教学为辅。实践教学中以学生为主体,教师利用实践任务引导学生学习相关知识,在实践环节中巩固理论教学[3]。可以先安排2~4个学时来讲解R语言的基础知识,让学生掌握R语言在数据挖掘过程中的应用方法,并通过介绍一些大数据挖掘的案例让学生了解数据挖掘技术的主要应用领域及当前的研究热点问题,增强学生对数据挖掘课程的学习兴趣。在充分调动了学生对数据挖掘的兴趣后,可以通过增加课外学习学时来弥补课内学时的不足。教师可以充分利用网络上的大量有关数据挖掘的学习资源,例如一些国外大学的在线课程,教学案例等。对这些资料进行分类整合,并通过邮件、微信公众号等方法推送给学生,提高学生的课后学习效果。

3 基于R语言的数据挖掘课程教学

以下以数据挖掘中常用的聚类算法为例,介绍如何利用R语言作为数据挖掘实践软件来开展教学。聚类分析是数据挖掘中一个非常重要的领域,将数据划分成有意义或有用的组(簇),使同一类别内的个体具有尽可能高的同质性,而不同类别之间的个体则应具有尽可能高的异质性[4]。聚类算法有多种,一般分为两大类:基于原型的聚类和基于密度的聚类。本科教材中主要介绍基于原型的K-means算法,在课时充足时也可补充介绍基于密度的Dbscan算法。

在介绍完聚类算法的基本概念后,可以通过加载一个名为animation的R包来演示K-means算法的运算过程。该R包中提供了许多关于统计、数据分析类的动画功能,对教学可以起到辅助作用[5]。教师只要调用该包中的相应函数就能生成算法的执行过程动画,并可以通过转换函数将动画转换为GIF和FLASH等格式或者利用LaTeX将动画嵌入到PDF文件中。利用animation包中的生成的K-means算法的动画截图如图1—2所示,该动画直观地展示了从最初的随机中心开始,一步一步迭代计算距离并更新中心直到结果不再变化,完成聚类。通过算法动画的演示可以在很大程度上帮助学生来理解枯燥的挖掘算法原理。

在介绍完K-means算法的原理之后,就可以通过一些实例来展示如何利用R语言来完成聚类。R语言可以很方便地利用read函数读入TXT或者CSV格式的数据,命令行如下:

data1 <- read.table("data/dataSample.txt", header = TRUE)

data1 <- read.csv(file = "data/dataSample.csv")

如果要读入EXCEL文件也可以通过调用readxl包来实现,命令行如下:

library(readxl)

data1 <- read_excel("data/dataSample.xlsx", sheet = 1)

除了可以导入外部数据进行挖掘,R语言还有另一个便利之处:其基础包和其他扩展包中都自带了许多数据集,教师可以充分利用这些数据作为数据挖掘的挖掘对象。通过输入命令:data( )就能列出所有自带的数据集的名字和简介,再通过数据集的名称就能直接调用相应的数据集。以UCI数据集中的一个的iris数据集为例,该数据集中包含了4个鸢尾花的测量数据和一个分类数据。以下为利用K-means算法将iris数据集中前四个测量数据聚成三大类的命令行:

data("iris") #读取iris数据

data1<-iris[,1:4] #将iris数据集中的前4列数据赋给data1变量

data2<-kmeans(data1,3) #利用K-means算法将数据聚为3类

最后的聚类结果存放在data2中,查看该变量可以看到聚类产生的三大类的大小、每个聚类中各个列值的平均值、每个记录所属的聚类等信息。讲解完最为经典的K-means算法,教师还可以在课时允许的情况下适当补充介绍其他聚类算法。对于不同的数据集不同算法可能得到不同的聚类结果,在一些情况下,K-means算法并不能得到较好的结果,例如它不能识别非球形的簇,这时可以考虑使用基于密度的聚类方法。DBScan算法是将所有点标记为核心点、边界点或噪声点,将任意两个距离小于eps的核心点归为同一个簇。任何与核心点足够近的边界点也放到与之相同的簇中。R语言中同样提供了DBScan算法的实现函数,用户可以调用fpc包中的DBScan函数进行聚类。在讲解DBScan算法时,教师可以通过对同一个数据集同时使用K-means算法和DBScan算法,并将两个聚类结果以图形方式对比展示出来。例如教师可以人为构造一组数据,这些数据是基于sin函数和cos函数构成的两组点。对该数据集分别利用K-means算法和DBScan算法的不同结果示意如图3—4所示。可以很明显地看出对于该数据集,DBScan算法能得到更好的聚类结果。

4 课程实践与考核方式设计

教师可以将实践内容分成两大类:验证实践和案例实践。验证实践主要是对教材和教师的理论讲解部分作重复性验证,主要目的是帮助学生理解并巩固理论部分的知识。案例实践则是学生在掌握基本的数据挖掘方法后,独立完成教师布置的案例作业,从而进一步提高学生的独立解决数据分析问题的能力。针对课程内容的不同特点,开展课程实践时可以分为3步走。(1)熟悉挖掘工具:该部分的主要任务是让学生学会R语言的基本操作。(2)学习数据挖掘基本算法:该部分主要任务是让学生学会使用R语言的数据挖掘相关的函数和功能包。(3)综合数据挖掘技术的训练:该部分主要任务是让学生学会数据挖掘的整套流程操作,能独立解决数据挖掘相关的实际问题。

课程的考核方式应该能够客观地反映学生对数据挖掘的基本原理和算法应用的掌握程度。由于完成数据挖掘任务往往需要较大规模的原始数据,且如果没有计算机的支持,一次数据挖掘可能需要数小时,纸质试卷无法胜任,因此传统的笔试只能考查学生对于一些基本概念的记忆程度,无法全面反映学生的真实水平。因此课程考核应以能力测试为中心,将实践操作在总成绩中的占比提高到50%以上。可以启用电子考卷[6],让学生在规定时间内利用R语言对给定的原始数据进行数据挖掘,并将挖掘结果整理成报告上传至指定服务器。实践成绩从两方面进行评定:通过查看结果报告判断挖掘结果是否真实有效;通过调取并查看学生所使用过的R语言的命令行判断挖掘过程是否合理。当然这种电子考卷需要教师在考试前充分准备电子试题库,并且对于挖掘过程部分的判定需要教师花费较多精力,因此还需不断地摸索改进。

[参考文献]

[1]卡巴科弗.语言实战[M].王小宁,译.北京:人民邮电出版社,2016.

[2]石向荣.基于TDC模式的数据挖掘课程教学新方法[J].经济师,2015(5):311.

[3]黄剑.任务驱动探究式教学模式在数据挖掘课程中的应用研究[J].电脑知识与技术,2014(10):1253-1255.

[4]陈封能,斯坦巴赫,库玛尔.数据挖掘导论[M].范明,范宏建,译.北京:人民邮电出版社,2013.

[5]岳强,胡中玉,文瑾,等.基于R语言的数据挖掘课程实验设计[J].微型电腦应用,2016(32):31-34.

[6]夏晶晖.应用型本科教学中技能型课程考核方式的改革[J].西南师范大学学报(自然科学版),2013(38):193-196.

猜你喜欢
R语言课程建设实践
基于GPS轨迹数据进行分析改善城市交通拥挤
基于R语言的Moodle平台数据挖掘技术的研究
基于卓越计划的金属结构材料课程实践化改革与建设
资源、生态与环境学科群体系下普通地质学课程建设思考
注重统计思维培养与应用为主导的生物统计学课程建设