文章发布于公号【数智物语】 (ID:decision_engine),关注公号不错过每一篇干货。

来源 | KDnuggets

作者 | Ajit Jaokar

转自 | 新智元 编辑 | 大明

【编者按】机器学习和数据科学离不开数学,本文从数学基础的角度入手,推荐了数据科学和机器学习方面的七本参考书以及两本补充读物。相信对打好数学基础的相关人士会有所帮助。

大多数人学习数据科学的人都会把重点放在编程上,实际上编程能力确实是机器学习和数据科学领域的重要技能。但是,要真正精通数据科学和机器学习,必然不能忽视的数据科学背后的数学基础。

出于这个目的,本文介绍了七本在注重打好数据科学的数学基础上的技术读物。当然,涉及到数学,往往阅读体验可能不会很舒服,但要搞好机器学习,数学基础是必须要打牢的,所以努力读书吧!

先说一说为什么在数据科学学习时打好数学基础。

以下是我总结的几个原因:

AI领域无时无刻不在迅速变化。Hinton认为,我们也许应该重新思考反向传播。掌握牢固的数学知识有助于更好地理解AI的演变。一个数学基础深厚的人,对AI的理解和认识与其他仅从表面认识AI的人有很大的区别。此外,掌握数学知识还能更好地了解AI技术带来知识产权的潜力。最后,了解数据科学背后的数学知识,也可以让人更容易获得AI和数据科学的高端职位。

此外,作者推荐这几本书,还有两点个人原因:

1.作者在牛津大学教授物联网数据科学的课程,也包括一些AI技术应用方面的教学事务,在教学过程中涉及到数学基础知识和课程。

2.其次,作者在写一本书来简述人工智能,从数学的角度入手,目标读者是14到18岁的少年。要深入了解数学科学和人工智能数学的数学基础,你需要了解四个方面知识:线性代数,概率论,多元微积分和优化。目前在高中阶段至少会教授这些课程的一部分内容。因此,我试图将高中数学与人工智能和数据科学联系起来,重点是数学建模。

下面进入正题:

01

The Nature Of Statistical Learning Theory 《统计学习理论的本质》

作者:Vladimir Vapnik

PDF资源:

https://statisticalsupportandresearch.files.wordpress.com/2017/05/vladimir-vapnik-the-nature-of-statistical-learning-springer-2010.pdf

如果说要列一份关于数学的书单,这本书是绕不过去的。本书单中排名第一的就是俄罗斯著名数学家Vladimir Vapnik的《统计学习理论的本质》。在这份清单中的所有书籍中,Vapnik这本是最不好找的。Vladimir Vapnik是支持向量机(SVM)的创始人。他的维基百科页面中提供了更多关于他研究成果的介绍。

02

Pattern Classification (2007-12-24)《模式分类》

作者:Richard O Duda

PDF资源:

https://cds.cern.ch/record/683166/files/0471056693_TOC.pdf

就像Vapnik的著作一样,Duda的著作时另一个时代的另一部经典。本书初版于1973年,在二十多年后的2000年才推出第二版,此后一直未再版。时隔近二十年,本书仍然是一个重要资源。本书采用模式识别方法,并涵盖了广泛的算法。

03

Machine Learning: An Algorithmic Perspective,Second Edition (Chapman & Hall/Crc Machine Learning & Pattern Recognition)

《机器学习:算法视角》

PDF资源:

https://doc.lagout.org/science/Artificial%20Intelligence/Machine%20learning/Machine%20Learning_%20An%20Algorithmic%20Perspective%20%282nd%20ed.%29%20%5BMarsland%202014-10-08%5D.pdf

这本书现在已经出版了第二版。此书第一版是我读过的最早的书关于机器学习和算法的著作之一,第二版增加了更多Python代码。与前两本书一样,本书也非常强调算法。

04

The Elements of Statistical Learning: DataMining, Inference, and Prediction, Second Edition

《统计学习基础:数据挖掘、推理和预测》(第二版)

作者:Trevor Hastie,Robert Tibshirani,Jerome Friedman

