面向本科生商务思维能力培养的数据分析课程建设
2019-03-18孔令波
孔令波
(北京交通大学 软件学院,北京 100044)
0 引 言
以2007年斯坦福大学Andrew Ng教授的机器学习公开课[1]的推出为代表,大众对于人工智能和机器学习技术有了更多的了解和期待,大量以机器学习为核心的创业公司涌现[2]。2015年政府报告[3]提出了“大众创业、万众创新”(首次概括是在2014年9月10日的夏季达沃斯论坛),作为年轻俊杰群体的大学生,创业成了热门的话题(北京交通大学软件学院每年都有学生进行创业的尝试)。2017年政府报告将人工智能(机器学习是其中的核心部分之一,也是数据分析的一部分)首次写入了全国政府工作报告[4],这更加激发了人们创业的热情。
另一方面,文献[5]调查发现,从大的层面看,创业失败率统计下来是非常高的——95%以上,缺乏商业思维是最主要的原因。早在2005年Gartner 咨询公司出具的IT 行业调查报告就指出,未来计算机从业人员真正有价值的不再是IT技术本身,而更多地体现为对商务运作的理解和把握[6]。
有鉴于此,对于本科生而言,帮助他们提升商务思维和数据分析能力,是非常有必要的。数据分析可以使学生掌握洞察现象背后的能力;商务思维能够有助于学生了解评估创业盈利性的套路,使学生能更理性地创业,对安于就业的学生也是有益的:只有了解所在企业的盈利模式,才能有针对性地为企业创造更大的价值,这对学生毕业后的职位晋升也就更有利。
因此,对于当下本科生教育而言,商务思维和数据分析能力应该作为基本素质来培养。然而,如何设置相关的课程呢?是另外开设商务课程,还是在数据分析课程中涵盖商务的同容呢?笔者以为,在一门课程中以商务思维串讲数据分析相关技术,是一个值得尝试的方式。
1 贯通与综合:串讲商务思维和数据分析的挑战
在实践过程中梳理出支持前述整合的课程建设思路,即“贯通与综合”。“贯通”就是要能够找到一条线将相关的概念和算法从理论上落实到实际应用的案例;“综合”就是为了支持贯通所需要不同学科的知识的整合——这也是近期新工科学科和课程建设的主旨之一[7]。
为此,就不能延续传统的教学:一本教材(或一组相似教材)讲一门课,或在讲课中大量采用数学公式,似乎离了数学就讲不清楚一样。
如果延续一本教材讲一门课的方式,那么,针对商务思维似乎就只能至少再增设一门课程。可是,对于学分固定、课程紧张的教学课程设计而言,增设一门课程的方式并不经济。此外,考察现有MBA和经济管理的课程同容,仍然是在商务的圈子里讲解,无法与工科数据分析的相关概念和技术结合起来。
对于以数学推导为主要形式的教学而言,大多没有贴合学生掌握数学的实际情况——他们对数学的感觉(见到公式,就知道怎么计算和写程序)往往并不好。自然,如果在教学中能够帮助学生建立这种感觉,对于学生的后续发展是非常有益的:人工智能的背后,其实就是数学在支撑。但是,挑战也很明显:①同容太多,不仅包括MBA的商务知识,也包括机器学习的众多算法,如何将它们有机地整合在一起是课程建设的主要挑战;②不能默认学生对数学都有感觉,而应帮助学生能对数学进一步有感悟。
2 课程建设思路
1)以分析和保障商务盈利性为线索整合相关的专题。
本课程想将商务思维和数据分析整合在一起,是因为商务决策是数据分析的一个重要应用。众所周知,商务决策关心的基本问题就是盈利性,有了创业的思路,如果不能分析清楚可行的盈利模式,那创业失败的可能性就属于95%的范围。
如何分析和保障盈利性,需要关心两个基本问题:一是目标客户的筛选,二是产品质量和生产效率/成本。所有相关的决策都需要数据分析的支持,包括统计推断的同容、数据挖掘/机器学习的诸多算法。这也就意味着可以利用商务来串接相关的数据分析方法。
2)相关数据分析算法的选择。
有了商务这一串接的线索,另外一个挑战就是筛选相关的算法,算法有很多,涉及MBA、统计学、数据挖掘/机器学习等,面面俱到肯定是不可行的。为此,采取基本的、具有代表性的算法为授课的主要同容,而将复杂的、需要深入学习的算法作为文献综述来讲授,引导学生按照自己的兴趣去自学。
需要说明的是,为讲解相关的数据分析算法,优化论(尤其是凸优化)的同容是必不可少的,是另外一条串接相关算法的线索。
3)以示例来熏陶学生对数学的感觉。
不再以严格的数学推导为主要授课方式,而是在必要的数学储备(比如优化论的简要介绍)基础之上,通过展示简单的例子来帮助学生理解计算的思路,然后进一步从数学形式上来探讨改进的可能性。这既有助于学生直观理解,又能反过来熏陶学生对数学形式化背后直观性的感悟。
4)以历史的角度展示相关技术的演化,体会掌握核心技术的重要性。
课程涉及的算法很多,算法的历史也是非常有趣的同容,包括人工智能的发展(机器学习是人工智能发展的第三个阶段[8])、优化论的发展[9-10]、神经网络的发展(从早期的感知器模型到现在大热的深度学习诸多框架)[11-12],以及数据管理系统的发展(从文件到数据库管理系统,再到数据仓库和大数据)[13-15]等。在讲解过程中可以帮助学生更深入地体会核心技术的变与不变,如SQL(Structured Query Language,结构化查询语言)的解释与执行在DBMS(Database Management System,数据库管理系统)、数据仓库和大数据中都起着重要的作用。
目前,已经过两轮的本科教学实践,学生的认同度是很高的,也引起部分学生有针对性地继续自学深入研讨的兴趣。
3 授课内容概述
章节安排上,本课程组织了5部分专题,分别是商务思维概述、基于统计推断的商务决策、优化论摘要、机器学习算法概览,以及相关数据管理技术(包括数据仓库和大数据)串讲。需要说明的是:①商务的同容自然是第一个出现,从中提炼出来的问题是后续数据分析算法的应用背景;②优化论是另一个串讲数据分析方法的线索——主要的数据分析算法(尤其是机器学习算法)都可以归结为某类优化问题(凸优化)。 此外,虽然线性规划是凸优化的子集,但其独特的特性和求解方法与非线性凸优化有很大的不同,所以,不在本课程中阐述线性规划的同容,仅略作介绍以帮助学生了解;③统计推断部分主要专注于基于置信度区间进行推断的同容,包括ANOVA(Analysis of Variance,方差分析)和列联表等同容,部分可转换为优化问题形式的同容(如回归、PCA(Principle Component Analysis,主成分分析)等),剩余同容则归入后面数据分析部分(降维)。
较为详细的专题同容概述如下。
1)商务思维概述。
商务活动的主旨就是赚取更大的利润(盈利性),基于简单的利润公式“毛利润 = 销售额-已售产品成本”可以直观地推断出,为保证利润就必须以高于成本的价格将满足顾客需要的产品卖给顾客。
为此,除了产品的质量和成本(会介绍基于活动的成本分析ABC(Activity Based Costing)),分析客户的购物习惯和模式也是保障盈利性的重要因素,并由此引出许多依赖数据分析的问题。比如,某产品不同设计对销售的影响(ANOVA)、顾客可以接受的价格的预估(抽样后计算置信区间)、顾客同时购买物品的组合(关联规则)、广告投入与销售额的关系(列联表)、预测销售量(回归,甚至是时间序列分析)、基于顾客习惯的商品推荐(分类算法),以及顾客的行为是否存在欺诈(异常检测)等。
这些数据分析方法分散在后续统计和机器学习部分。
2)基于统计推断的商务决策。
由于数理统计是工科学生必修的数学课程,所以主要采取串讲的方式展示将相关的统计方法用于商务决策的问题,包括如何推断顾客可接受的价格、产品质量控制检测(基于置信区间和小概率事件的推断)的原理是什么、投资收益评估(BEP:Break Even Points,保本点;Pay-back period,投资回收期;净收益以及回报率等),以及产品设计对销售的影响(ANOVA)等。
数理统计的其他部分方法划归到机器学习部分,包括线性回归和主成分分析等。多元统计和时间序列则作简要的应用介绍,鼓励感兴趣的同学自己探索。
3)优化论摘要。
如前所述,优化论是另外一个串接数据分析方法的线索:虽然不是直接用于数据分析,但优化论的知识是理解相关算法的基础。可惜的是,在学院的课程规划中并没有设置此课程。网络上可见的优化论课程,大多延续了斯坦福大学Boyd教授的凸优化课程风格——用严格的数学推导来阐释凸优化求解的思想(极值和最优化条件),这是一般学生难以直观理解的。
笔者在授课过程中对此作了简化(不含线性规划的同容):按照优化问题的3个层次(无约束问题、等式约束问题和包含不等式约束问题)来介绍对应的求解方法。
(1)无约束和等式约束的凸优化问题求解的基本思路就是借助一阶和二阶(偏)导数相结合来确定极值性质的方式(多元变量时对应一阶偏导数和Hessian 矩阵的性质):令一阶(偏)导数等于零,然后基于二阶(偏)导数来判定是极大还是极小。
此外,对求解的算法也做了讲解,涉及梯度下降和牛顿法。诸如拟牛顿法、DFP(Davidon Fletcher Powell)、BFGS(Broyden Fletcher Goldfarb Shanno)等其他算法,只做了简要的介绍。
(2)针对包含不等约束的凸优化问题,最优化条件是目前解决此类问题最可靠的理论支撑(无约束和等式约束的情况可看作最优化条件的特例),但因其理论的难度以及实际求解算法的困难,这部分同容只是做了示例,帮助学生了解而已。想要深入浅出地讲通这部分同容只能留待后续自己能力的提升了。
在讲解过程中,严格的凸优化函数界定等同容是予以回避的,但留出了参考文献和书目,甚至列出部分视频供学生进一步学习。
比较欣慰的是,有一些学生尝试着去阅读和钻研凸优化。可惜,他们的反馈都是说那些数学推导是巨大的障碍。这一方面印证了前面关于学生对数学感觉并不好的现象,另一方面也从侧面说明基于示例帮助学生学习算法进而感悟数学的方式是有意义的。
4)机器学习算法概览。
有了优化论的视角,讲解相关的机器学习算法就显得从容许多,因为大部分机器学习算法的计算步骤要依赖优化的思想来理解。
这些算法很多可用于回答商务分析中的关于顾客购物模式的问题,比如所购物品的关联性(关联规则)、购买某类产品的顾客具有什么相似的特征(聚类)、如何评估客户的可能类别(分类)、如何精准推荐顾客可能感兴趣的商品(分类)、客户是否存在欺诈(异常检测)等。
本课程大致覆盖了如下的机器学习算法:①回归,将原属统计学的回归问题放在这一部分,主要介绍了线性回归,着重从优化的角度来理解,以期让同学体会优化的视角。②降维,数据分析的一个关键步骤其实是特征的筛选,降维也就有着独特的作用。讲解了PCA和FA(Factor Analysis,因子分析),对其他降维算法仅仅作了介绍,如ICA(Independent Component Analysis,独立成分分析)和LDA(Linear Discriminant Analysis,线性判别分析)。③关联规则,Apriori 算法是必须要讲的,以保证在此课程中顾全机器学习算法的完整性。④聚类,主要讲解了 K-means和 DBScan(Density-Based Spatial Clustering of Applications with Noise,具有噪声的基于密度的聚类方法),其他算法仅予以介绍,如CURE(Clustering Using Representatives)、BIRCH(Balanced Iterative Reducing and Clustering Using Hierarchies,利用层次方法的平衡迭代规约和聚类)和DENCLUE等。⑤分类,讲授Logistic Regression、 决 策 树、GMM(Gaussian Mixture Model,高斯混合模型)和SVM(Support Vector Machine,支持向量机)等。实际讲授时,SVM是作为专门一节来介绍的,主要讲解SVM建模的由来和严格线性可分情况下SVM的求解。SVM可转换为凸优化中的QP (Quadratic Programming,二次规划)问题,有现成的QP求解方法。仅仅如此是不足以领会到SVM理论的严谨之美,必须延伸到SMO(Sequential minimal optimization,序列最小优化算法)的同容。可是,这一套下来,就不太能兼顾浅显和直白了,所以学生的反馈还是很难。不过,值得欣慰的是,学生的反馈也表明他们对SVM的基本概念和计算步骤还是有了直观的了解。⑥神经网络专列一章,在介绍了感知器模型和Logistic Regression后,进一步讲解了BP网络(Back Propagation,反向传播)、Hopf i eld 网络等Recurrent 网络,最后对深度学习中CNN(Convolution Neural Network,卷积神经网络)做了原理展示。一般介绍神经网络,除了感知机外,也就是介绍BP网络。但是,想要理解现在深度学习中的网络架构,Hopf i eld网络和Boltzmann机等是必要的。其他诸如LSTM(Long-Short Term Memory,长短期记忆模型)的深度学习网络架构只是做了概述,留作学生自学的同容。深度学习现在是很受关注的,对它们的掌握绝对是相关从业或研究人员绕不过去的方法,但放在这门课中较为详尽地阐述在时间上就有些捉襟见肘,所以,只是在那些早期神经网络模型的基础上介绍了CNN,其他的深度学习模型没有展开。建议留有专门的后续课程对此做深入探讨。
5)相关数据管理技术串讲。
在较为完整地统揽了数据分析的方法后,了解一下对应的数据管理技术的发展,尤其是体会数据管理和数据分析集成的趋势,所占时间不多,但对于学生宏观了解IT技术发展是有益的。
相关技术概括为,早期基于文件的数据管理,曾经数据管理的霸主RBDMS(Relational Database Management System,关系数据库管理系统),数据分析和数据管理首次融合的数据仓库(数据挖掘可以看做其中的一个处理环节),以及当下仍备受关注的大数据系统。
专题同容的概述见表1,直观展示专题的同容以及它们之间的相互关系。
4 课程考核
学院是鼓励所谓的过程考核的,以往采取的方式主要是布置课后作业或项目作为平时成绩的依据,但平时成绩往往与最后的纸面考试成绩有巨大的差异。原因很清楚,那就是让学生带回去完成,很难保证学生的自觉性。因此,在实践中严格要求在课堂上布置测试并收集学生的答案。这样,不仅如实反映学生平时对所授同容的理解程度,还可以帮助教师有针对性地就学生困惑的地方予以重点讲解。
此外,原本设想鼓励学生自主使用Python等开发工具练习算法,但因为这部分没有计入课程的分数系统,所以,实际情况就是很少有学生去主动完成。这是一个有趣的也是值得分析的现象:现在的大学生是怎样确定他们的学习兴趣?除了分数,如何调动他们学习艰深知识的兴趣?
表1 授课内容概览表
5 结 语
商务思维的重要性,对于现今身处鼓励创业和创新的社会变革中的大学生而言,是愈加突出的。如何在不增加额外课程的情况下,让学生能够通过一门课程对商务思维有所领会,是改革这门课的初心——数据分析课程自然是最好的选择。
虽然看上去同容很多,但经过深思熟虑,专注于为本科生提供对商务思维和数据分析以宏观的、历史的和广而博的理解,那么课程的建设是可行的。并且,这种方式也得到了学生的认可——出勤率都很高,有一些学生按照给出的线索去学习相关的知识。
实践中也意识到有不足,总结了一些经验:①本课程现在是安排大三春季学期,笔者以为有些晚。比较好的选择是调到线性代数完成后的学期——大二阶段;②缺乏配套的实践课程,不管是常用软件的使用(Excel和SPSS等),还是编程的训练(如Python);③一些有趣的专题没有涉及,比如情感分析、过程挖掘、MDP(Markov Decision Process,马尔科夫决策过程)和强化学习等;④后续应该有深度学习和大数据分析的课程,这样才能保证本院的学生能具有更强的竞争力,现在的情况是,很少有本科生能上手大数据相关同容。
机器学习课程建设的思路已经有很多[16-19],与他们不同,本课程的思路是将商务思维与数据分析融合在一起。虽然实践表明效果还不错,但对于建设好一门课程而言,这仅仅是开始,今后还需要更为深入的探讨和实践。