在当今自动化、云计算、算法、人工智能和大数据的世界中,很少有话题像数据科学和机器学习那样相关。它们最近之所以受欢迎,不仅是因为它们适用于现实生活中的问题,还因为它们自然地融合了许多不同的学科,包括数学、统计学、计算机科学、工程学、科学和金融学。对于开始学习这些主题的人来说,大量的计算技术和数学思想似乎是压倒性的。有些人可能只满足于学习如何使用现成的方法来应用于实际情况。这本书的目的是提供一个可访问的,但全面的数据科学和机器学习的概述。它是为任何有兴趣获得更好的理解数学和统计,支持丰富的各种想法和机器学习算法的数据科学。我们的观点是,计算机语言来来去去,但潜在的关键思想和算法将永远存在,并将形成未来发展的基础。
数据科学为理解和处理数据提供了必要的语言和技术。它涉及数值数据的设计、收集、分析和解释,目的是提取模式和其他有用的信息。机器学习与数据科学密切相关,涉及从数据中学习的算法和计算机资源的设计。本书的组织大致遵循数据科学项目的典型步骤:收集数据以获得关于研究问题的信息;数据的清理、汇总和可视化;数据建模和分析;将关于模型的决策转化为关于研究问题的决策和预测。由于这是一本以数学和统计为导向的书,大部分重点将放在建模和分析上。
我们从第一章开始,使用Python中的数据操作包、结构化、总结和可视化数据。虽然本章中涉及的材料不需要数学知识,但它为数据科学形成了一个明显的起点:更好地理解可用数据的性质。在第二章中,我们介绍统计学习的主要成分。我们区分监督和非监督学习技术,并讨论我们如何评估(非)监督学习方法的预测性能。统计学习的一个重要部分是数据建模。我们介绍了数据科学中各种有用的模型,包括线性、多元高斯和贝叶斯模型。机器学习和数据科学中的许多算法使用蒙特卡洛技术,这是第3章的主题。蒙特卡洛可以用于模拟、估计和优化。第四章讨论了无监督学习,其中我们讨论了密度估计、聚类和主成分分析等技术。然后我们将注意力转向监督式学习然后,我们将在第5章中把注意力转向监督学习,并解释一大类回归模型背后的思想。在其中,我们还描述了如何使用Python的statmodels包来定义和分析线性模型。第6章建立在前一章回归的基础上,发展了核方法和正则化的强大概念,这使得第5章的基本思想可以以优雅的方式得到扩展,使用重建核希尔伯特空间的理论。在第7章中,我们继续进行分类任务,它也属于监督学习框架,并考虑了各种分类方法,包括贝叶斯分类、线性和二次判别分析、k近邻和支持向量机。在第8章,我们考虑回归和分类的通用方法,利用树结构。最后,在第9章,我们考虑了神经网络和深度学习的工作方式,并表明这些学习算法有一个简单的数学解释。在每一章的末尾都提供了广泛的练习。