数据挖掘课程中数据思维的培养方法探索

2019-12-04 23:46王建新
计算机教育 2019年8期
关键词:数据挖掘领域思维

王建新

(北京林业大学 信息学院,北京 100083)

0 引 言

随着信息化和智能化在各行业的迅猛发展,近十几年来数据的积累呈现出爆炸性加速增长的趋势。如何有效地掌握这些数据、快速了解数据背后的真相是重大的经济需求和社会需求。充分发掘这些数据隐藏的规律和知识,并对其开发,应用于经济生产、行业管理和社会服务,不仅是各行各业亟待解决的重大科研开发问题,而且是长远发展目标。在这样的背景下,数据挖掘已经成为业界的热点研究领域和热门技术,数据挖掘课程也因而成为高校培养数据方面人才的重要课程。

数据挖掘是典型的交叉学科,涉及众多学科门类,包括计算机科学、统计学、数据库和数据仓库技术、并行计算和分布式计算、机器学习、人工智能等[1]。数据挖掘学科的主要特点是新颖性、覆盖内容广泛、交叉性、难度大[2]。数据挖掘及其相关技术将对社会各个领域产生深远影响。目前,就业市场对数据人才的需求旺盛,数据人才的就业薪资普遍较高,但就业市场也对数据人才有诸多严格的要求,比如对数据挖掘原理和技术的理解和应用、对相关交叉学科的深入掌握、对领域知识的理解和运用等[3]。

自然科学领域有公认的三大科学思维:理论思维、实验思维和计算思维[3]。在此基础上,各领域对数据人才的普遍要求是具备数据思维能力,概括起来,就是对数据的抽象概括、领域变换、合理利用和制作分析工具、具备数据计算思维等能力及综合运用的能力。随着大数据和人工智能日新月异的发展,近年来数据思维已经成为被广泛倡导的一种科学素养和实践方法论。

目前,数据挖掘课程在高校中的受课主体是计算机、信息等专业方向的研究生,对本科生的数据挖掘课程教学安排较少。

本科生的数据挖掘课程普遍存在诸多问题[4]。①课程定位不明确,和研究生的数据挖掘课程定位不区分;②理论课偏多,对解决实际问题能力的训练不够;③教学形式单一,教学内容复杂而抽象,不能引起学生的学习兴趣,很多学生因为过程中出现重大挫折而放弃学习,对后续内容望而却步。

通过对比数据挖掘课程多年来在研究生和本科生中的授课情况,我们发现提升数据思维能力是让学生增强数据处理方面的自信心、喜欢数据挖掘、理解数据挖掘并很好地应用数据挖掘技术解决实际问题的关键。我们还意识到人才的培养首先体现在思维的培养上。

1 数据思维面面观

美国管理学家、统计学家爱德华·戴明说过一句话,成为美国社会的一句常用谚语,“除了上帝,每个人都必须用数据说话”,由此可见数据对于我们日常生活、经济生产社会发展的重要程度。要重视数据,用事实说话,依靠理性思维,但由于历史的、文化的和科技的原因,我国对数据科学的重视时间较晚,重视程度较低,习惯于定性而不定量,习惯于直觉思维而不是推理思维。这也阻碍了数据科学的发展,大部分人不具备数据思维的能力。即使是数据人才,也缺乏系统的数据思维训练。

众所周知,机械思维带来了工业革命。近年来,数据思维则引爆智能革命[5]2-3。归纳起来,数据思维包括数据的抽象和概括思维、数据的领域变换思维、使用和制造数据分析工具的思维、数据的计算思维、数据即知识的信念思维等。

1.1 数据的抽象和概括思维

在数据挖掘和机器学习的教学过程中,教师和学生都特别推崇“小数据讲大故事”,也就是在小的数据集上了解用户的需求,弄清楚问题的性质,对小数据进行实验和验证,然后再把这些方式方法应用到大数据集中。但是,最终目的是“大数据讲大故事”,也就是让数据的整体支撑我们的逻辑、分析和验证,支撑我们的最终应用。

小数据和大数据之间是有显著差别的。首先,很多情况下小数据的性质与大数据的性质并不一致,这主要体现在它们之间并不是“独立同分布的”;其次,小数据和大数据的处理手段一般来说并不相同。事实上,正是因为它们处理手段的不同,才引发了大数据技术革命;最后,小数据无法提供个性化的服务。通过小数据有可能掌握基本趋势和规律,但如果在实践中应用,则个性化处理能力不强,甚至完全不能提供个性化处理和服务。

然而,真实场景中大数据的数量级一般都是几百MB、几个GB、甚至达到TB级别,很多学生对这些数据的反应先是望而生畏,然后是望而却步。针对这个学和教的难题,我们提出了数据概括和抽象思维的方法。也就是说,不管数据有多大,只要掌握了我们的方式方法,就能够从整体上理解数据、把握数据,不再对数据有畏惧心理。后文中我们将从基于密度的抽样、层次化聚类等技术手段入手,讲解如何让学生形成数据概括和抽象的思维及能力。

