不学好数学也想当数据科学家?不存在的

简介:

数据科学家需不需要有扎实的数学基础呢?

随着越来越多优秀开源项目的涌现,各类数据科学工具都实现了“半自动化”,数据分析的背后数学原理似乎不再是数据科学家的必备技能。

而在近期,诸如谷歌Cloud AutoML之类的人工智能自动化平台也不断趋于成熟,甚至让人可以不用编程就能建立机器学习模型(点击阅读《谷歌重磅:不用写代码也能建模调参,Cloud AutoML要实现全民玩AI》)。

这么看来,数据科学家确实不再需要扎实的数学基础了?

著名数据科学论坛KDnuggets的网红博主 Tirthajyoti Sarkar表示,当然不是啦,强烈反对!

为什么数据科学依旧离不开数学?我们又需要会哪些数学知识?让我们听这位大咖一一道来。

e05a755d27810d6a5839414fb2e8bfafa582b108

声明

首先,我不是一名IT工程师,我在半导体领域工作,更确切的说是高功率半导体领域。作为一名技术开发工程师,我的日常工作内容主要涉及半导体物理,硅制造过程的有限元模拟,以及电子电路理论。当然,这其中会涉及一些数学,但令人难过的是,我并没有用到过数据科学家们所需要的那些数学。

我有不少朋友在IT行业工作,我也目睹了不少传统IT工程师充满激情的学习或者参与到令人激动的数据科学和机器学习/人工智能领域。我现在涉足这个领域是为了学习一些这行所需要的技术,希望把这些技术应用在半导体装置或工艺设计领域。但当我开始通过自学深入了解这些令人激动的内容时,我很快发现我在大学里学的那些基础的数学知识,我已经记不清了。

虽然我拥有美国一所著名大学的电气工程博士学位,但在没有复习一些必须的数学知识的前提下,想要牢固的掌握机器学习或者数据科学技术还是有一些困难。我必须要说的是IT工程师工作内容和长期的培训使得他们远离了应用数据领域。他们虽然每天处理大量的数据和信息,却并没有对这些数据建立严谨的模型。通常,由于巨大的时间压力,他们工作的重点是“立即处理完当前需求然后处理下一个”而不是科学性的深度挖掘这些数据。遗憾的是,数据科学永远是一门科学,而仅仅有数据是远远不够的。

这些工具和技术包括了,模拟物理或信息过程从而探寻潜在动力学过程,严格地评价数据来源的质量,训练人们从信息流中识别隐藏模式的识别能力,或者理解模型的局限性。这些内容都是科学过程中的标志。

应用科学或者应用工程学课程中通常包含这些内容,一些相似领域中的高水平研究工作中也包含了这些内容。遗憾的是,即便是工作超过十年的传统IT工程师(开发运营,数据库或者QA/测试)都缺乏对这些知识的学习。原因很简单,用不到。

变革的时代

现在不一样了!

在大多数情况下,拥有完美的SQL查询知识,清晰的商业需求,以及一定的RDBMS知识就足够完成提取-转换-装载(ETL)循环的工作,这就是一名IT工程师在公司中所产生的价值。但如果有人突然开始问你一些奇怪的问题,例如,你怎么知道人工生成的测试数据是否足够随机?你怎么知道下一个数据点是否分布在3-sigma的范围内?遇到这些问题,你该怎么办?或者,仅是隔壁计算机科学的研究生偶尔的打趣--计算机进行任何有意义的数学运算的数据表(即:矩阵)的运算负荷会随矩阵大小(行或者列)的增加呈非线性增长,也会让IT工程师感到困惑和恼火。

数据成为了风口上的话题,这些问题出现的频率越来越高,也越来越紧急。

主管、技术经理以及决策者们已经不再满足传统ETL工具给出的干巴巴的表格描述了。他们想要看到表格下面隐藏的模式以及列与列之间的相关关系。他们希望得到完整的描述和推论统计,这些描述和统计可能有助于预测建模,并扩展出远远超出数据集所包含数据范围的投射能力。

今天的数据必须讲述一个故事、或者唱一首美妙的歌。但是,要听懂它优美的旋律,你必须精通音乐的基本音符,而这些音符就是数学。

不再啰嗦,让我们来找出问题的症结所在。一名普通的IT工程师要跨入商业分析、数据科学或者数据挖掘领域,他必须学习或复习哪些基本的数学知识。接下来,我将给出我的观点。

0411a3bad4f71fbf8bc75cd0a4262e0eacfce580

基础代数,函数,集合理论,绘图,几何学

让我们从最基础的内容开始。现代数学的大厦是建立在一些基本内容如集合论、泛函分析以及数论等内容上的。从应用数学学习的角度看,我们可以通过一些简明的模块来简化这些基本内容的学习(没有特别的顺序):

a15ae32de6163ac6c6cb3e9de975a8d6dad69b3e

a) 集合论基础,b) 实数和复数及其基本属性,c) 多项式函数、指数、对数、三角恒等式,d) 线性和二次方程,e) 不平等、无穷级数、二项式定理,f) 排列组合,g) 绘图、笛卡儿坐标系和极坐标系、圆锥曲线论,h) 基础几何定理、三角形的性质。