PDF资源:

https://web.stanford.edu/~hastie/Papers/ESLII.pdf

另一本经典之作,可以作为参考书。

05

Pattern Recognition and Machine Learning (Information Science and Statistics)

《模式识别与机器学习(信息科学与统计)》

作者:Christopher M. Bishop

PDF资源:http://users.isr.ist.utl.pt/~wurmd/Livros/school/Bishop%20-%20Pattern%20Recognition%20And%20Machine%20Learning%20-%20Springer%20%202006.pdf

Christopher M.Bishop的模式识别和机器学习(信息科学和统计学)也是一本深入而精心设计的参考书。

06

Machine Learning: The Art and Science ofAlgorithms that Make Sense of Data

作者:Peter Flach

PDF资源:

http://www.cs.put.poznan.pl/tpawlak/files/ZMIO/W02.pdf

我喜欢Peter Flach的书,尽管亚马逊网站上的一些评论说这书写得太罗嗦,而且代码量显得不足。我特别喜欢这本书中的算法分组(逻辑模型,线性模型,概率模型)章节以及这些主题的整体讲述方式。

最后,是我最推荐的一本书:

07

Deep Learning 《深度学习》

作者:Goodfellow、Bengio、Corville

相关资源:

https://www.deeplearningbook.org/

如果你在找一本值得逐页读完的书,就是它了!这本书既详细,又有现代感,书中内容几乎涵盖了你能想到的关于深度学习的一切知识。

如果无法点开文中资料链接,数智物语已经下载好其中的6份,如有需要可在数智物语公众号对话框回复“机器学习数学”查看详情。

补充两本书:

A First Course in Machine Learning, Second Edition (Machine Learning & Pattern Recognition) by Simon Rogers, Mark Girolami 

作者:Simon Rogers,Mark Girolami

我觉得这本书并不太适合初学者,但它仍然是一本好书(特别是第二版)

Machine Learning: A Probabilistic Perspective

作者:Kevin Murphy 

这本书中评价也很高,但我个人没有读过(因此没有收集)。

写在最后:

除了最后一本《深度学习》之外,我建议其他书不必逐页阅读,而是将其作为参考书,根据需要按相应主题阅读相应的书籍。这些书教会了我时刻保持谦逊。无论我们现在知道了多少,掌握了多少知识,都总能在阅读过程中发现,这个领域原来是如此的庞大和复杂。

这些书已经超越了时间。Vladimir Vapnik现年已经81岁。Duda的著作初版于1973年。我预计50年以后,这个行业里的人们仍然会阅读这些著作。就像与那些经历了时间考验的老朋友们重逢一样。多年之后,也许你会发现,在眼花缭乱的技术、模型和框架背后,数学是永恒的。

原文链接:

https://www.kdnuggets.com/2018/04/7-books-mathematical-foundations-data-science.html

星标我,每天多一点智慧

