中国特色。NET

机器学习项目检查清单

Aurélien Géron 所著《Scikit-Learn与TensorFlow机器学习实用指南》附录有份机器学习项目的检查清单,非常实用。
故翻译如下。

描述问题并观察大局(the big picture)

  1. 用商业术语描述目标。
  2. 你的解决方案要如何运用?
  3. 目前的解决方案或变通方法是什么?
  4. 你要如何表述这个问题(监督/非监督学习,在线/离线学习等)?
  5. 怎样衡量性能?
  6. 性能指标与商业目标一致吗?
  7. 达到商业目标的最低性能是什么?
  8. 有没有类似的问题?你有可重复使用的经验或工具吗?
  9. 是否有专业人士的支持?
  10. 你如何手工解决这个问题?
  11. 列出你(或其他人)到目前为止的假设。
  12. 尽量核实假设。

获取数据

备注:为了较容易的取得最新数据,尽可能多的使用自动化工具。

  1. 列出你需要的数据,以及你需要多少数量。
  2. 找寻并且记下你从哪儿获取数据。
  3. 检查这些数据需要多少储存空间。
  4. 检查法律责任,如有必要获得授权。
  5. 取得访问数据的授权。
  6. 创造一个工作空间(有足够的储存空间)。
  7. 获得数据。
  8. 将数据转换成你易于操作的格式(不改变数据本身)。
  9. 确保敏感信息已被删除或收到保护(例如匿名化)。
  10. 检查数据的尺寸和格式(时间序列,样例,地理信息等)。
  11. 取出测试集,将之放置一边,绝不偷看它(不窥探数据)。

考察数据

备注:通过这些步骤尝试从数据中获得洞见。

  1. 将数据复制一份以用于考察(如有必要,可取样以便处理)。
  2. 创建一个Jupyter Notebook用于保存你的数据考察。
  3. 研究各个属性和它的特征:
    • 名字
    • 类型(分类,整数/浮点,有限/无限,文本,结构化的等)
    • 缺失值的比例
    • 噪音和噪音的类型(随机,异常值,取整误差等)
    • 对任务有用的可能性?
    • 分布的类型(高斯,均一,对数等)
  4. 对于监督学习的任务,识别目标属性。
  5. 数据可视化。
  6. 研究属性之间的关联。
  7. 研究你如何手工解决问题。
  8. 识别你准备采取的有效的变换。
  9. 识别可能有用的额外数据。
  10. 记录下你的发现。

准备数据

备注:

初步选出可用的模型

备注:

优化系统

备注:

展示你的解决方案

  1. 记录下你做的工作。
  2. 做一个漂亮的展示。
    • 确保你在最开始就突出大局(the big picture)。
  3. 解释为什么你的解决方案达成了商业目标。
  4. 不要忘了展示你在过程中发现的有趣的点。
    • 描述什么有用什么没有用。
    • 列出你的假设和你系统的限制。
  5. 确保你的主要发现是通过漂亮的可视化或者容易记住的声明来呈现的(例如“收入的中位数是预测房价的最重要的指标”)。

上线!

  1. 将你的解决方案准备好以用于生产(导入生产数据,写单元测试等)
  2. 写检测代码以固定的间隙检查你系统的性能,并且在性能下降时发出警报。
    • 也要当心缓慢的退化:模型在数据演化后容易衰退。
    • 测试性能可能需要人工的参与(例如通过众包服务)。
    • 同时监测你输入的质量(例如,故障的探测器发送随机的数据,或者其他组的输出不更新了)。这对在线学习系统尤为重要。
  3. 经常用全新的数据重新训练你的模型(尽量自动化)。
Exit mobile version