1.2 数据的领域变换思维

离开了应用领域,大数据及数据挖掘就没有任何生命力。统计学和数据挖掘都可以分为两个层面:“道”和“术”[5]19-25。其中的“道”指的是如何在领域中定义一个数据分析的问题,以及如何把分析结果应用到领域,创造价值;而“术”指的是分析的手段,也就是我们通常所说的“挖掘”技术。

在数据挖掘课程教学过程中我们发现,大部分学生热衷于“术”的学习和研究,而对于“道”并不关心,这与文献[5]19-25的发现和总结非常类似。为此,需要培养学生迅速发现领域需求和通过数据挖掘技术真正解决领域需求的能力。这样才能真正掌握数据挖掘之“道”。

针对领域变换思维,我们在后文中提出应对措施和教学方法,包括积累领域共性需求、领域需求类比等方式。

1.3 使用和制造数据分析工具的思维

对于海量数据、大数据,肉眼观察已经无法满足理解数据、掌握数据、分析数据、发现数据中的规律,并应用数据规律解决实际问题的业务脉络,必须借助于分析和展现工具软件,需要具备合理利用工具的思维方式和能力,但是从当前的教学状况看,学生容易走入两个极端。第一个极端情况就是所有的分析挖掘工作全部借助于已有的软件包,如果没有合适的软件包,或者软件包如果不具备相应的功能,则分析工作没法继续进行。另一个极端就是学生并不想去学习各种软件工具,对软件包不过问、不应用,所有的分析挖掘工作全部使用通用的编程语言实现。其实,这两个极端情况都不利于数据挖掘工作的顺利开展,也不利于真实应用需求的有效解决。为此,我们在后文提出使用数据分析工具和制作数据分析工具相结合的思维方式和操作方法,使学生数据分析的效率和效能综合最大化。

1.4 数据的计算思维

所有的数据挖掘问题最终要落实到一个计算问题。大数据量场景下,对计算的效率要求越来越高。这导致在小数据量场景下完美运行的许多挖掘过程在大数据量场景下不具有可行性。另一方面,由于从一开始要考虑到数据量的大小,为了使挖掘过程对数据具有可扩展性,相当一部分学生把注意力和精力放在对数据量的考虑和处理上。这两方面都会严重制约数据挖掘过程的顺利实施和有效应用。

为此,我们试图在教学中强化数据的计算思维理念,也就是人力和算力的平衡思维理念,在后文中将详述训练策略、内容和具体手段。

1.5 数据即知识的思维

在大数据时代背景下,如果具备强大完善的挖掘算法和挖掘手段,“数据即知识”,这是一个完美的目标,也是一种思维理念。只有拥有这样的思维方式,才敢于积极地对海量数据进行挖掘处理,并乐观应对问题定义和结果以解释应用等一系列的难题。在后文中,我们将介绍如何向学生讲授这一思维方式的理论支撑,以及如何训练学生把这一理念运用到领域问题中。

2 教学改革措施

2.1 培养掌握数据摘要的直觉和技术手段

如前文所述,目前所有的实际领域应用中的数据分析挖掘对象都至少是几百兆字节的数据集,数据记录总数一般是百万条起步。学生碰到这样的数据集后会感到无从下手,而学习其中的基本结构和掌握基本的统计信息需要花费相当长的时间,甚至超过了一次实验课的总时间。为此,我们提出了一个完整的流程,并把这个流程脚本化和软件化,通过这个流程的操作,就可以形成对数据的直觉,基本掌握数据特征及数据间的关系。

首先,形成各式各样的数据摘要,包括记录条数、均值、最大值、最小值、所有离散取值可能、方差、分位数、异常值等;其次,利用多种随机采样手段,形成小数据,使得数据尽量与原数据独立同分布,易于理解原数据;第三,把感兴趣的字段重点关注,生成关于这些字段的数据的报告;第四,生成重要的感兴趣的字段之间的关系,并以图示的方式展现出来,产生关于它们之间关系的直觉;最后,也是最重要的步骤,就是把数据用层次化聚类的手段做出概括和摘要。该方法是我们的教师和学生自主研发的工具之一,能够把任意庞大复杂的数据集汇总为20至50条有意义的摘要信息,这对理解和把握数据整体有着很大的帮助。对每一个案例训练,我们都按照上述的流程进行,这使得学生掌握数据集的时间大大缩短。生成的摘要与领域知识密切相关,也是领域变换思维的具体体现。

2.2 培养数据挖掘与领域相结合的能力

