前 言
我们一直想要合作写一本以机器学习为主题的书。十年前,我们刚开始接触AI。如今,这个领域已经有了突飞猛进的发展和扩张。作为终身学习者,我们意识到,在最开始接触任何领域时,都需要一份更明晰的资料来清楚地指明前方的道路。在通过阅读、学习和利用所学的知识来加强学习体验的过程中,也需要有一系列明确的解释和偶尔的灵感。我们在软件开发、数据科学和机器学习的学术经历与职业生涯中经常使用Python。通过这本书,我们做了一次非常谦卑的尝试,为绝对零基础的初学者写一本以机器学习为主题的分步骤指南。本书的每一章都包含对概念的解释、代码示例、对代码示例的解释以及代码输出截图。
第Ⅰ部分包含4章的内容。第1章讲解不同平台上如何设置Python环境。第2章涉及NumPy和Ndarray。第3章探讨如何用Matplotlib进行可视化。第4章介绍Pandas数据科学库。最开始的这几章都旨在建立编程和基本的数据处理基础,这是学习机器学习的先决条件之一。
第Ⅱ部分探讨传统的机器学习方法。在第5章中,我们先对机器学习领域进行概览,然后讲解如何安装Scikit-learn,并介绍一个简短而快速的使用Scikit-learn的机器学习解决方案示例。第6章详细说明一些方法,以帮助大家理解结构化数据、文本数据和图像数据,并将这些数据转化为机器学习库所能接受的格式。第7章介绍监督学习式,讲解了针对回归问题的线性回归和针对分类问题的逻辑回归和决策树。在每个实验中,我们还展示了如何利用决策边界图(decision boundary plot)来绘制算法所学到的可视化内容。第8章深入研究如何进一步微调机器学习模型。我们解释了一些评估模型性能的想法,过拟合和欠拟合的问题,以及处理这些问题和提升模型性能的方法。第9章继续探讨监督式学习方法并重点介绍朴素贝叶斯和支持向量机。第10章讲解集成学习,这种解决方案将多个较简单的模型结合起来,以获得比单独这些模型更好的性能。在第11章中,我们讨论了无监督学习,并重点关注降维、聚类和频繁模式挖掘方法。每个部分都包含一个使用Scikit-learn实现所讨论方法的完整例子。
最后,第Ⅲ部分中的第12章介绍神经网络和深度学习的基本思想。我们介绍了一个非常流行的开源机器学习框架PyTorch,后续章节的例子都会用到它。第13章讲解人工神经网络,并深入论述了前馈(feedforward)和反向传播(backpropagation)的理论基础,然后要地介绍损失函数(loss function)和一个简单神经网络的例子。在后半部分中,我们解释了如何创建一个能够识别手写数字的多层神经网络。在第14章中,我们讨论卷积神经网络并讲述了一个图像分类案例。第15章探讨递归神经网络,并指导您解决一个序列建模问题。在最后的第16章中,我们论述规划、管理和设计机器学习和数据科学项目的策略。我们还讲解了一个端到端的案例,它很简短,使用了深度学习来进行情感分析。
如果是初次接触这个主题,那么我们强烈建议您按照章节顺序阅读本书,因为其中概念是相互关联的。仔细阅读所有代码,可以随意地尝试修改和调整代码结构、数据集和超参数。
如果对一些主题已经有所了解,请随意跳到自己感兴趣的章节并深入研究相关内容。祝大家学习顺利。