谷歌机器学习应用的四十三条经验法则

预备

  1. 不要害怕发布一款没有用到机器学习的产品。
  2. 评估指标设计并落实优先处理的事情。
  3. 在复杂的启发式问题上使用机器学习。

机器学习第一阶段:你的第一个工作流

  1. 第一个模型要保持简单,设计好基础架构。
  2. 确保基础结构的可测试性。
  3. 复制操作时,小心删除数据。
  4. 利用启发式问题设计特征或从外部处理它们。

监控

  1. 知道要进行系统刷新。
  2. 输出模型前发现问题。
  3. 当心未被报告的失败。
  4. 特征栏包干到户,位置建立详细的文档。

你的第一个目标

  1. 不要过度考虑选择那个目标直接给予优化。
  2. 为你的第一个目标,选择一个简单的、可观察、可归属的评估指标。
  3. 从一个可诠释的模型开始能让调试工作变得简单些。
  4. 在一个策略层中分开垃圾过滤和质量排名。

机器学习第二阶段:特征工程

  1. 计划发布和迭代。
  2. 从直接可以观察、被报告的特征开始。
  3. 能用跨语境泛化的内容特征进行搜索。
  4. 可以的话,请使用具体的特征。
  5. 结合并修改现有特征,伊人泪可以理解的方式创造新的特征。
  6. 在一个线性模型中可以学到特征权重数量与你的数据量大致成正比。
  7. 清除你不在使用的特征。

系统的人类分析

  1. 你并不是典型的端用户。
  2. 测量模型之间的差量。-delta参数
  3. 选择模型时,使用性能(utilitarian performance) 比预测能力更重要。
  4. 在测量到的误差中寻找模式,并创造新特征。
  5. 尝试量化观测到的不可欲的行为(undersirable behavior)。
  6. 意识到相同的短期行为(shortterm behavior) 并不意味着长期行为相同。

训练表现与实际产品之间的偏差

  1. 要让你的实际产品表现得和训练时一样好,最好的方法时再你的产品中保留训练的特征集,并将这些特征放到日志中,并在训练时使用它们。
  2. 重要性加权的样本数据,不要武断放弃。
  3. 注意,如果在训练和服务时点将表格中的数据加起来,表格数据会发生变化。
  4. 在训练的流程和实际产品流程之间,尽可能地重复使用统一代码。
  5. 如果你用5号之间的数据生成了一个模型,那么用6号之后的数据来测试模型。
  6. 在使用二元分类器进行过滤时(例如垃圾邮件检测),用短期的牺牲获得清洁数据的优良性能。
  7. 注意在排序 问题中的固有偏差(inherent skew)。
  8. 用位置特征避免反馈循环(feedback loops)。
  9. 测量训练/实际产品表现之间的偏差(Measure Training/Serving Skew)

机器学习第三阶段:放慢速度、优化细化和复杂的模型

  1. 如果出现目标不对齐的问题就不要在新的特征上浪费时间。
  2. 决定不知是基于一个标准做出。
  3. 保证组件简单。
  4. 性能达到高峰时,要寻找寻的信息源加以补充,而不是精化现有的信号。
  5. 不要期望多样化、个性化或者与你多认为的流行性关联。
  6. 在不同的产品中你的伙伴可能倾向于同一个产品。而你的兴趣不是。

推荐阅读更多精彩内容