李会民,王延仓,马桂英
(1.北华航天工业学院 计算机学院,河北 廊坊 065000;2.北华航天工业学院 遥感信息工程学院,河北 廊坊 065000;3.北华航天工业学院 图书馆,河北 廊坊 065000)
作为航天特色院校,我校电子与通信工程专业研究生开设了“数据挖掘技术”课程,结合我校培养要求,对“数据挖掘技术”课程教学与实践进行了一系列的探索与改革。“数据挖掘技术”课程本身是实践性很高的课程,是其他专业领域开展科学研究的重要工具,是为其他专业研究服务的[1](350)。
数据挖掘是指从数据库或流数据的大量数据中通过分析、处理,揭示出隐含的、先前未知的并有潜在价值的信息的过程。也可以认为,数据挖掘是一种决策支持手段,它主要基于人工智能、机器学习、模式识别、统计学、数据库技术和可视化技术等,通过不同算法实施,自动化地分析企业给定的数据或实时到来的流媒体数据,作出归纳性的推理,从中“挖掘”出潜在的、有价值的模式和规律,从而帮助决策者调整市场策略,减少风险产生,作出正确的决策。数据挖掘技术的知识发现过程由以下三个阶段构成:第一是数据准备阶段;第二是数据挖掘阶段;第三是结果表达和解释阶段。数据挖掘也可以与用户或知识库交互。现在,许多高校的数据科学与大数据专业、人工智能专业、软件工程专业大都开设有“数据挖掘技术”这门课程,工科研究生培养中也都开设有此课程,足以见数据挖掘技术之重要。除了传统的基于数据库的挖掘技术外,现在又兴起对大数据、流媒体数据进行挖掘的技术,这相较于传统数据挖掘有些区别,主要是处理的数据对象不同,大数据由于数据量大和类型多样化,甚至大部分是非结构化数据和半结构化数据,而传统数据技术都是基于结构化数据处理和静态数据库的,因此,新的数据挖掘技术要能运行在分布式集群中,支持大数据的挖掘,也要在算法上进行改进,支持实时流媒体数据的挖掘处理,总之,数据挖掘技术要与时俱进,跟上时代潮流。可喜的是,目前已有基于大数据和流媒体数据的挖掘软件,如针对流数据处理分析的软件有Storm、S4、Flume、Streams、Puma、DStream、SuperMario、银 河流数据处理平台等;基于大数据挖掘的软件有Dremel、Hive、Cassandra、Impala、Pig等;针对大规模图结构数据的挖掘处理的软件有Pregel、GraphX、Giraph、PowerGraph、Hama、GoldenOrb等。数据挖掘过程如图1所示。
图1 典型数据挖掘过程
因此研究生培养过程中,为了更好适应研究领域处理数据的需要,需要切实掌握数据挖掘相关技术,并通过大量的专业领域挖掘案例,结合本专业实际才能尽快入门和掌握这门技术,将之熟练运用到相关专业的研究中去。目前,随着“人工智能”、大数据、“物联网”、云计算时代的到来,各行各业的数据获取变得很方便,如何从这些海量领域数据中挖掘出有价值的专业知识、规律,是学习和掌握”数据挖掘技术”课程的目的[2](93)。
数据挖掘技术能运用统计、OLAP在线分析处理、信息资料检索、机器深度学习、专家系统和模式识别等方法从海量的数据中挖掘出有价值的内容,从而帮助决策者做出准确判断。如今流行的车牌识别、人像识别技术都与数据挖掘之机器学习有联系[3](146)。数据挖掘技术是结合了其他多领域的综合学科,与大数据技术、人工智能、机器学习、多源数据融合技术存在密切的联系,它们都可以归为数据挖掘的概念。“数据挖掘技术”本身的特点也决定了在教学过程中的特殊性,即注重结合实际专业的应用性,结合本专业实际,适当调整和优化数据挖掘算法,以更好地适应本领域科学研究的需要。“数据挖掘技术”课程的前导课程是数据结构、数据库技术、程序设计。要求研究生能熟练掌握常用的数据挖掘算法[4](95),如关联规则、对数据分类和聚类,特别是对大数据的处理,能熟练运用一种编程语言,C或C++、JAVA或者PYTHON语言。
针对不同类型的学生,对此课程要求也有所不同。本科生阶段开设此课程,多数是要求了解和掌握相关技术,并进行一定的案例操作,为后续学习打下基础。而研究生培养阶段开设此课程,多数是通过掌握数据相关技术,对本研究领域开展研究工作,是作为一种工具出现的。针对不同学校,开设此课的侧重点也有所不同。要针对研究生的专业特点和个人编程基础,开展个性化因材施教。本届选修本课的共十二名研究生,三分之二的研究生本科专业与计算机相关,其余的有通信工程、控制工程专业。不管是计算机相关专业和其他专业,他们普遍存在程序设计理论基础差和编程实践少的问题。问卷调研和座谈走访显示,他们虽学过一定的编程,但大多数人只是能应付课程考试,缺乏实际案例挖掘经验与项目驱动。
选择一种合适、顺手的编程语言对于掌握数据挖掘技术是十分必要的[5](129-130)。综合比较常用程序语言,发现PYTHON和java语言都易于学习和上手,对基础要求不高,况且有多种支持此语言的数据挖掘组件库供选择使用,也容易自学和扩展,况且用java语言编写的程序兼容性较好,因多数软件都是基于java环境运行的。学习时在快速掌握基本语法结构后,结合实际挖掘领域案例来加快对语言的理解和掌握,也训练了挖掘算法的使用,实在是一举多得的事情。我们在实际教学中引入了“电商用户行为分析数据挖掘分析”“电影推荐”“公交站点优化”等案例[6](217),从而激发了研究生的学习兴趣,提高了他们分析问题和解决问题的能力。通过分组协作完成的模式,也促进了他们之间的思想交流和经验总结、创新思维表达方式、团队合作意识和能力的提高,为后面专业领域研究打下了坚实的基础。
“数据挖掘技术”课程教学中开展了多种教学方式。首先,在教学过程中融入思政元素,培养具有吃苦耐劳、耐得住寂寞、精益求精的航天精神,传递社会正能量[7](108)。其次,学习方法有针对性,重视实践教学在该课程中的重要作用,该课程对研究生能力的培养主要针对航天电子与通信工程专业,培养数据挖掘分析能力是课程的最终目标。最后,教学中通过案例驱动,分层次带领研究生进行企业学习与实习,将面覆盖到所有研究生,使所有研究生学有所成、学有所得[8](141)。研究生能力的提高能够带动研究生做科研、参加研究生竞赛等活动。再结合导师的项目实际,以形成项目驱动教学、教学促进项目的良性循环研究模式。整个教学内容和方法设计如图2所示。
图2 教学内容和方法设计
经过多年的课程实践建设,完成了“数据挖掘技术”课程大纲的撰写及授课计划的制定,并根据教学情况及社会需求不断调整;特别是一年来在新冠疫情影响下,更是根据课程目标需求,设计了线上教学案例,案例的工作量、难度适中,顾及各个层面、不同专业背景的研究生,使所有研究生都能学有所长。另外,在教学中自觉引入思政教育,结合学校航天特色,课程与案例中有意识地融入了传递航天精神、不成功决不罢休精神,通过介绍航天科学家钱学森、孙家栋等英雄的事迹,传递社会主义核心价值观、社会正能量和正义感等内容,有利于研究生更好地踏入社会,融入专业领域研究工作中。为适应航天专业特色,我们编制了“数据挖掘技术”教材讲义、辅助阅读等资料。由于国内没有与大纲完全吻合的教材选用,课程团队教师针对大纲内容自编了讲义和实验指导文档,并指导研究生进行课外资料的选择和阅读,达到了扩充知识面和提高研究能力的目的。课堂教学完成后,后期进行课程网络资源建设。本课程利用本校图书馆电子资源和网络进行师生交互,利用学校泛雅课程教学平台、雨课堂在线教学平台、超星学习通平台进行课程资源共享,学校图书馆也提供各类电子资源、学习网站链接,寻求多种问题解决方法,以促进研究生自学,同学们与老师课堂交流外,还可以通过教学网站的论坛讨论问题,满足有针对性、个性化学习需要。
教学中,针对不同研究生层次,引入多个当今主流案例教学,如博客访客分析、购物用户分群、抖音粉丝分类等。电商用户行为分析是综合运用数据挖掘技术的一个案例之一。数据来源是某网站每天的访问量,数千万次访问量非常巨大。为了便于初步分析,选取近10个月时间内某地区的所有用户访问的详细记录作为原始数据集,总共包括7,986,459条记录。非结构化的数据结构包括USERID、ACCESSTIME、WEB、WEB-PAGE、TITLE、LABALE、CLASS、KEYWORDS等。然后将其存入HBASE列式数据库备用。对其进行数据处理与分析挖掘如下:第一是获取用户访问网页的原始记录;第二是对数据进行多维度分析,包括ACCESSTIME、CONTENT的分析,流失用户分析以及用户分群等分析;第三是对数据进行预处理,包含数据去重、清洗、缺失值填充、依据关键字分类等处理,对数据预处理质量的好坏,直接关系到后继挖掘的效率和意义,通常数据预处理所花费的时间占整个数据挖掘过程的70%左右;第四是以用户访问网页后缀为关键条件,对数据进行分类及聚类处理;第五是针对得到的不同数据,使用几种推荐算法进行对比,通过模型评价,得到较好的最优推荐模型。通过模型对样本数据进行预测,获得推荐结果提供给电商平台,以改进电商平台的服务质量,提高销售量和留下老客户。
“数据挖掘技术”课程教学与实践中,我们尤其重视实践教学的作用,整个课程内容以多个案例驱动,涉及到案例完成所需的各部分技术,分模块进行讲解、实际操作,将案例融入课程教学的全程虽不是首次,但案例质量的好坏、与项目紧密程度就显得相当重要,通常我们会选择跟他们研究方向、领域相近的案例,进行个性化教育与实践。通过这种任务驱动的授课方式,研究生能够在学习全程精力集中,抓住学习重点。在授课过程中,除部分老师讲解外,多次使用讨论课、启发式、探讨式教学和研究生登台讲解相结合的教学方法,从而锻炼他们的表达能力、沟通能力和团队协作能力,通过这些尝试来探索最适合本课程的授课方式。在实施过程中,除了需要注意讨论课、启发式和探讨式教学对研究生学习的积极作用外,还特别注意具体细节上的开展。如从研二上学期,开始推荐研究生到适合的基地实习。历年来,多次选派大部分研究生到我校的河北省遥感协同创新中心、北京软件测试中心锻炼,产教融合的教学特色使研究生能够在做数据分析处理与挖掘的项目中成长,在实践中得到锻炼。使得培养的研究生能力更适合航天专业领域的需求,从历年就业情况来看,我们的“数据挖掘技术”课程教学模式改革与探索是行之有效的,也逐渐推广到其他课程的教学中。
在课程考核方法上,因为是研究生培养阶段,对“期末考试+平时成绩”的考核机制说“不”。因这种考核方式忽视了对研究生动手实践能力的考核,不利于研究生科研能力的培养。“数据挖掘技术”课程注重对案例操作能力的考核,在课程完成后,需要研究生团队互助配合完成整个案例,能力强的同学还可以从教师给定的题目中选择多个来完成,最后进行答辩,根据研究生的完成情况给出实践成绩。另外为培养研究生的科研与阅读文献、写作能力,也会采用撰写课程前沿研究报告,并制作PPT公开讲解的形式进行辅助考核。这种考核方式重视实践能力、科研能力、表达能力和自我约束能力,有助于培养研究生动手实践和独立开展科学研究的能力。
课程实施中收到了较好的教学效果,这得益于学校充分的教学条件保障。首先,“数据挖掘技术”课程团队教师具有丰富的教学经验,从职称上配备有教授、副教授、讲师和助教,从学历上有博士、研究生,从年龄上采用老、中、青传帮带模式,且以青年教师为主。因青年团队成员在课程建设方面思维超前、锐意创新、不拘一格,教学与实践效果显著。其次,本课程建设突出航天军工特色,教学团队编写具备航天特色的教材、分层次的课程学习模块、逐步拓展深入的实训项目、完善项目递进驱动教学法,精心设计多媒体教案、PPT内容,生动醒目的课程演示课件、素材、实验文档从教学和实践各个环节都保证了教学目标的实现。最后,除了采用多种教学方法,形成重视实践教学的良性循环教学模式,还创建了方便的网上教学与学习环境,配有学习视频,编程语言python学习教程、java自学教程,网上自学资源极其丰富。教师可通过课程网站共享优秀学习资源,并在网上通过E-MAILS、微信、QQ课程群实时在线或离线答疑。研究生通过课堂教学、课下自习研究、实训项目的实践和前沿报告等形式进行常规学习之外,还可借助网站资源自主学习及实践、研究,查阅电子资料等,形成方便的网上学习环境,培养研究生的学习常态化和创新精神,不忘航天初心,不辱学子使命。经过航天特色教育,研究生大都养成了能吃苦、耐劳、不成功决不罢休的好习惯,良好的学风和宽松的科研环境,铸就了研究生精益求精的航天精神,从入学就立志为祖国的航天事业做贡献。在这样思想引领下,加上个人勤奋好学,团队合作交流,圆满完成“数据挖掘技术”课程学习任务、圆满完成学业是必然的。
“数据挖掘技术”课程作为一门专业工具,是其他研究领域不可或缺的。为更好地进行教学与实践,培养“德、智”双收的合格航天人才,结合我校航天特色,教学团队进行了一系列的教学与实践探索和改革,包括研究生基础调研分析与课程特点分析、课程受众分析,然后从五个方面对教学和实践进行设计,结合案例教育、产教融合到企业“半工半读“式的实习模式。几轮教学与实践下来,通过毕业生100%的航天部门就业情况分析,此方法理论对于航天电子通信与工程专业研究生是切实可行的。相信不久的将来,该方法理论也同样适应于其他应用型本科院校的研究生培养,让数据挖掘不仅仅成为一门工具,更是一种数字生活方式,甚至成为一种大数据时代下的工作模式。