图书前言

前    言

开放式解决问题的能力对于数据科学职业至关重要。遗憾的是,这些能力不能仅通过阅读获得。要成为问题解决者,你必须坚持不懈地解决难题。考虑到这一点,我围绕案例研究构思了本书:以现实世界情况为模型的开放式问题。案例研究范围从在线广告分析到使用新闻数据跟踪疾病暴发。完成这些案例研究后,你将可以开始你的数据科学事业。

本书的目标读者

本书的目标读者是具有基本的分析基础且有兴趣转行到数据科学职业的人。我的设想是,他也许是一位想探索更多的分析机会的经济学大四学生,或者是一位已经毕业的化学专业学生正在寻找以数据为中心的职业道路。又或者,读者可能是一位成功的前端Web开发人员,其数学背景非常有限,但也想尝试数据科学。本书的潜在读者都没有上过数据科学课程,这让他们在进行各种数据分析时感到力不从心。本书的目的是消除这些技能缺陷。

本书的读者需要了解Python编程的最基本知识。自学Python入门知识的水平应该能足以探索本书中的练习。至于数学知识,读者只需要理解基本的高中三角函数即可。

本书组织结构

本书包含5个难度由浅入深的案例研究。每个案例研究都以你需要解决的问题的详细陈述开始。问题陈述之后是用2~5章介绍解决问题所需的数据科学技能。这些技能部分涵盖了Python基础库以及数学和算法技术。每个案例研究的最后一章都描述了问题的解决方案。

案例研究1与基本概率论有关。

● 第1章讨论如何使用简单的Python计算概率。

● 第2章介绍概率分布的概念。该章还介绍Matplotlib可视化库,通过它可以对分布进行可视化。

● 第3章讨论如何使用随机模拟来估计概率。该章引入NumPy数值计算库,从而促进有效的模拟执行。

● 第4章包含案例研究的解决方案。

案例研究2从概率扩展到统计。

● 第5章介绍中心性和离散性的简单统计测量。该章还介绍SciPy科学计算库,其中包含一个有用的统计模块。

● 第6章深入探讨可用于进行统计预测的中心极限定理。

● 第7章讨论各种统计推断技术,这些技术可用于将有趣的数据模式与随机噪声区分开。此外,该章说明了错误使用推理的危险以及如何更好地避免这些危险发生。

● 第8章介绍Pandas库,可用于在统计分析之前对表格数据进行预处理。

● 第9章包含案例研究的解决方案。

案例研究3侧重于介绍地理数据的无监督聚类。

● 第10章介绍如何使用中心性度量将数据聚类到组中。该章还引入scikit-learn库以促进高效聚类。

● 第11章侧重于介绍地理数据提取和可视化。在该章中,使用GeoNamesCache库从文本中进行提取并使用Cartopy地图绘制库实现可视化。

● 第12章包含案例研究的解决方案。

案例研究4侧重于介绍使用大规模数值计算的自然语言处理。

● 第13章说明如何使用矩阵乘法有效地计算文本之间的相似度。NumPy的内置矩阵优化被广泛用于此目的。

● 第14章展示如何利用降维来进行更有效的矩阵分析。该章结合scikit-learn的降维方法讨论数学理论。

● 第15章将自然语言处理技术应用于超大文本数据集。该章讨论如何更好地探索和聚类这类文本数据。

● 第16章展示如何使用Beautiful Soup HTML解析库从在线数据中提取文本。

● 第17章包含案例研究的解决方案。

案例研究5侧重于对网络理论和监督机器学习的讨论。

● 第18章结合NetworkX图分析库介绍基本网络理论。

● 第19章展示如何利用网络流在网络数据中寻找聚类。该章将概率模拟和矩阵乘法用于实现有效的聚类。

● 第20章介绍一种基于网络理论的简单监督机器学习算法。该章还使用scikit-learn说明常见的机器学习评估技术。

● 第21章讨论其他机器学习技术,这些技术依赖内存高效的线性分类器。

● 第22章深入探讨之前介绍的监督学习方法的缺陷。随后使用非线性决策树分类器来规避这些缺陷。

● 第23章包含案例研究的解决方案。

本书的每一章都建立在前几章中介绍的算法和库的基础上。因此,我们鼓励你从头到尾阅读本书,以减少困惑。但如果你已经熟悉书中的某些内容,可直接跳过它们。最后,强烈建议你在阅读解决方案之前自己解决每个案例研究的问题。独立解决每一个问题将使本书的价值最大化。

另外,读者可扫描封底二维码,来下载源代码。