边境的悍匪—机器学习实战:第一章 机器学习的基础知识

第一章 机器学习的基础知识


前言

本人第一次接触机器学习,想要通过阅读一本书的方式了解并学会运用机器学习所以选择了《机器学习实战:基于Scikit-Learn、Keras和TensorFlow第2版》,在很多本书中纠结,最终选定这一本理论结合实践的讲解方式的书。


一、书本简介

这本机器学习畅销书基于TensorFlow 2和Scikit-Learn的新版本进行了全面更新,通过具体的示例、非常少的理论和可用于生产环境的Python框架,从零帮助你直观地理解并掌握构建智能系统所需要的概念和工具。
全书分为两部分。第一部分介绍机器学习基础,涵盖以下主题:什么是机器学习,它试图解决什么问题,以及系统的主要类别和基本概念;第二部分介绍神经网络和深度学习,涵盖以下主题:什么是神经网络以及它们有什么用,使用TensorFlow和Keras构建和训练神经网络的技术,以及如何使用强化学习构建可以通过反复试错,学习好的策略的代理程序。第一部分主要基于Scikit-Learn,而第二部分则使用TensorFlow和Keras。
通过本书,你会学到一系列可以快速使用的技术。每章的练习可以帮助你应用所学的知识,你只需要有一些编程经验。所有代码都可以在GitHub上获得。

我将以一个章节一篇文章的方式记录我完整的阅读过程。祝我好运,我们开始吧!

二、主要内容

在这里插入图片描述

三、课后练习

1. 如何定义机器学习?
机器学习是能让计算机从数据中学习完成复杂的需要大量人工参与调整规则的问题的学科。所谓学习就是在给定任务下,随着时间的推移性能越来越好。

2. 机器学习在哪些问题上表现突出,你能给出四种类型吗?
机器学习适合解答没有算法解答的复杂问题,它可以替代一系列需要手动调整的规则,来构建适应不断变换的环境的系统,并最终帮助人类。例如数据挖掘。

3. 什么是被标记的训练数据集?
带标签的训练集是一个包含每个示例所需解决方案(也称为标签)的数据集。

4. 最常见的两种监督学习任务是什么?
最常见的有监督学习任务是回归和分类。

5. 你能举出四种常见的无监督学习任务吗?
最常见的无监督学习任务的有聚类、降维,关联学习、可视化。

6. 要让一个机器人在一个未知的地形中行走,你会选择什么类型的机器学习算法?
我们想要一个机器人在未知的地形中行走,则强化学习会表现得更好,因为这通常是强化学习需要解决的典型问题,也可以把强化学习问题表示为有监督学习或半监督学习问题,但这种情况不是很自然的想法。

7. 要将顾客分为多个组,你会使用什么类型的算法?
如果你不知道需要把用户分为哪些组,可以使用无监督学习聚类算法,把用户分为相似的组。如果你知道需要把用户分为哪些组,则可以将每个组的许多示例提供给有监督学习分类算法,并将所有示例分类到这些组中。

8. 你会将垃圾邮件的检测问题列为监督学习还是无监督学习?
垃圾邮件检测问题是典型的有监督学习问题,它向算法提供了很多的电子邮件及标签。

9. 什么是在线学习系统?
与批量学习相反,在线学习系统可以进行增量学习,可以快速适应不断变化的数据和自动系统,同时可以处理大量的数据。

10. 什么是核外学习?
核外学习可以处理无法容纳在内存中大量数据,将这些数据分为小批量,使用在线学习技术从这些小批量数据中学习。

11. 什么类型的算法依赖相似度来做出预测?
基于示例的学习系统通过努力的死记硬背来学习训练数据,然后当给定一个新示例是,他将通过匹配相似度来完成预测。

12. 模型参数与学习算法的超参数有什么区别?
一个模型具有一个或多个模型参数,这些参数决定在给定一个新实例是模型将预测什么(如线性模型的斜率),一种算法试图找到这些参数的最有解、以此能很好的泛化到新的实例。超参数是算法本身的参数,而不是模型参数。(例如算法使用正则化的数量)。

13. 基于模型的学习算法搜索的是什么?它最常使用的策略是什么?它们如何做出预测?
基于模型的学习算法搜索的是模型参数的最优解,以便模型可以很好地泛化到新示例。我们一般通过最小化成本函数来训练这样的系统,该函数测量系统对训练数据预测是有多不准确,如果对模型进行了正则化则对模型复杂性要加上惩罚。为了进行预测,我们使用学习算法得到的模型参数,再将新的实例特征数据在预测函数中。

14. 你能给出机器学习中主要的四个挑战吗?
机器学习中的一些主要的挑战是数据的缺乏,数据质量差,数据的代表性不足,信息量不足,模型过于简单而欠拟合训练数据以及模型过于复杂而过拟合训练数据。

15. 如果模型在训练集上表现很好,但是应用到新示例上泛化结果很糟糕,是怎么回事,可以给出三种觉得方案吗?
如果模型在训练集上表现很好但是应用到新示例上结果糟糕,说明模型过分复杂导致的过拟合于训练数据(或者我们在训练集上非常幸运)。过拟合的数据的解决方法有:增加训练数据,介绍模型的复杂度(选择简单的算法,减少使用的参数或者特征的数量或者对模型进行正则化)或减少训练数据中的噪声。

16. 什么是测试集,为什么要使用测试集?
测试集是用于在启动生产环境之前,估计模型在新示例上产生的误差。

17. 验证集的目的是什么?
验证集是用于比较模型。这样可以选择最佳的模型并调整超参数。

18. 什么是train—dev集,什么时候需要它,怎么使用?
当训练数据、验证数据、测试数据之间存在不匹配时可以使用train-dev集,train-dev集是训练数据的一部分。该模型在训练集的其他部分上训练,并在train-dev集合验证集上进行评估,如果模型在训练集上表现良好,但是在train-dev集上表现不佳,说明模型过拟合与训练集。如果模型在训练集和train-dev上表现均为良好,但是在验证集上表现不佳,那么训练数据与验证数据和测试数据中间存在明显的数据不匹配,你应该尝试改善训练数据,使其看起来更像验证数据和测试数据。

19. 如果你使用测试集来调超参数会出现什么错误?
如果是用测试集来调整超参数,则可能模型会过拟合于测试集,所测得的泛化误差会过于乐观(我们会得到一个性能比预期差的模型)。

总结

这一章节主要是围绕什么是机器学习、机器学习能做什么、我们是怎么做机器学习的、我们做机器学习遇到的困难是什么以及困难的解决办法这几个方面来介绍机器学习。
1、其中机器学习是通过编程使计算机能从数据学习知识的学科。
2、机器学习能解决一些无法用算法解决的复杂问题,它可以替代需要大量人工参与手动调整规则的系统。
3、我们可以通过有监督学习、无监督学习、强化学习等方式来实现机器学习。
当前我们遇到的问题有:数据缺乏、数据不具备代表性,数据噪音大,训练模型过拟合、欠拟合数据等问题,我们一般采用收集大量数据、特征选择、调整参数、选择模型等方式来解决这些问题。
以上就是所有的机器学习第一章内容,如需完整思维导图可以关注私信我或是发邮件与我取得联系2579779624@qq.com,也可添加我们的学习交流群:666980220,我们一起共同学习!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值