第1章 机器学习概览

微信读书: https://weread.qq.com/web/reader/e8e327a07208f4d1e8ec475kc9f326d018c9f0f895fb5e4

本章中,我们提及了机器学习中最重要的一些概念。第2章将会进行更深入的探讨,也会写更多代码,但是在那之前,请先确保你已经知道如何回答下列问题:

1.如何定义机器学习?

机器学习是一门通过编程让计算机从数据中进行学习的科学(和艺术)。

2.机器学习在哪些问题上表现突出,你能给出四种类型吗?

  • 有解决方案的问题:机器学习算法可以简化代码,相比传统方法有更好的性能。
  • 传统方法难以解决的复杂问题:最好的机器学习技术也许可以找到解决方案。
  • 环境有波动:机器学习算法可以适应新的数据。
  • 洞察复杂问题和大量数据。

3.什么是被标记的训练数据集?

在有监督学习中,提供给算法的包含所需解决方案的训练集称为标签。例如一封邮件是垃圾邮件还是常规邮件。

4.最常见的两种监督学习任务是什么?

分类和回归。

5.你能举出四种常见的无监督学习任务吗?

聚类、降维、异常检测和关联规则学习。

6.要让一个机器人在各种未知的地形中行走,你会使用什么类型的机器学习算法?

强化学习。

7.要将顾客分成多个组,你会使用什么类型的算法?

聚类算法。

8.你会将垃圾邮件检测的问题列为监督学习还是无监督学习?

监督学习。

9.什么是在线学习系统?

在在线学习中,你可以循序渐进地给系统提供训练数据,逐步积累学习成果。这种提供数据的方式可以是单独的,也可以采用小批量的小组数据来进行训练。每一步学习都很快速并且便宜,这样系统就可以根据飞速写入的最新数据进行学习。

10.什么是核外学习?

对于超大数据集——超出一台计算机的主存储器的数据,在线学习算法也同样适用(这称为核外学习)。算法每次只加载部分数据,并针对这部分数据进行训练,然后不断重复这个过程,直到完成所有数据的训练(见图1-14)。

11.什么类型的学习算法依赖相似度来做出预测?

基于实例的学习。在基于实例的学习中,系统用心学习这些示例,然后通过使用相似度度量来比较新实例和已经学习的实例(或它们的子集),从而泛化新实例。

12.模型参数与学习算法的超参数之间有什么区别?

超参数是学习算法(不是模型)的参数。因此,它不受算法本身的影响。超参数必须在训练之前设置好,并且在训练期间保持不变。如果将正则化超参数设置为非常大的值,会得到一个几乎平坦的模型(斜率接近零)。学习算法虽然肯定不会过拟合训练数据,但是也更加不可能找到一个好的解决方案。调整超参数是构建机器学习系统非常重要的组成部分。

13.基于模型的学习算法搜索的是什么?它们最常使用的策略是什么?它们如何做出预测?

基于模型的学习算法搜索的是模型选择。模型选择包括选择模型的类型和完全指定它的架构。训练一个模型意味着运行一种寻找模型参数的算法,使其最适合训练数据(希望能对新的数据作出好的预测)。

14.你能给出机器学习中的四个主要挑战吗?

  • 训练数据的数量不足
  • 训练数据不具有代表性
  • 低质量的数据
  • 无关特征: 只有训练数据中包含足够多的相关特征以及较少的无关特征,系统才能够完成学习。一个成功的机器学习项目,其关键是提取出一组好的用来训练的特征集。

15.如果模型在训练数据上表现很好,但是应用到新实例上的泛化结果却很糟糕,是怎么回事?能给出三种可能的解决方案吗?

过拟合。过拟合的可能解决方案包括:

  • 简化模型: 可以选择较少参数的模型(例如,选择线性模型而不是高阶多项式模型),也可以减少训练数据中的属性数量,或者是约束模型。
  • 收集更多的训练数据。
  • 减少训练数据中的噪声(例如,修复数据错误和消除异常值)。

16.什么是测试集,为什么要使用测试集?

测试集: 用于测试模型的数据。

通过测试集来评估模型应对新场景的误差率,即泛化误差(或者样例外误差),可以评估模在处理新场景时的性能。

17.验证集的目的是什么?

验证集用于评估几种候选模型并选择最佳模型。更具体地说,你可以在简化的训练集上(即完整训练集减去验证集)训练具有各种超参数的多个模型,并且选择在验证集上表现最佳的模型。在此保持验证之后,你在完整的训练集(包括验证集)上训练最佳模型,这就是你的最终模型。最后,你在测试集上评估这个模型以获得泛化误差的估计值。

18.什么是train-dev集,什么时候需要它,怎么使用?

开发集(dev set)是指从完整的训练集中抽取部分数据,用于评估几种候选模型并选择最佳模型的数据集。

在调整模型和超参数来得到拟合那个测试集的最佳模型时,通常需要train-dev集。

使用方法: 你可以在简化的训练集上(即完整训练集减去验证集)训练具有各种超参数的多个模型,并且选择在验证集上表现最佳的模型。在此保持验证之后,你在完整的训练集(包括验证集)上训练最佳模型,这就是你的最终模型。最后,你在测试集上评估这个模型以获得泛化误差的估计值。

19.如果你用测试集来调超参数会出现什么错误?

过拟合,该模型对于新的数据不太可能有良好的表现。

以上练习题的答案见附录A。