微积分

当年牛顿想要解释天体运行的规律,但他却没有一个足够好的数学工具来描述他提出的物理概念。在英格兰的城市爆发瘟疫的期间,他搬到了他在乡下的农场,在这里,他提出了现代数学的一个分支--微积分。从那以后,微积分被认为是任何分析研究学科如理论科学、应用科学、工程学、社会科学和经济学等通往高等教育的大门。

毫不意外的,微积分的概念和应用出现在数据科学和机器学习中。涉及的重要概念包括:

a) 单变量函数的极限、连续性以及可微性,b) 中值定理、不定型以及L’Hospita规则,c) 最大值和最小值,d) 乘积和链式法则,e) 泰勒级数,f) 积分计算的基本和平均价值定理,g) 定积分和广义积分的计算,h) Beta和Gamma函数, i) 双变量函数的极限、连续性和偏微分,j) 常微分和偏微分方程基础。

cd8c5190311dfa9d9128afbe83f9d7162b7d23b4

线性代数

一个长期没有联系的猎头突然在领英上加你好友?淘宝突然向你推荐一种超好吃的饼干?网易云音乐为你推荐了最符合你口味的小众歌曲?

37c7e05c7e702c67870fa30138e61f4bde52d1a5

学习了线性代数基础后,你就有了学习科技行业的核心内容所需的数学知识储备,这种感觉是不是很愉快?

所需学习的必要内容如下(排序不分先后且可能有遗漏):

a) 矩阵和向量的基本性质--标量乘法、线性变换、转置、共轭、秩以及行列式,b) 内积和外积,c) 矩阵乘法规则以及各种算法,d) 矩阵的逆,e) 特殊矩阵--方阵,单位矩阵,三角矩阵,稀疏矩阵和稠密矩阵的概念,单位向量,对称矩阵,Hermitian矩阵,反Hermitian矩阵和酉矩阵,f) 矩阵分解的概念/矩阵LU分解,Gaussian/Gauss-Jordan消元法求解Ax = b的线性方程组,g) 向量空间,基,极化,正交性,标准正交,线性最小二乘,h) 奇异值分解,i) 特征值,特征向量,对角化。