提升机器学习数学基础,这7本书一定要读-附pdf资源的更多相关文章

  1. C 语言程序员必读的 5 本书,你读过几本?

    你正通过看书来学习C语言吗?书籍是知识的丰富来源.你可以从书中学到各种知识.书籍可以毫无歧视地向读者传达作者的本意.C语言是由 Dennis Ritchie在1969年到1973年在贝尔实验室研发的. ...

  2. 机器学习数学基础- gradient descent算法(上)

    为什么要了解点数学基础 学习大数据分布式计算时多少会涉及到机器学习的算法,所以理解一些机器学习基础,有助于理解大数据分布式计算系统(比如spark)的设计.机器学习中一个常见的就是gradient d ...

  3. 机器学习pdf资源

    <深度学习>(Deep Learning)中文版pdf, 百度网盘: https://pan.baidu.com/s/1jHDiQTg <机器学习导论>(Introductio ...

  4. 《机器学习实战(基于scikit-learn和TensorFlow)》中英文资源+源码 下载

     https://pan.baidu.com/s/1iTIoa4RXdK-lo_QEgLEOFw  提取码:76hf 

  5. 机器学习经典分类算法 —— k-近邻算法(附python实现代码及数据集)

    目录 工作原理 python实现 算法实战 约会对象好感度预测 故事背景 准备数据:从文本文件中解析数据 分析数据:使用Matplotlib创建散点图 准备数据:归一化数值 测试算法:作为完整程序验证 ...

  6. 机器学习经典分类算法 —— k-均值算法(附python实现代码及数据集)

    目录 工作原理 python实现 算法实战 对mnist数据集进行聚类 小结 附录 工作原理 聚类是一种无监督的学习,它将相似的对象归到同一个簇中.类似于全自动分类(自动的意思是连类别都是自动构建的) ...

  7. java打字游戏-一款快速提升java程序员打字速度的游戏(附源码)

    一.效果如图: 源码地址:https://gitee.com/hoosson/TYPER 纯干货,别忘了留个赞哦!

  8. 机器学习中模型泛化能力和过拟合现象(overfitting)的矛盾、以及其主要缓解方法正则化技术原理初探

    1. 偏差与方差 - 机器学习算法泛化性能分析 在一个项目中,我们通过设计和训练得到了一个model,该model的泛化可能很好,也可能不尽如人意,其背后的决定因素是什么呢?或者说我们可以从哪些方面去 ...

  9. 1月中旬值得一读的10本技术新书(机器学习、Java、大数据等)!

    1月中旬,阿里云云栖社区 联合 博文视点 为大家带来十本技术书籍(机器学习.Java.大数据等).以下为书籍详情,文末还有福利哦! 书籍名称:Oracle数据库问题解决方案和故障排除手册 内容简介 & ...

随机推荐

  1. python装饰器小计

    1.装饰器:本质是函数,是用来给其他函数添加附加扩展功能的函数,其返回值是一个函数(函数指针) 2.装饰器作用:不改变函数源代码和函数调用方式的前提下添加函数的附加功能. 3.装饰器储备知识点: A. ...

  2. JaveScript基础(2)之数据类型转换和常用字符串的操作方法

    1.JaveScript数据类型转换: A.转字符串:通过"+"或toString(); PS:如果都是数值类型,'+'会进行求和运算,否则会做字符串连接: var s=2.5;d ...

  3. PAT1027:Colors In Mars

    1027. Colors in Mars (20) 时间限制 400 ms 内存限制 65536 kB 代码长度限制 16000 B 判题程序 Standard 作者 CHEN, Yue People ...

  4. python环境搭建-requests的简单安装(适合新手)

    安装完python之后,一定要记住安装后的路径.这是我当前的路径. 下面是requests的安装步骤: 我们这里直接用pip安装(这样比较适合新手),新版python自带pip,python3.6.1 ...

  5. java中的取整(/)和求余(%)

    1.取整运算符取整从字面意思理解就是被除数到底包含几个除数,也就是能被整除多少次,那么它有哪些需要注意的地方呢?先看下面的两端代码: int a = 10; int b = 3; double c= ...

  6. SQL—对数据表内容的基本操作

    数据表  students      id name sex age address 101 张汉 男 14 杭州 102 欧阳钦 男 13 杭州 103 吴昊 男 14 北京 104 钱进进 男 1 ...

  7. Javascript中没有块级作用域(模仿)

    在C/C++中,由花括号封闭的代码块都有自己的作用域,也就是块级作用域(私有作用域).而在javascript中则没有块级作用域,首先来看一段代码: function test(){ for(var ...

  8. js定时器让动画隔秒运动

    现有一个需求,宝箱隔几秒动一次,抓住用户眼球,自己写了个 doem.

  9. Python2 与 Python3 的编码对比

    在 Python 中,不论是 Python2 还是 Python3 中,总体上说,字符都只有两大类: 通用的 Unicode 字符: (unicode 被编码后的)某种编码类型的字符,比如 UTF-8 ...

  10. java集合框架之ArrayList

    参考http://how2j.cn/k/collection/collection-arraylist/363.html 使用数组的局限性 一个长度是10的数据:Hero[] heroArr=new ...