前言
这是一篇关于《Introduction to Datascience: Learn Julia Programming, Math & Datascience from Scratch》的书籍简介。本书可当做作者 Karthikeyan A K 向自己解释数据科学的一次尝试,适合想入门Julia的编程小白阅读,或许不够专业,但也值得一读。
本文标题之所以将书名中的“Math & Datascience”翻译为数据科学(数学),是因为作者在1.2中提到“Computers are good and are very fast at math, and data science is math.”(数据科学即数学),因此,标题如果将其翻译为数据科学和数学,就显得有点赘余了。
本书内容大致可分为四个部分:数据科学、Julia语言、数学运算 和 机器学习(作者尚未完成的神经网络部分可以当做机器学习部分的补充),以下是这四个部分的内容简介。
1. 数据科学
第一部分旨在说明数据科学的重要性和分析数据的方法。
首先,作者列举了读者需要了解的预备知识:
想要动手运行书中的程序,读者最好有一台基于GNU/Linux并且性能不错的计算机,这样就能跟随作者一起探索数据科学了!
回顾人类发展的历史进程(从石器时代、能源时代,到现在的信息时代),如今,我们的生活充斥着大量数据,如果使用数据科学对其加以处理和分析,它们将为我们带来更多价值。
作者介绍数据科学的顺序并非如瀑布模型般顺流而下,而是在各个部分之间建立了一些共识和因果联系。
在专业环境中,数据科学可被应用于以下几个阶段:数据收集、数据整理、数据统计、数据可视化、机器学习(特征工程、神经网络训练)、数据缩放等,当使用数据科学为某个项目找到满意的解决方案时,还可以将整个流程自动化,如下图所示的流水线:
分析数据有两种方法:
- 通过机器学习预测未发生的事
- 对已发生的事进行描述性分析
为了帮助读者更好地理解这两种分析方法,作者列举了两个形象生动的例子:一是调研伦敦霍乱的源头,二是分析拿破仑进攻俄国失败的原因。
这两个例子不仅让我们知道数据分析的重要性,还展现了数据可视化的魅力,更为直观的可视化形式能加深我们对数据的理解、加快解决问题的速度。
接着,作者继续引用一些生活中的实例,介绍了 机器学习、人工智能 和 数据科学 之间的联系和区别。
2. Julia
第二部分主要介绍Julia语言的配置操作及其编程基础。
既然是从零开始学,作者就先介绍了Julia的安装步骤,接着逐步演示了在 Julia REPL 模式下一些简单的计算和操作方法,包括清屏、退出和获取帮助等。
此外,Julia也有很多第三方开发的库(包),也可以方便地使用终端命令进行增删。
值得注意的是,数据科学家通常不会使用REPL和文本编辑器来编码,而是使用一种 Jupyter Notebook 的交互方式,于是作者继续演示了对应 IJulia 的安装方法、进入 Jupyter Lab 以及选择对应内核等基本配置操作。
接着就是一些编程基础,包括基本的运算操作、字符串、布尔运算、比较运算、条件循环语句、各种运算符,还有数组、元组、集合、字典的特性及其操作,以及注释说明等。
作者通过一个与服务员交谈的例子说明:编程与现实世界非常相似,顺便引出了函数的概念和相关介绍,给出的编程实例简洁易读。
此外,作者还用了一些篇幅介绍正则表达式的使用、结构体构建、模块导入、不同格式的文件对应操作、绘图工具包及其使用方法等,也包含尚未完成的DataFrames包介绍和程序调试部分。
3. 数学运算
第三部分内容可以当做是Julia编程基础向机器学习部分的过渡,作者主要演示了向量和矩阵运算、Sigmoid函数的使用和概率统计学相关参数的计算等操作。
书中的“math”和“mathematics”需要区分一下,前者倾向于数据科学理论,而后者更倾向数学运算操作。
4. 机器学习
在最后一部分,作者主要介绍了机器学习算法和神经网络相关的操作,包括遗传算法、K-近邻算法、决策树模型、K-均值聚类算法,以及梯度下降、线性拟合的过程,也涵盖调参、拟合、反向传播等重要操作。
补充说明
- 本文插图均来源于书内
- 本书每个章节基本都有对应的讲解视频和Jupyter源码链接,另附带一些延伸学习的资源链接
- 本书作者是印度人,书中有几幅印度神像插图,与内容并无实质性联系