还有一篇很好的文章推荐--《线性代数可以让你实现什么?》(链接:https://medium.com/@jeremyjkun/here-s-just-a-fraction-of-what-you-can-do-with-linear-algebra-633383d4153f)

统计和概率

“只有死亡和税收是永远不变的,其他一切都遵从正态分布。”

59472bf645f47cb667681538586c79f666dc6316

在关于数据科学的讨论中,无论怎么强调要扎实掌握统计学和概率学基本概念的重要性都不为过。实际上,许多该行业的从业都者认为机器学习就是统计学习。我从著名的《统计学习基础(An Introduction to Statistical Learning)》开始了我第一个机器学习MOOC课程,几乎瞬间我就意识到我在这门学科上存在不少概念空白。为了弥补这些空白,我开始学习其他有关基本统计学和概率学的MOOC课程,并研读相关主题的文章或观看视频。这门学科范围很广,因此针对性的学习计划是掌握大部分基本概念的关键。我尽量把它们一一列取出来,但是我也有些担心,毕竟这不是我擅长的领域。

  1. 数据摘要和描述性统计,集中趋势,方差,协方差,相关性;
  2. 概率:基本概念,期望,概率微积分,贝叶斯定理,条件概率;
  3. 概率分布函数——均匀分布,正态分布,二项分布,卡方分布,t分布,中心极限定理;
  4. 采样,度量,误差,随机数; 
  5. 假设检验,A/B测试,置信区间,p值;
  6. 方差分析;
  7. 线性回归;
  8. 幂,效应量,检测手段;
  9. 研究性学习和试验计划。

最优化理论,算法分析。

这些话题跟应用数学领域的传统话语没什么不同,它们大多是相关的并广泛应用到多个专业领域研究——理论计算机科学,控制理论或运筹学。然而在机器学习实践中,对这些强大技术有基本掌握是非常有用的,值得在这里一提。

af4f90385b509058899865ba160da7003182f8ca

比如,几乎所有的机器学习算法/技术目的都是在特定约束条件下,使得某种估计误差最小化。这是一个最优化问题,通常用线性规划或类似的技术解决。另一方面,这些技术在帮助理解计算机算法的时间复杂度上效果显著,因为当算法应用到大型数据集时,时间复杂度就非常重要了。在这个大数据时代,通常人们期望一名数据科学家可以提取、转换和分析数十亿条记录,他或她必须非常谨慎的选择合适的算法,因为不同算法会导致最终性能的天壤之别。一般的理论和算法性质可以在计算机科学课上学习,但是要理解时间复杂度是如何分析和计算的(比如针对给定大小的数据集,该算法需要运行多长时间?),就必须要熟悉基本的数学概念比如动态规划或者递归方程。熟悉数学归纳法的证明技术也非常有用。

后记

看到有这么多数学知识要学,是不是有点望而却步了?觉得自己要重新上一遍大学了?不用担心,你可以根据需要边做边学,但最重要的是保持思想的开放。不慌不慌,这些主题你也许大多已经在大学学过,也可能是第一次接触,不过当你学完后,你一定可以慢慢听到数据中隐藏的“旋律”。到那时,你就已经朝着成为数据科学家的方向迈出了一大步。


原文发布时间为:2018-02-6

本文作者:文摘菌

本文来自云栖社区合作伙伴“大数据文摘”,了解相关信息可以关注“大数据文摘”微信公众号

相关文章
|
弹性计算 人工智能 安全
阿里云弹性计算:助力企业实现灵活扩展与高效计算
【10月更文挑战第6天】在现代企业的数字化转型中,云计算已经成为不可或缺的技术基础。阿里云弹性计算(Elastic Compute Service, ECS)凭借其强大的弹性伸缩能力、高可用性和灵活性,帮助企业在云端实现高效的业务运营和资源管理。本文将探讨阿里云弹性计算的主要功能、技术优势以及在各行业中的应用场景。
661 7
|
分布式计算 运维 Serverless
EMR Serverless Spark服务和EMR Serverless StarRocks服务的比较
**EMR Serverless Spark** 以其出色的稳定性、高效性能、减轻运维负担及成本优化著称,适合大规模数据处理。**EMR Serverless StarRocks** 则以高速查询、存算分离架构和灵活扩缩容见长,侧重企业级功能。两者在不同应用场景中有各自优势,选择应基于具体需求。更多详情,参考阿里云官方资源。
|
索引 API
鸿蒙开发:ForEach中为什么键值生成函数很重要
在列表组件使用的时候,如List、Grid、WaterFlow等,循环渲染时都会使用到ForEach或者LazyForEach,当然了,也有单独使用的场景,如下,一个很简单的列表组件使用,这种使用方式,在官方的很多案例中也多次出现,相信在实际的开发中多多少少也会存在。
265 8
鸿蒙开发:ForEach中为什么键值生成函数很重要
|
机器学习/深度学习 文字识别 算法
[Halcon&图像] 缺陷检测的一些思路、常规检测算法
[Halcon&图像] 缺陷检测的一些思路、常规检测算法
6987 2
|
JavaScript 关系型数据库 Java
IDEA插件-EasyCode
EasyCode是基于IntelliJ IDEA Ultimate版开发的一个代码生成插件,主要通过自定义模板(基于velocity)来生成各种你想要的代码。通常用于生成Entity、Dao、Service、Controller。如果你动手能力强还可以用于生成HTML、JS、PHP等代码。理论上来说只要是与数据有关的代码都是可以生成的。
890 0
IDEA插件-EasyCode
石英晶体是如何产生振荡的?以及cpu倍频的由来
本文是关于石英晶体振荡器的学习笔记,适合计算机科学与技术背景的读者。内容涵盖了石英晶体振荡器的基本原理,包括压电效应、等效电路、谐振频率,以及不同类型振荡器的特性和参数。此外,还讨论了石英晶体振荡器的小型化、高精度、低噪声、低功耗发展趋势,并列举了它们在石英钟、彩电和通信系统中的应用。最后提到了处理器倍频的概念,解释了其原理和实际应用中的限制。
石英晶体是如何产生振荡的?以及cpu倍频的由来
|
Web App开发
vscode 使用Markdown 常用技巧之摆脱Google Chrome直转PDF
vscode 使用Markdown 常用技巧之摆脱Google Chrome直转PDF
700 0
U盘复制文件到最后5秒会卡住怎么办解决
现在的U盘容量已经非常大了,一般都有16G以上,为了能放单文件大于4G的数据大多数时候我们都是把U盘格式化为ntfs格式的,所以会出现不管是大文件还是小文件,当你往U盘里复制文件或者使用发送到U盘功能的时候会出现一个怪现象,那就是不管U盘速度如何,都会在前部分拷贝的时候速度非常快,基本上达到U盘的正常速度,但当到达100%的时候就会卡住好久,短的5秒,慢的几分钟才会显示复制完成。
8478 0
|
SQL 关系型数据库 MySQL
Activiti工作流学习笔记(三)——自动生成28张数据库表的底层原理分析
网上关于工作流引擎Activiti生成表的机制大多仅限于四种策略模式,但其底层是如何实现的,相关文章还是比较少,因此,觉得撸一撸其生成表机制的底层原理。
1000 0
|
传感器 开发框架 JavaScript
HaaS EDU K1全流程体验阿里云物联网平台开发
最近入手了新玩具 HaaS EDU K1,它丰富的传感器支持、支持python和js语言的轻应用开发非常吸引我,得益于HaaS云端一体开发框架,我这种非嵌入式开发出身的小白也能够体验物联网平台开发的魅力。今天结合官方案例体验阿里云物联网平台开发。
1344 17
HaaS EDU K1全流程体验阿里云物联网平台开发