如果数据挖掘实施人员既是数据人才又兼为领域专家,那将是最完美的。但是,大多数情况下,数据人才仅对数据挖掘的技术熟悉,对存在需求的领域不了解,或一知半解,或经过很长时间的学习才能够了解;然而领域专家又很难在短时间内掌握数据挖掘的相关技术。这是阻碍数据挖掘技术应用于各领域中的最主要障碍。解决这个矛盾的主要途径,就是让数据人才与领域人才进行高效地沟通,在较短的时间内弄清楚:领域真正需求在哪里?其核心诉求是提高收入、缩减成本还是降低风险?还是兼而有之?领域业务能够提供哪些可自动获取的数据(而非纯人工录入的数据)?

数据挖掘在众多领域应用中普遍存在的一个问题是:领域内的业务人员并不明确自己需要的是什么。为了让学生快速掌握领域沟通技能和技巧,我们分类别、分层次设置了与领域专家沟通的问题,并制成表格。如果领域专家能够完整回答这些问题,那么学生对业务需求和业务数据结构会有比较完整的理解和把握。反过来,领域专家通过回答这些问题,也会梳理领域需求,梳理所拥有的数据及其逻辑、拓扑关系。这也能让领域专家逐渐明白,“数据即知识”。

对所有的实验案例,都要求学生按照这样的表格分角色完成沟通。虽然部分学生对业务更了解,但也都严格按照要求完成问题列表表格。

2.3 培养拿来主义和自力更生相结合的能力

随着数据挖掘社区的急速发展,各式软件和软件包层出不穷。这些软件或软件包有纯粹商业的、纯粹开源的、混合型的。这些软件构件中,有的可以拿来即用,有的需要二次开发。正如前文所述,对于使用这些软件或软件包,学生容易走入两个极端。一个极端是:对这些庞大复杂的软件包无法掌握,无从下手开始,干脆弃之不用;而另一个极端是过分依赖于既有软件,离开了成熟的软件则寸步难行。其实这两个极端都不是成熟合理的数据挖掘解决方式。

为此,在教学过程中提倡拿来主义和自力更生相结合的解决模式。首先,让学生了解市面上最常用和最有用的数据挖掘软件,关注其中重要的软件包和软件构件,例如Python的SK-learn包和Weka中Apriori算法、ID3算法、C4.5算法等;其次,学会用脚本语言串联和组合这些算法,做到从单一功能设计到复杂功能设计的二次开发;第三,用自己熟悉的语言复现软件包中的常见的算法;最后,对于那些不能用成熟软件包实现的功能,要运用Java、C++等语言编写自己的应用。

3 教学效果

数据挖掘课程曾经是北京林业大学研究生计算机相关专业的专业必修课,也是本科生的专业选修课,从2018年春季开始,成为计算机创新实验班的专业必修课,3学分,共48学时。我们的教学改革措施主要在计创班中践行。

与以往教学不同,实验不再使用小规模数据和模拟数据,全部使用真实案例中的大数据。第一个案例是学校提供的一卡通消费数据,超 过1 000万条记录。学生预先接受了概括和抽象大数据的策略和流程训练,在这个案例中顺利应用,大部分同学在20分钟内从整体上掌握了数据,为后续挖掘工作打下了良好的基础。第二个案例是北京市老龄委提供的老年卡消费数据,超过300万条记录,通过填写问卷,向以往有此项目经验的研究生询问,也在一堂课时间之内了解了相关的业务流程、数据结构和数据特点。

为了让学生不过分依赖于软件平台和软件包,实验课的最后一个任务就是独立实现一个数据挖掘的构件,该构件能够生成任意庞大数据集的有意义的摘要,以便用于将来的数据抽象和摘要生成。该构件是教师的在研课题,其功能尚未出现在软件包中,也没有出现在文献中。这给计创班的同学们提出了极大的挑战,但是大部分学生在规定的时段内独立出色地完成了该功能,这不仅让学生对以后数据分析挖掘工作增加了软件储备,也让他们切身体会到了拿来主义和自力更生相结合的数据挖掘理念的意义和必要性。

总之,通过数据思维的训练和相应流程的执行,数据挖掘课程的学生虽然付出了课程学时之外的很多努力,但能够在一学期内迅速掌握数据挖掘的精髓,并能独立处理一些真实复杂的案例,说明数据思维理念的培养是有益的教学改革措施。

4 结 语

在大力发展新工科的时代背景下,提升学生的数据思维能力是对传统的理论思维、实验思维和计算思维培养的延续,也是适应数据人才市场的教育选择,我们也在这方面提出并实践了针对性的教育改革措施,但是数据挖掘领域的发展速度远远超过预期,我们也会依据基本的数据思维理念,扩展相关内容,优化培养流程,更好地为社会培养优秀的数据人才。

猜你喜欢
数据挖掘领域思维
电子战领域的争锋
思维跳跳糖
思维跳跳糖
改进支持向量机在特征数据挖掘中的智能应用
思维跳跳糖
思维跳跳糖
将现代科技应用于Hi-Fi领域 Perlisten S7tse
探讨人工智能与数据挖掘发展趋势
基于事故数据挖掘的AEB路口测试场景
2020 IT领域大事记