基于Python的“模式识别导论”双语教学与实践
2021-07-19陈思宝
陈思宝
摘要:“模式识别导论”双语教学是新工科高年级本科生的选修课程,旨在让学生了解模式识别基本概念与方法的同时,锻炼他们阅读模式识别英文文献以及国际交流的能力。Python是目前炙手可热的编程语言,将Python引入“模式识别导论”双语教学过程,有助于提高教学质量与效果。通过Python运用于模式识别中的几个例子,展示了Python在课程辅助教学中的优点。
关键词:模式识别;Python;双语教学;主成分分析;线性判别分析;多项式拟合;支持向量机
中图分类号:G642 文献标识码:A
文章编号:1009-3044(2021)14-0086-03
Abstract: The bilingual teaching of "Introduction to pattern recognition" is an elective course for senior undergraduates of new engineering. It aims to let students understand the basic concepts and methods of pattern recognition, and at the same time, exercise their ability of reading English documents of pattern recognition and international communication. Python is one of the most popular programming languages at present. The introduction of Python into the bilingual teaching process of "Introduction to pattern recognition" will help improve the quality and effect of teaching. Through several examples of using Python in pattern recognition, this paper shows the advantages of Python in the auxiliary teaching.
Keywords: pattern recognition; Python; bilingual teaching; principal component analysis; linear discriminant analysis; polynomial fitting; support vector machine
1 引言
“模式识别导论”双语课程是自动化、计算机等专业高年级本科学生的专业选修课程[1-2]。理论内容涉及线性代数、概率统计、矩阵分析和图谱理论等数学知识。在教学中经常需要利用这些数学知识对模式识别中的问题进行分析。采用双语教学不仅让学生了解模式识别基本概念与方法,还要锻炼学生阅读模式识别英文文献以及国际交流的能力[3]。教师经常只能在黑板上进行一些公式推导和绘制简单但不清楚的图形来分析和解释。对某些特征变换或复杂的分类问题则难以形象地描述清楚。学生可能感觉很抽象,难于理解和接受,因而影响了学习兴趣,减缓了学习进度,降低了教学质量。
Python是一个高层次的结合了解释性、编译性、互动性和面向对象的跨平台脚本语言。它拥有众多开源的科学计算库,是目前炙手可热的编程语言。Anaconda是一个开源的Python发行版本,其包含了Conda、Python等大量科学包及其依赖项[4-5]。它包含了丰富的专业领域工具箱,还配有详细的英文使用说明及大量的使用举例。这些使编程变得非常简单,为我们课堂教学和科研实验提供了十分方便快捷的手段。以下将通过几个例子来说明Python如何应用到解决模式识别的具体问题中。
2 实验应用举例
例1:利用主成分分析(PCA)进行数据降维的Python实现。
主成分分析(PCA)的基本思想可以概括为在低维空间中保留原数据最大方差的正交线性投影。设有一训练集[D=xi,i=1,...,n|xi∈Rp],现欲将数据经过线性变换[yi=WTxi]投影到[d(d
下图展示了一个两类的数据由Python画出来的PCA与LDA主轴对比图形。从图中可以看出不同类别的数据投影到LDA主轴上相互分离开来,而若投影到PCA主轴上则完全混杂在了一起。
例3:多项式拟合的Python实现。
数据拟合是排除测量等随机干扰,发现数据对之间的内在本质,找出相应的函数关系。为了便于计算,通常假定数据对之间(或者经过某种变换后的数据对之间)的函数关系具有多项式形式,即进行多项式拟合。
设有训练数据[D=(xi,yi),i=1,...,n],现欲寻求这两组数据之间的函数关系[y=f(x)]。当进行多项式拟合时,即假定该函数关系具有多项式形式:[P(x)=i=0kaixi]。依据数据的散点图先确定多项式的阶数[k],然后利用最小二乘法求解最优系数[ai]:[min i=1nyi-P(xi)2]。
Python的numpy宏包中polyfit函数可以实现多项式拟合,用poly1d构建多项式对象来计算多项式拟合的值。具体Python实现的多项式拟合代码如下:
3 结语
本文通过对模式识别的几个例子,展示了Python在解决模式识别诸多问题的能力。由这些例子可以看出Python语言简洁易懂、可读性强、功能强大,同时Python的IDE还配有详细的英文使用说明及大量的使用举例。在模式识别导论的双语教学中,引入Python可以快速实现模拟实验,激发了学生的兴趣,凝聚了学生的注意力,学生可以从中获得具体生动的印象,使学生更易于理解和掌握其中的理论知识和方法,极大地提高了教学效率。
参考文献:
[1] 边肇祺. 模式识别[M].2版.北京:清华大学出版社,2000.
[2] 劉恒,侯书东.研究生模式识别课程双语教学研究与实践[J].安徽工业大学学报(社会科学版),2019,36(1):67-68.
[3] 刘伟锋.模式识别双语课程的教学实践[J].科技信息,2012(33):240,292.
[4] 洪炎,苏静明,唐超礼,林涵.Python双语教学探索[J].科技风,2019(19):52.
[5] 王宁,孙晓玲.智能手机端Python语言的数学实验案例设计[J].合肥师范学院学报,2019,37(6):117-121.
【通联编辑:王力】