陶淑 王恒太
南华大学 数理学院 421001
摘要:本文在线性代数课程教学中融入数据科学实例,并结合Python编程实践,将抽象的知识点与具体的案例相结合,希望能够深化教学效果,能更好地帮助学生激发学习兴趣,开阔学生的思维,提高学生学以致用的能力。
关键词:线性代数;数据科学;Python
引言
线性代数是高校理工科、经管专业的基础必修课程,是图像处理、信号处理、密码学、信息论、物理学、力学、化学、建筑学、计算机软件等等的基础[1-2]。传统的教学方式就是通过定义、定理、例题、练习的普通讲授过程,并没有讲每个知识点的具体应用,而这门课程具有高度抽象以及计算的高度复杂性,导致大部分同学知识点掌握不到位,应用这些知识点去解决实际问题更是难上加难。
随着互联网的高速发展以及5G时代的到来,大量信息和数据随之产生,根据获取的数据进行处理分析,可以帮助各行各业提高工作效率、增加销量、增强管理水平、进行科学决策等等。而现实生活中大数据的发展,如互联网中各大网站的推荐系统、搜索系统、智慧医疗、智能交通等等[1-3]也都是基于数据的处理分析,大数据时代下,数据是解决许多问题的基础,而《线性代数》这门课程是数据科学的基础。数据科学的快速发展,为线性代数的教学内容改革带来了机遇和挑战。因此,将数据科学的实际应用融入到线性代数课程的教学内容中,能更好地巩固教学效果,可以更好的让学生学以致用。
一、数据科学在线性代数教学内容中的应用
大数据时代背景下,我们在课堂教学中可以将一些与线性代数相关的数据科学的应用实例加到这门课程的讲解中来,将课程中枯燥的理论知识与现实社会联系起来,可以更好的激发学生的学习兴趣,从而更好的培养学生的实际应用能力。
矩阵是线性代数中贯穿整个课程的基础内容,我们在讲授矩阵以及矩阵的相
本文由校级教改课题(202JXJ083), 省级教改课题(2017SJG07) 和省优秀教学团队资助。
关性质时,可以将数据科学领域的二维码、推荐系统中的相似度矩阵、图像处理中的灰度图像、密码学等数据科学有关的知识引入到矩阵的课程教学中。比如图像处理中最基本的元素就是灰度图像,而灰度图像就是一个矩阵[2];再比如大家所熟悉的二维码可以看做一个矩阵,其中白色部分对应元素1,黑色部分对应元素0,3个角落的小黑框就是矩阵的行数和列数,用来限定该二维码的边界[3];等等。
矩阵的秩与线性方程组的解是线性代数的基础内容,在讲解这部分内容时,也可以把数据科学领域的应用联系起来。
求解线性方程组中的最小二乘法可用于求解线性回归问题;低秩矩阵可以用来消除矩阵噪声、补全矩阵、解决视频推荐、图像去噪、视频分离等,比如Netflix视频评价方法[4]。
特征值与特征向量是线性代数中重难点的内容,其概念具有高度抽象性,会使得部分学生望而生畏。因此,在课堂教学时需要更好的引入数据科学,通过PCA、投入产出模型、PageRank算法等数据科学领域的实例来引导学生学习和讨论特征值与特征向量,激发大家的学习兴趣。比如PCA(主成分分析)可以将高维度的数据集映射到低维空间去,数据集的特征值按照重要性排列,降维就是将一些不重要的特征向量舍弃掉,那么剩下的特征向量组成的空间就是降维后的空间[4-5]。
将大数据算法引入到线性代数的教学中是社会发展的趋势,既可以让学生接触到大数据背景下的最新应用研究,又可以让学生了解线性代数这门课程在大数据时代下的具体应用,同时便能更好的激发学生的学习兴趣。
二、Python在线性代数教学中的应用与实践
Python是比较适合绝大多数专业学生的一门脚本语言,相对较简单易学,并且能够解决绝大多数的数据科学实例。我们线性代数这门课程中也常常会有高度抽象的概念与比较复杂的计算,学生要想更好的掌握这门课程,可以结合Python去辅助学习。课堂上讲授知识点的同时运用Python展示,课后作业也可以布置一些习题让学生通过Python去实现。不仅有助于将数据科学算法与线性代数真正的结合起来,还有利于增加学生的学习兴趣,让他们能够真正拥有解决实际问题的能力。
矩阵是线性代数的基础,这门课程后续的知识点都与矩阵有关,我们在学习的过程会遇到比较抽象,繁琐的计算问题,就可以通过Python中的numpy库来实现,在开始时需要输入import numpy as np 表示后续所用的函数来自numpy库。接下来讲线性代数中常用的几个基础函数。
矩阵用np.mat()去实现,比如若想得到3阶矩阵,那么输入命令A=np.mat([1,2,3],[0,1,0],[0,0,1])便可得到矩阵A。矩阵乘法可以用dot()函数,假设A是一个m*l矩阵,B是一个l*n矩阵,那么A*B可以用A.dot(B)和np.dot(A,B)两种方式实现。假设A是一个矩阵,A的迹可以用trace(A)来实现,也就是trace(A)可以计算矩阵A对角线上元素之和;np.linalg.det(A)来计算出方阵A的行列式的值;np.linalg.inv(A)来计算矩阵A的逆矩阵;A的特征值与特征向量可以用np.linalg.eig(A)来计算;A的秩可以用np.linalg.matrix_rank(a)计算;A的转置可以用A.T或者A.transpose(A)得到;A的QR分解可以用np.linalg.qr(A)计算;A的奇异值分解可以用np.linalg.svd(A)计算;解线性方程组可以用np.linalg.solve(A,b)来计算,其中A为线性方程组的系数矩阵,b为线性方程组等号右边的常数项。
上述Python中的函数只是解决线性代数中比较基础的问题,还有许多复杂的计算问题都可以用Python实践,将Python融入到线性代数的教学中会起到事半功倍的效果,不仅可以简化计算过程,增强学生解决实际问题的能力,而且还可以完善教学,对高校的教育教学改革起到一定的推动作用。
三、总结
大数据时代下,各行各业都离不开大数据技术的支持。线性代数作为理工科、经管专业的基础学科,也是大数据技术的基础,教师在进行教学过程,应该注重培养学生的实践应用能力,提高学生对线性代数这门课的认识,增强学生的学习兴趣。因此,本文对教学内容改革上不仅增加了大数据算法在线性代数中的应用,还增加了与大数据联系紧密的Python软件在线性代数中的应用,期望学生能更深入学好线性代数,能更熟练地应用线性代数解决实际问题,能更好地符合社会的发展。
参考文献:
[1]林子雨.大数据技术原理与应用[M].北京:人民邮电出版社,2017.
[2]黄小玲,叶国栋.高校《线性代数》课程的教学改革研究与探索[J].教育现代化,2019.
[3]赵玉娟.大数据下的线性代数课程教学[J].无线互联科技,2019.
[4]张长水,杨强.机器学习及其应用2013[M].北京:清华大学出版社,2013.
[5]鲁晓磊,吕学斌.大数据时代线性代数教学内容改革研究[J].科技世界,2019.
[6]欧高炎,朱占星,董彬,鄂维南.数据科学导引[M].北京:高等教育出版社,2017.