基于Python语言的数据挖掘课程的建设与研究
2021-05-24杨军张岳刘燕峰
杨军 张岳 刘燕峰
摘 要:目前Python语言作为时下最流行的编程语言之一,在数据科学领域应用十分广泛,简单易学、功能强大,为学生的使用提供了方便。结合云大物移智时代的时代背景和计算机学科的专业特点,针对数据挖掘课程存在的一些问题,在使用Python语言的基础上,对数据挖掘课程的建设进行相关研究。该文章主要从教学大纲、教学环节和考核方面进行阐述,课程建设旨在更好的培养学生使用数据挖掘方法分析和解决问题的能力,更好地培养云大物移智时代所需的数据科学人才。
关键词:数据挖掘;Python语言;课程建设
中图分类号:G642.4
The construction and research of data mining course based on Python
Yang Jun Zhang Yue Liu Yanfeng
Shandong Youth University Of Political Science ShandongJinan 250000
Abstract:At present,Python as one of the most popular programming languages,is widely used in the field of data science.It is simple to learn and powerful,which provides convenience for students to use.Combined with the background of cloud computing,big data,Internet of Things,mobile Internet,artificial intelligence and the professional characteristics of computer science,In view of some problems existing in the course of data mining,the construction of the course of data mining is studied by introducing Python.This article mainly elaborates from the teaching syllabus,teaching links and assessment aspects.The course construction aims to better cultivate students' ability to use data mining methods to analyze and solve problems,and better cultivate data talents needed in the era of big data.
Keywords:DM;Python;curricula construction
1 Python语言简介
Python是一种解释型、面向对象、动态数据类型的高级程序设计语言,自诞生以来,Python在处理系统管理任务、数据挖掘以及Web编程等方面有著广泛的应用。因为Python的简洁、易读以及可扩展性,使用Python做科学计算的案例越来增多。众多开源的科学计算软件包都提供了Python的调用接口,同时,Python还拥有很多科学计算扩展库,为Python提供了快速数组处理、数值运算以及绘图功能。因此Python及其众多的扩展库所构成的开发环境十分适合工程技术、处理实验数据、制作图表,甚至开发科学计算应用程序[1]。
选择Python作为数据挖掘课程的实践语言有以下4个优点:(1)Python是免费的自由软件,不需要支付任何费用,可以更方便的获取源代码;(2)Python具有良好的跨平台性,一般情况下,在Windows上编写的Python程序可以轻易地运行在Linux上,这一特点对于学生巩固Linux系统的使用也提供了实践机会[2];(3)Python语言功能强大,借助扩展模块可以轻松的完成,在教学过程中可以通过Python语言实现各种数据挖掘算法;(4)Python语言清晰优雅,其语法简单,格式清晰、易写、易读[3]。这个特点可以使不同计算机编程水平的学生在短期内学会使用Python语言进行数据挖掘的实战操作,方便开展课程实践教学。
2 教学大纲设置
数据挖掘课程是一门建立在高等数学、机器学习、统计学、数据库、人工智能等学科的综合性课程。根据学生的培养目标,通过本课程的学习让学生理解数据挖掘的基本概念、基本原理、基本方法和应用基础,熟悉基本工具的使用,理解数据挖掘算法的基本原理,为进一步深入学习智能数据分析研究打好基础。在课程中将理论教学内容与实验教学内容相结合,采用传统与特色教育相结合,如话题教学、翻转教学等教学方面[4],通过构建数据挖掘的课程体系来设置教学大纲。
将数据挖掘的教学大纲设置为基础和进阶两个部分,其中基础部分包括数据挖掘导论、数据预处理、数据仓库与联机分析处理(OLAP)等内容,进阶部分包括分类、回归、聚类、关联规则、文本与Web挖掘、数据挖掘的可视化等内容,进阶部分主要是对基础部分进行进一步的拓展,学习关于预测性和描述性的各种挖掘算法。一般来说,在本科阶段数据挖掘课程的教学总学时为32~64个学时,而该课程的特点是需要理论与实验相结合,可以将理论与实验的课时进行相应比例的分配,并按照学习内容进行知识点同步。同时安排4~6个学时来讲解Python语言的基础知识,让学生了解和掌握Python语言在数据挖掘中的基本应用,通过演示部分数据挖掘的经典案例来让学生了解其主要应用领域及当前的研究热点。在充分调动学生学习兴趣的前提下,适当通过增加课下学习时间来弥补课内学时的不足,需要教师充分利用网络资源搜集相关数据挖掘的资料,并对其进行分类整合后发给学生,提高学生的课后学习效果[5]。具体理论教学大纲设计和实验教学大纲设计的内容,如表1和表2所示。
3 课程教学过程的设计
下面以数据挖掘中常用的分类算法中的朴素贝叶斯分类为例,介绍如何利用Python语言开展数据挖掘的教学。
朴素贝叶斯分类(NBC)是基于贝叶斯定理和特征条件独立假设的分类算法,通俗地讲朴素贝叶斯分类器可以看作:对于给定的待分类项,求解在该分类项出现的条件下,各个类别出现的概率。根据各个类别出现的概率,哪个最大,就将其划归为那个类别。
首先,介绍一下贝叶斯的定理,因为不同的学生可能数学基础不同,先通过介绍贝叶斯定理,来复习一下相关的数学知识,知道其基本公式的表达。贝叶斯定理条件概率定义为:表示事件B已经发生的前提下,事件A发生的概率,称为事件B发生下事件A的条件概率。其基本求解公式为:P(A|B)=P(AB)/P(B)。
通过对比,告诉学生们贝叶斯定理之所以有用,是因为与大家的生活息息相关:可以很容易直接得出P(A|B),P(B|A)则很难直接得出,但大家往往更关心P(B|A),贝叶斯定理打通了从P(A|B)获得P(B|A)的道路。贝叶斯定理为:P(B|A)=P(A|B)P(B)/P(A)。
通过介绍贝叶斯定理,为学生引入朴素贝叶斯分类,NBC属于贝叶斯分类的一种,其与贝叶斯分类相比,后者需要花很大的时间和空间复杂度去计算类条件概率。NBC的思想基础:对于给出的待分类项,求解在此项出现的条件下各个类别出现的概率,哪个最大,就认为此待分类项属于哪个类别。朴素贝叶斯分类的正式定义为:
①设x={a1,a2,…,am},为一个待分类项,而每个a为x的一个特征属性;
②有类别集合C={y1,y2,…,yn};
③計算P(y1|x),P(y2|x),…,P(yn|x);
④如果P(yk|x)=max{P(y1|x),P(y2|x),…,P(yn|x)},则xyk。
接下来,再来看一下朴素贝叶斯分类的三个阶段,通过了解分类阶段让学生从宏观上掌握朴素贝叶斯的应用流程。(1)对于准备工作阶段:本阶段的输入是所有待分类数据,输出是特征属性和训练样本。本阶段是整个朴素贝叶斯分类中唯一需要人工完成的阶段,其质量好坏决定整个过程,分类器的质量很大程度上由特征属性、特征属性划分及训练样本质量决定;(2)分类器训练阶段:本阶段输入是特征属性和训练样本,输出是分类器,该阶段是机械性阶段,可以由程序自动计算完成;(3)应用阶段:其输入是分类器和待分类项,输出是待分类项与类别的映射关系,本阶段也是机械性阶段,由程序完成。
在最初的教学过程中,会出现学生对算法理论的学习提不起兴趣的现象,但当提到某个实际案例时,特别是大家身边的案例,学生的兴趣会瞬间增强,所以要引入实际案例来提高学生兴趣,使更好的理解这个算法[6]。下面介绍朴素贝叶斯分类算法的Python实现过程。
假定给出了如表3所示的训练样本数据,其目的是根据给定的天气数据判定是否去打网球(PlayTennis),当给出一个新的实例,如{Outlook=Sunny,Temp=Cool,Humidity=High,Windy=Strong}时,则预测的目标概念PlayTennis的目标值是Yes还是No。
对未知样本进行分类,如max(P(x|C)P(C))=P(X|C=n)P(C=n),则说明未知样本属于第n类,其中:
①P(C=i)=Si/S,Si是类Ci中的训练样本数,S是训练样本总数;
②P(X|C=i)的计算开销比较大,因为会涉及很多属性变量,这可以做“属性值互相条件独立”的假定,即属性件不存在依赖关系。
具体Python的示例程序,课程中会结合目前所使用的实验平台,在此不再依依列出。
4 课程考核方案的设计
课程考核方案的设计必须能客观反映出学生对数据挖掘基本原理和算法应用的掌握程度,考核从两个方面进行,第一是理论测验,主要考查学生对数据挖掘的基本概念和算法理解的能力,以纸质试卷的形式进行测试,并结合平时的课后作业、单元测试及课堂表现等来综合打分。第二是实验测试,主要考查学生对Python语言应用和数据挖掘算法应用的能力,以上机的方式进行测试,并结合平时的上机实验报告、实验单元测试及课堂表现等情况来综合打分。当然,这种考核方案还需不断摸索改进,而目的就是为了让学生更好地掌握以Python语言为基础的数据挖掘技术,在云大物移智的大环境下,为研究更深入的智能数据分析研究打好基础。
参考文献:
[1]李克清,时允田.机器学习及应用[M].北京:人民邮电出版社,2019.
[2]刘凌霞,郝宁波,吴海涛.21天学通Python[M].北京:电子工业出版社,2018.
[3]嵩天,礼欣,黄天羽.Python语言程序设计基础[M].北京:高等教育出版社,2017.
[4]白杨.应用型本科“数据挖掘”课程的构建研究[J].无线互联科技,2018(5):9596.
[5]渠畅.基于R语言的大数据挖掘课程建设研究[J].无线互联科技,2018(4):9193.
[6]李婷,张继周.大数据环境下本科生数据挖掘课程建设研究[J].教育现代化,2017(40):230232.
基金项目:1.山东青年政治学院2019年度校级教学改革研究项目[1+X数据采集职业技能等级证书制度试点的建设(JGWT201913)];2.山东青年政治学院教学成果奖培育项目[以大数据竞赛为依托的大数据相关专业“三融三促”人才培养模式研究与实践(19CGPY03)]
作者简介:杨军(1989— ),男,山东济南人,硕士,助教,主要研究方向为大数据技术、数据挖掘与分析;张岳,硕士,讲师;刘燕峰,硕士,讲师。