前言
目前,数据科学的技术门槛逐渐降低。面对海量信息扑面而来的我们,该如何从这种趋势中收获更多呢?
不友好的技术世界
我们经常听别人谈论,数据科学的门槛在逐渐降低。数据科学、机器学习、自然语言处理、神经网络、人工智能……一系列的名词让我们眼花缭乱,让我们对这个时代充满期待。每个人都跃跃欲试,希望自己也能用新技术让工作卓有成效。但是,如果我们从事的不是与信息技术(Information Technology,IT)相关的工作,学习的不是计算机专业,那可能会逐渐发现,技术世界似乎“不那么友好”。
如我们只想对文本提取主题,作者却写了这么长的公式:
又如我们想做一个时间序列的预测,结果一个处理单元就有图1所示的结构。
除了不断“从入门到放弃”,我们还能做什么?
别急,这不是真相。真相是,只要我们知道如何找到正确的工具包,就可以用短短几行代码完成以前手工需要做几天的工作。
编程,对于有需求的人来说,如今已经变成了和驾驶一样的基础技能。开辆自动挡的汽车,不难吧?我们可以安全行驶几十万千米,成为名副其实的“老司机”,而不必理解发动机(或者电动机)的构造。汽车需要维护和保养,这是自然的,但是这些工作我们都可以交给专业人士。我们需要了解的无非是转向、制动、油门、信号灯……
图1
数据科学技术门槛的降低就应该体现在处理数据问题的时候,我们应当像驾驶汽车一样自然地处理这些问题,而不应当像学习发动机构造一样“挑战自我”。
本书的受众与架构
在机械师的眼中,发动机的构造简单易懂。所以他们中的大部分人写发动机构造教程的时候,很少考虑那些对物理一无所知的读者的感受。
同样,那些制造数据科学与人工智能工具的人也很聪明,相关原理于他们而言就是“理所当然”,所以大部分数据科学类教程,对于读者阅读数学公式和分析模型构造提出了较高要求。而这对于大部分读者,尤其是非理工科的读者来说是一大障碍。
非理工科读者们充满期待,试图通过掌握数据科学工具来完成科研与工作任务,而拿到的教程依然在完完整整地罗列公式,甚至是推导过程。这就像我们想学开车,教练却要我们先学习发动机构造。
读者此时可能会产生自卑感——因为看不懂这些公式。其实,这又有什么?
想必你我都认同,普通的非专职司机(可能是成功的生物学家、成功的作家等),即便不懂发动机的构造和工作原理,依然可以很好地开车,顺利、安全地到达目的地。
因此,我们任何人都不应该在这“数字技术洪流”中受到阻碍。特别是,我们不应该把自己推到“数字鸿沟”的另一端。
我们需要的是找到适合自己阅读的教程。这种教程的特点是什么?在笔者看来,大致包括以下3点。
以问题为导向。用例子讲明白如何用合适的工具,简单、高效地解决问题。
解决问题的方法完全可以复制。教程必须给出全部的代码和步骤流程。读者参考后就能上手,获得结果。
尽量不使用数学公式和一大堆晦涩难懂的术语;即便使用术语,也需要解释清楚。
秉持与上述特点一致的原则,从2017年6月开始,笔者在自己的公众号“玉树芝兰”和简书、知乎、科学网专栏等写了一系列的数据科学教程。很荣幸,这些教程受到了很多读者的欢迎。
现在,笔者将这一系列教程整理成书,分享给读者。本书每一小节都保持了“原汁原味”的问题导向风格的标题。这样读者可以在浏览目录后,迅速定位到自己需要的部分,实践和复用代码,解决遇到的实际问题。
为了让读者更容易理解并实践书中的内容,本书的程序输出结果以截图形式直接给出,部分较复杂内容更保留了输入形式截图。
本书案例大部分有配套代码和案例数据,下载链接:https://github.com/zhaihulu/DataScience/。读者可以尽情下载、修改和使用。本书中的每个案例都经历了成百上千个读者的实际运行和检验。他们的提问和反馈也曾帮助笔者查找出许多问题,或是查找到教程讲解中不容易理解的部分,从而促使笔者不断迭代改进表述方式和案例,这些都在本书有所体现。
数据科学欢迎你
如果你是理工科的学生,甚至是计算机专业的学生,也没有关系。或许本书有些内容对于你来说过于简单,甚至有些啰唆,但你也可以换个角度来看它。
笔者的专栏和公众号读者里面,不乏知名大学信息科学、计算机科学、统计学和数学专业的老师与研究生。笔者曾经疑惑,他们怎么也来读笔者的教程?后来笔者明白了,有的老师是希望这些教程能帮助自己的学生快速上手,有的老师是希望切磋教学用例和教学方法。而有的老师则是从专业的角度帮笔者把关。
他们给了笔者很多的鼓励,也提供了诸多有益的反馈和点拨。在此,笔者向他们表示衷心的感谢!欢迎读者帮笔者挑挑“硬伤”,提高这本书的质量。我们可以共同协作,以免误人子弟的情况出现。
所以你看,你并不孤独。开放的数据科学教育需要大家都贡献自己的一份力量。Welcome on board(欢迎加入我们)!
王树义 翟羽佳
2021年9月