第一部分 机器学习 基础(Part I. The Fundamentals ofMachine Learning) 第1 机器学习 概述(Chapter 1. The Machine LearningLandscape)(待更新) 第2 端到端 机器学习 项目(Chapter 2. End-to-End MachineLearning Project) 第3 分类(Chapter 3. Classification) 第4 训练模型(Chapter 4. Trai... · 《 机器学习 》周志华 · 环境:Anaconda(Python 3.8) + Pycharm · 学习时间:2022.05.05~2022.05.05 第六 集成学习和随机森林
第四 训练模型 · 环境:Anaconda(Python 3.8) + Pycharm · 学习时间:2022.04.16~2022.04.? 到目前为止,我们已经探讨了不同机器学
机器学习 实战 (基于 Scikit-Learn TensorFlow ) 本文参考书籍:《 机器学习 实战 (基于 Scikit-Learn TensorFlow )》 目录 机器学习 实战 (基于 Scikit-Learn TensorFlow )1. · 《 机器学习 》周志华 · 环境:Anaconda(Python 3.8) + Pycharm · 学习时间:2022.05.07~2022.05.08 第八 降维 许多 机器学习 问.
### 回答1: "Hands-On Machine Learning with Scikit-Learn Keras "是由Aurélien Géron撰写的一本深度学习和 机器学习 的实践指南。它是学习 机器学习 和深度学习的极好资源。 这本书首先介绍了 机器学习 的基础概念,然后深入讨论了如何使用 Scikit-Learn Keras 这两个流行的Python 机器学习 库。 Scikit-Learn 提供了丰富的 机器学习 算法和工具,可以帮助我们构建、训练和评估模型。而 Keras 是一个用于构建深度学习模型的高级神经网络库。 在这本书中,作者结合实践案例和详细的代码示例,带领读者通过实际的项目学习 机器学习 和深度学习的应用。你将学习如何预处理和清洗数据、选择合适的模型、训练和调整模型参数,以及评估模型的性能。 此外,这本书还探讨了深度学习的各个方面,包括卷积神经网络、循环神经网络、生成对抗网络等。作者通过讲解这些概念和技术,帮助读者理解深度学习的原理和应用,并将其应用于实际项目中。 总体而言,“Hands-On Machine Learning with Scikit-Learn Keras ”提供了一个全面而易于理解的学习路径,帮助读者从初学者逐步成为 机器学习 和深度学习的专家。无论你是新手还是有一定经验的开发者,这本书都是一个值得推荐的资源。 ### 回答2: "Hands-On Machine Learning with Scikit-Learn , Keras " 是一本介绍 机器学习 和深度学习的书籍,作者是Aurélien Géron。这本书的目的是帮助读者从实践的角度深入了解使用 Scikit-Learn Keras 库进行 机器学习 和深度学习的方法。 这本书采用了实践驱动的方法,通过编写代码和实际项目的例子,帮助读者理解 机器学习 和深度学习的核心概念和技术。书中涵盖了各种 机器学习 和深度学习的主题,包括数据预处理、监督学习、无监督学习、集成学习、深度神经网络等。 书中的案例涉及到了实际应用场景,比如图像分类、文本分类、推荐系统等。读者可以通过具体的例子理解 机器学习 和深度学习在实际项目中的应用。 这本书还介绍了使用 Scikit-Learn Keras 库的基本操作和功能。读者可以学习如何安装和配置这些库,并学会使用它们进行数据处理、模型训练和评估等操作。 总的来说,《Hands-On Machine Learning with Scikit-Learn , Keras 》是一本非常实用的 机器学习 和深度学习实践指南。它适合那些对 机器学习 和深度学习感兴趣的读者,尤其是那些希望通过具体的例子和实践项目来学习这些技术的人。这本书将帮助读者理解 机器学习 和深度学习的基本原理和技术,并将它们应用到实际项目中。 ### 回答3: 《 机器学习 实战 :基于 Scikit-Learn Keras 的实践》是一本非常受欢迎的 机器学习 教材,它由Aurelien Geron编写。这本书提供了关于使用 Scikit-Learn Keras 进行实践的详细指导和示例。 Scikit-Learn 是一个常用的Python 机器学习 库,它集成了许多常用的 机器学习 算法和工具,使 机器学习 模型的开发变得更加简单和高效。 Keras 是另一个流行的深度学习库,它提供了高级的神经网络建模接口,使深度学习模型的设计和实现变得更加容易。 《 机器学习 实战 :基于 Scikit-Learn Keras 的实践》主要分为三个部分。第一部分介绍了 机器学习 的基本概念和常用技术,如线性回归、逻辑回归、决策树和随机森林等。第二部分介绍了深度学习的基本原理和常用模型,如卷积神经网络和循环神经网络等。第三部分通过几个实际项目的实例,展示了如何使用 Scikit-Learn Keras 进行 机器学习 和深度学习的实践。 这本书在整个实践过程中给出了详细的步骤和代码示例,有助于读者理解和复现。此外,书中还提供了相关的数据集和预训练模型,方便读者进行实际的实验和项目开发。 总体而言,《 机器学习 实战 :基于 Scikit-Learn Keras 的实践》是一本很好的 机器学习 实战 指南,适合那些对 机器学习 和深度学习感兴趣的读者。无论是初学者还是有经验的从业者,都能从中获得宝贵的知识和技能。希望通过阅读这本书,读者能够在 机器学习 和深度学习领域取得更好的成果。