《机器学习实战(第二版)》学习记录

《机器学习实战(第二版)》学习记录-01

第一章

什么是机器学习?

机器学习是一门通过编程让计算机从数据中进行学习的科学

为甚么使用机器学习

  1. 程序更短、更易维护、更精确;
  2. 善于处理对于传统方法而言太复杂或没有已知算法的问题

数据挖掘:使用机器学习方法挖掘大量数据来帮助发现不太明显的规律。例如:使用垃圾邮件过滤器训练了足够多的垃圾邮件后,用它列出垃圾邮件预测器的单词和的单词组合,有可能会发现不引人注意的关联或新趋势。

机器学习适用于:

  • 有解决方案(但方案需大量人工微调或遵循大量规则)的问题:能够提供简化代码和相对传统方法更好的性能
  • 传统方法难以解决的复杂问题:最好的机器学习技术也许可以找到解决方案。
  • 环境有波动:机器学习散发可以适应新数据
  • 洞察复杂问题和大量数据。

机器学习系统的类型

  • 是否哎人类监督下训练:
    • 有监督学习
    • 无监督学习
    • 半监督学习
    • 强化学习
  • 是否可以动态地进行增量学习
    • 在线学习
    • 批量学习
  • 是简单地将新的数据点和已知的数据点进行匹配,还是像科学家那样,对训练数据进行模式检测然后建立一个预测模型
    • 基于实例的学习
      • 系统用心学习示例,让后通过使用相似度度量方式来比较新实例和已经学习的实例(或他们的子集),从而泛化新实例。
    • 基于模型的学习
      • 构建示例集的泛化模型,使用该模型进行预测。
      • “模型”一词可以指代:
        1. 指模型的一种类型,例如线性回归
        2. 一个特定的模型架构,一个输入和一个输出的线性回归
        3. 最后可用于预测的训练模型,一个输入和一个输出,且具有参数值的线性回归

这些标准之间不相互排斥,可以按照喜欢的方式进行组合,例如:一个在线的、基于模型的有监督学习系统。

模型选择包括:选择模型的类型,完全指定他的架构。
训练一个模型意味着运行一种寻找模型参数的算法,使其最适合训练数据(希望对新的数据做出好的预测)

属性和特征:
  • 属性:一种数据类型(例如:车辆里程)
  • 特征:取决于上下文,可能有多个含义,通常特征意为一个属性加上其值(里程=1000)
  1. 在有监督学习中,提供给算法的包含所需解决方案的训练集成为标签
  2. 通过给定一组特征来预测一个目标数值,回归。回归算法也可用于分类,反之亦然;
  3. 降维的目的是:在不丢失太多信息的前提下简化数据。将多个相关特征合并为一个,这个过程叫做特征提取。
  4. 大多数半监督学习是无监督学习和有监督学习的结合
  5. 在线学习中,模型经过训练并投入生产环境,然后随着新数据的进入而不断学习

典型机器学习项目

  • 研究数据
  • 选择模型
  • 使用训练数据进行训练(即前面学习算法搜索模型参数值,从而使成本函数最小化的过程)
  • 应用模型对新示例进行预测(称为推断)

机器学习的主要挑战

  • 训练数据的数量不足
    • 大部分机器学习算法需要大量的数据才能正常工作。
  • 训练数据不具有代表性
    • 对于将要泛化的新示例来说,训练数据一定要非诚具有代表性,不论基于实例还是基于模型。
  • 低质量数据
    • 训练集满是错误、异常、噪声,系统将很难检测底层模式、更不会有良好表现;
    • 某些实例明显是异常情况,直接丢弃或手动修改错误,会有很大帮助
    • 某些实例缺少部分特征,
  • 无关特征
    • 只有训练数据里包含足够多的相关特征以及较少的无关特征,系统才能够完成学习。
    • 特征工程:
      1. 特征选择(从现有特征中选择最有用的特征进行训练)
      2. 特征提取(将现有特征进行整合,产生更有用的特征)
      3. 通过收集新数据创建新特征
  • 过拟合训练数据
    • 过拟合:模型在训练数据上表现良好,但在泛化时却不尽人意。
    • 当模型相对于训练数据的数量和噪声都过于复杂,会产生过拟合,可能用到的解决方案
      1. 简化模型:可以选择较少的参数的模(例如:选择线性模型而不是高阶多项式模型),也可减少驯良数据中的属性数量,或者约束模型。
      2. 收集更多的训练数据
      3. 减少训练数据中的噪声(修复数据中的错误和清除异常值)
      • 正则化过程:通过约束模型使其更简单,并降低过拟合的防线。
      • 超参数:是学习算法(不是模型)的参数,不受算法本身的影响。
  • 欠拟合训练数据
    • 欠拟合的产生通常是因为对于底层的数据结构而言,模型过于简单。
    • 解决方法:
      1. 选择一个带有更多参数、更强大的模型
      2. 给学习算法提供更改好的特征集(特征工程)
      3. 减少模型中的约束(例如:减少正则化超参数)

纵观全局

  • 机器学习是关于如果让机器更好的处理某些特定任务的理论,它从数据中学习,而无需清晰的编码规则
  • 机器学习系统有很多分类
  • 在一个机器学习项目中,你从训练集中采集数据,然后将数据交给学习算法来计算。

测试和验证

一旦训练了一个模型,还需要评估它,必要时做出一些调整。
通常将一个数据集中80%的数据用于训练,20%的用于测试。但具体情况取决于数据集中的数量大小。

超参数调整和模型选择

评估一个模型很简单:用测试集就行了
对测试集的泛化误差进行多次度量,并调整模型和超参数来的到拟合测试集的最佳模型,该模型对于新的数据不太可能有良好表现。

  • 保持验证:保持训练集中的一部分呢,以评估几种候选模型并选择最佳模型。新的保留集称为验证集(开发集)。
    1. 在简化的训练集(减去验证集的训练集)上训练具有各中超参数的多个模型
    2. 选择在验证集上表现最优的模型
    3. 保持验证后,在完成的训练集(包含验证集的训练集)上训练模型,
    4. 在测试集上评估这个模型以获得泛化误差的估计值
数据不匹配

验证集和测试集必须与在生产环境中使用的数据具有相同的代表性

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值