基于阿里云大数据平台的“数据挖掘”课程实验教学方法探讨
2018-07-09王振武
王 振 武
(中国矿业大学(北京) 机电与信息工程学院,北京 100083)
0 引 言
随着高等教育内涵式发展的不断深入,人才培养对“数据挖掘”课程的实验教学方法提出了更高的要求。传统的教学方式是根据数据挖掘课程的教学大纲要求,在实验机房内组织学生对数据挖掘相关算法进行编程实现与分析验证,并且实验数据和场景大多是模拟的“玩具例子”,和商业级应用实践距离较远,这使得学生对该课程的学习仅仅停留在对算法原理的理解层面,导致理论和实践的严重脱节,这种教学方式已经不能适应现代教学的要求。实事求是地讲,以前由于开发高水平的可视化数据挖掘平台以及搜集相关行业数据都比较困难,在数据挖掘课程中开展贴近实战的实验教学是有难度的。近几年,随着大数据和云计算技术的快速发展,数据挖掘技术已经在诸多行业中进行了应用[1-4],我国已经把大数据作为基础性战略资源,实施了国家大数据战略[5],因此大数据产业的发展急需数据挖掘专业人才,而高等学校和企业的产学结合、协同育人也得到了国家的强力支持。2015年国务院办公厅颁布的《关于深化高等学校创新创业教育改革的实施意见》[6]中指出:要“探索建立校校、校企、校地、校所以及国际合作的协同育人新机制,积极吸引社会资源和国外优质教育资源投入创新创业人才培养”; 2017年中共中央办公厅和国务院办公厅进一步颁布了《关于深化教育体制机制改革的意见》[7],意见进一步明确:“实施灵活的学习制度,鼓励教师创新教学方法,深入推进协同育人,促进协同培养人才制度化。”;与此同时,工业和信息化部在2017年颁布的《大数据产业发展规划(2016-2020年)》[8]中也提出“加强大数据人才培养,整合高校、企业、社会资源,推动建立创新人才培养模式,建立健全多层次、多类型的大数据人才培养体系”;为进一步提高高等教育教学质量,教育部更是连续几年面向企业征集产学合作协同育人项目,汇聚企业资源支持高校专业综合改革和创新创业教育[9],正是得益于此,基于阿里云大数据平台开展了数据挖掘课程的实践教学改革。
1 阿里云大数据平台介绍
目前,主流数据挖掘平台可大致分为两类:①以Weka等为代表的非商业化、免费开源的数据挖掘软件;②以阿里云大数据平台等为代表的企业级大数据可视化分析平台。以Weka为代表的开源机器学习和数据挖掘平台,集成了常见的机器学习算法,用户可以在Weka中集成自己的算法,甚至对其进行扩展来实现自己的可视化数据挖掘工具。此类软件的优点是代码开源和免费,获取成本低,缺点是支持的数据挖掘任务和数据类型不完整、缺乏具体领域的数据挖掘应用、平台代码学习周期较长且不支持商业级的分布式计算。与之对应,阿里云大数据平台是商业化的数据挖掘系统,具有如下明显优势:
(1) 数据挖掘功能丰富。平台封装了100余种算法组件,内容不但覆盖数据预处理、回归、分类、聚类等基础数据挖掘内容,而且涵盖文本分析、统计分析、个性化推荐、图像识别、语音识别以及社交网络分析等多种综合应用场景,部分内容如图1所示。
图1 阿里云大数据平台部分功能
(2) 大数据挖掘支持能力强。平台能够处理结构化、半结构化和非结构化的离线数据或实时数据,如图2所示,依托自主开发的飞天分布式操作系统和MaxCompute大数据计算服务,平台向用户提供多种分布式计算模型并能够快速地解决海量数据的计算问题,这对于大数据挖掘是不可或缺的基础性支撑,也是常规实验室或开源软件无法企及的。
图2 阿里云大数据平台的分布式计算
(3) 操作简单灵活。阿里云大数据平台提供可视化的操作界面,通过拖拉拽的方式拖动算法组件拼接实现业务逻辑,提供完整的数据挖掘链路,做到一站式体验,平台的体系结构如图3所示。该平台整合了完整的数据挖掘流程,它支持不同数据源的采集与整合,即数据既可以来自云端系统也可以来自本地业务系统,数据既可以是结构化的数据也可以是流式实时数据;平台支持各种数据预处理功能,如数据清洗与转换,支持类型丰富的数据模型以及数据挖掘功能,支持数据仓库(ODPS)存储和联机分析处理(OLAP)功能,数据处理流程和结果以可视化形态展示,以满足不同用户的应用和数据消费。
图3 阿里云大数据平台的体系结构
2 基于阿里云大数据平台的实验教学方法
教育工作者从不同的角度对数据挖掘课程的实验教学方法展开了研究。有的基于开源数据挖掘平台或编程语言对数据挖掘算法进行设计和分析[10-11],有的讨论了如何构建数据挖掘实验平台问题[12-13],还有部分作者讨论了某一特定行业中的数据挖掘实验教学问题[14-15],但这些研究工作还是停留在传统的数据挖掘课程实验教学模式上,仅仅解决了学生对某些具体算法原理的理解问题,还无法真正让学生体会到数据挖掘技术的商业应用与实践。本文依托教育部-阿里云产学合作专项综合改革项目,基于阿里云大数据平台提出了线下编程和线上操作相互结合、理论算法实现与商业应用实践相互印证的实验教学方法,实验内容分为3个层次。
第1层次算法原理验证性实验。此阶段在线下进行,学生使用Java语言或Matlab工具对数据挖掘的常用算法编程实现并进行分析验证,具体算法包括:特征选择与特征提取算法(Fisher判别法、主成分分析法等)、关联规则挖掘算法(Apriori算法)、分类算法(决策树、KNN、朴素贝叶斯以及支持向量机等)、聚类算法(K-means、K-mediods等)以及协同过滤算法等。此阶段属于算法原理验证阶段,通过代码理解算法运行机制以及熟悉算法的优缺点,为后续的线上实验打下良好的基础。
第2层次数据挖掘基本任务实操性实验。此阶段基于阿里云大数据平台在线上进行,对数据挖掘的基本任务进行实战环境训练。如图4所示,阿里云大数据平台提供可视化的操作方式,学生通过左侧功能导航栏和实验组件/模型列表来选择相应的实验内容,在工具栏和拖拽式图形编辑区进行实验的设计和参数设置,运行结果将以可视化的图标方式展示。下面以预测某银行用户是否有定期存款(分类问题)为例,来说明具体操作流程,具体包含3个步骤:准备示例数据、模型训练与评估、结果比较与展示。
1.功能导航栏;2.实验、组件、模型列表;3.工具栏;4.DAG编辑区域;5.参数设置;6.运行按钮
图4 阿里云大数据平台的操作方式
在数据准备阶段用户通过在平台上创建目标表bank-data,然后上传本地数据(共4万条)来完成试验数据准备工作(见图5),上传的数据可以在平台上进行查看以验证数据的准确性。数据上传完毕之后可以进行分类模型的训练与评估(见图6),bank-data表中的数据通过拆分,一半用来做模型训练,一半用来做模型验证,本试验中采用随机森林、逻辑回归、归一化+逻辑回归等3种模型分别进行训练,并通过对模型训练结果的数据验证来判断训练模型预测的准确性,3种模型的评估报告可以通过混淆矩阵来查看(见图7)。从图7中可见,随机森林(预测1)、逻辑回归(预测2)和归一化+逻辑回归(预测3)的准确率分别为90.123%,90.128%和90.06%,即随机森林和逻辑回归方法在参数采用默认值的情况下模型准确率几乎相同,归一化+逻辑回归的准确率相对稍微偏低。另外,在此实验中学生们可以结合业务数据和模型经验尝试寻找模型的最优参数,体会和领悟模型调参的经验和技巧。
第3层次数据挖掘场景应用性实验。此阶段基于阿里云大数据平台在线上进行,属于综合性实验。下面以个性化产品推荐为例说明在阿里云大数据平台上的操作流程。个性化推荐系统和算法实现都很复杂,单凭个人之力很难在短时间内完成,此时阿里云大数据平台的优势就体现了出来,通过该平台学生可以非常方便地了解个性化推荐的各个流程环节(见图8)。该实验涉及到的算法包括:特征抽取算法、兴趣评分算法、矩阵分解算法、相似度计算优化以及协同过滤算法,实验流程分为5个步骤:添加云计算资源、添加业务配置数据、配置推荐场景算法、API对接以及结果查看。阿里云大数据平台基于阿里云自主研发的云计算平台,进行个性化推荐首先需要添加云计算资源,例如大数据计算服务、表格存储以及云监控等,然后配置推荐需要的业务数据,具体包括用户数据表、用户属性维度表、物品数据表、物品属性维度表、行为数据表、可被推荐物品表等(见图9)。
图5 准备示例数据
图6 模型训练与评估
图8 个性化推荐的基本流程
实验第3步是进行场景推荐算法的配置,推荐场景是指在客户的APP中使用推荐功能的模块名称,场景隶属于业务,使用到的数据就是业务中配置的数据,场景包含一个或多个算法流程,每一个算法流程代表一种推荐物品逻辑,由多个算法拼装组成(见图10)。系统之间的对接通过API方式实现(见图11),API包括日志API、推荐API和算法任务API 3类,日志API用于接收业务系统采集数据,以行为类数据为主,推荐API提供推荐物品的物品列表,用于在业务系统中展示给消费者进行的推荐,算法任务API用于启动离线计算流程的算法任务以及查看任务状态等功能(见图12)。推荐后的效果(如点击率等指标)用户可以通过图形化的界面加以查看,通过这样一个完整的流程,学生可以在实操环境中非常清楚地了解个性化推荐的流程和原理,这是在传统的实验室教学中所无法完成的。
图9 添加业务配置数据
图10 场景推荐算法配置
图11 API对接
通过上述3个层次的实验教学,学生不但可以理解数据挖掘算法的具体原理,而且通过在阿里云大数据平台上的实际操作练习更加深刻地体会到数据挖掘技术实践应用的魅力。通过教育部-阿里云产学合作专项综合改革项目的实施,在总结数据挖掘课程理论和实验授课经验的基础上,编写并出版了《大数据挖掘与应用》[16]一书,以便更好地辅助实验教学活动的开展,实践证明基于阿里云大数据平台的数据挖掘实验教学是行之有效的。
图12 结果查看
3 结 语
随着人工智能和大数据技术的发展和应用,对数据挖掘人才的需求持续高涨。在数据挖掘课程的实验教学中,传统的算法编程实现式的教学方法已经不能适应高等教育内涵式发展的新要求。本文基于阿里云大数据平台提出了线下编程与线上操作相结合、算法理论实现与商业应用实践相互印证的教学方法,并给出了算法原理验证性实验、数据挖掘基本任务实际操作实验以及数据挖掘场景应用性实验等3个层次的渐进式实验教学组织方式,不但激发了学生的学习兴趣,而且深化了学生对数据挖掘技术的理解,教学实践证明了该方法的有效性。
参考文献(References):
[1] 韩阜益,陈建荣,唐俊峰,等.数据挖掘在高校资产管理中的应用[J].实验室研究与探索,2017,36(3):295-298.
[2] 朱海兵,张济韬,郭雅娟,等.基于数据挖掘的电力变压器家族性缺陷预警[J].实验室研究与探索,2016,35(6):37-41.
[3] 俞 春,袁 芳,刘启新.高校信息资源服务的探索与实践[J].实验技术与管理,2011,28(4):228-230,243.
[4] 徐 宁,王 栋,李 曼,等.血液白细胞图像自动识别系统开发与应用[J].实验技术与管理,2012,29(12):44-47,50.
[5] 中共中央办公厅、国务院办公厅. 中华人民共和国国民经济和社会发展第十三个五年规划纲要[Z].2016.
[6] 国务院办公厅.关于深化高等学校创新创业教育改革的实施意见[Z].2015.
[7] 中共中央办公厅、国务院办公厅.关于深化教育体制机制改革的意见[Z].2017.
[8] 工业和信息化部.大数据产业发展规划(2016-2020)[Z].2017.
[9] 教育部.关于征集产学合作协同育人项目的函[Z].2016.
[10] 黄 岚,周 娟.基于Weka的应用型本科数据挖掘课程实验设计[J].电脑知识与技术,2017,13(21):7-9.
[11] 岳 强,胡中玉,文 瑾,等.基于R语言的数据挖掘课程实验设计[J].微型电脑应用,2016,32(5):31-37.
[12] 谢瑶兵,向 阳,黄震华.基于Android移动终端的数据仓库与数据挖掘课程实验平台建设[J].教育教学论坛,2014(6):248-249.
[13] 向 阳,郭 鑫,陈 千,等.数据仓库与数据挖掘教学实验平台构建研究[J].教育教学论坛,2014(9):253-255.
[14] 骆世广,骆昌日,张新华.基于综合型设计性实验项目的金融数据挖掘实验教学[J].教师教育论坛,2013,26(3):83-87.
[15] 王瑞祥. 抛锚式教学在中医院校数据挖掘实验教学中的应用[J].西部中医药,2017,30(4):54-55.
[16] 王振武.大数据挖掘与应用[M].北京:清华大学出版社,2017.