微信读书:
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
的实践》是一本很好的
机器学习
实战
指南,适合那些对
机器学习
和深度学习感兴趣的读者。无论是初学者还是有经验的从业者,都能从中获得宝贵的知识和技能。希望通过阅读这本书,读者能够在
机器学习
和深度学习领域取得更好的成果。