内容提要
本书结合数据科学的具体应用场景,由浅入深、循序渐进地引导读者入门数据科学,覆盖了数据获取、数据预处理、数据分析等方面的内容,共10章。本书首先概括性地介绍各章的主要内容,然后通过一个个生动的案例讲解数据获取、数据预处理、自然语言处理、机器学习和深度学习等方面的典型应用,最后为读者提供进一步学习Python的方向和方法建议。本书各章的案例均基于具体应用场景,以简单、清晰的方式对数据科学相关的技术原理和实际操作进行讲解。
本书适合高等院校的理工科、管理学科的本科生、研究生学习,尤其适合非计算机专业但对计算机编程感兴趣的学生参考学习,同时也适合数据科学行业的从业者阅读。
前言
目前,数据科学的技术门槛逐渐降低。面对海量信息扑面而来的我们,该如何从这种趋势中收获更多呢?
不友好的技术世界
我们经常听别人谈论,数据科学的门槛在逐渐降低。数据科学、机器学习、自然语言处理、神经网络、人工智能……一系列的名词让我们眼花缭乱,让我们对这个时代充满期待。每个人都跃跃欲试,希望自己也能用新技术让工作卓有成效。但是,如果我们从事的不是与信息技术(Information Technology,IT)相关的工作,学习的不是计算机专业,那可能会逐渐发现,技术世界似乎“不那么友好”。
如我们只想对文本提取主题,作者却写了这么长的公式:
又如我们想做一个时间序列的预测,结果一个处理单元就有图1所示的结构。
除了不断“从入门到放弃”,我们还能做什么?
别急,这不是真相。真相是,只要我们知道如何找到正确的工具包,就可以用短短几行代码完成以前手工需要做几天的工作。
编程,对于有需求的人来说,如今已经变成了和驾驶一样的基础技能。开辆自动挡的汽车,不难吧?我们可以安全行驶几十万千米,成为名副其实的“老司机”,而不必理解发动机(或者电动机)的构造。汽车需要维护和保养,这是自然的,但是这些工作我们都可以交给专业人士。我们需要了解的无非是转向、制动、油门、信号灯……
图1
数据科学技术门槛的降低就应该体现在处理数据问题的时候,我们应当像驾驶汽车一样自然地处理这些问题,而不应当像学习发动机构造一样“挑战自我”。
本书的受众与架构
在机械师的眼中,发动机的构造简单易懂。所以他们中的大部分人写发动机构造教程的时候,很少考虑那些对物理一无所知的读者的感受。
同样,那些制造数据科学与人工智能工具的人也很聪明,相关原理于他们而言就是“理所当然”,所以大部分数据科学类教程,对于读者阅读数学公式和分析模型构造提出了较高要求。而这对于大部分读者,尤其是非理工科的读者来说是一大障碍。
非理工科读者们充满期待,试图通过掌握数据科学工具来完成科研与工作任务,而拿到的教程依然在完完整整地罗列公式,甚至是推导过程。这就像我们想学开车,教练却要我们先学习发动机构造。
读者此时可能会产生自卑感——因为看不懂这些公式。其实,这又有什么?
想必你我都认同,普通的非专职司机(可能是成功的生物学家、成功的作家等),即便不懂发动机的构造和工作原理,依然可以很好地开车,顺利、安全地到达目的地。
因此,我们任何人都不应该在这“数字技术洪流”中受到阻碍。特别是,我们不应该把自己推到“数字鸿沟”的另一端。
我们需要的是找到适合自己阅读的教程。这种教程的特点是什么?在笔者看来,大致包括以下3点。
以问题为导向。用例子讲明白如何用合适的工具,简单、高效地解决问题。
解决问题的方法完全可以复制。教程必须给出全部的代码和步骤流程。读者参考后就能上手,获得结果。
尽量不使用数学公式和一大堆晦涩难懂的术语;即便使用术语,也需要解释清楚。
秉持与上述特点一致的原则,从2017年6月开始,笔者在自己的公众号“玉树芝兰”和简书、知乎、科学网专栏等写了一系列的数据科学教程。很荣幸,这些教程受到了很多读者的欢迎。