机器学习实战 第一章练习题

如果见解,欢迎指教
题目:

  1. 如何定义机器学习?

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

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

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

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

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

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

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

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

  10. 什么是核外学习?

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

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

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

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

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

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

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

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

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

答案:

  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. 如果你用测试集调试超参数会出现什么错误?
    如果用测试集来调整超参数,则可能会过拟合测试集,而且所得的泛化误差会过于乐观(你可能会得到一个性能比预期差的模型)。

你可能感兴趣的:(机器学习,机器学习)