机器学习工程的三十个最佳实践

译自Andy Seow

  1. 不要使用机器学习。
    尽你所能抓住每个唾手可得的机会;简单的启发式方法经常能解决你的问题;只有在用尽了简单的方法之后才可以使用机器学习。
  2. 不要使用深度学习。
    你可以用一个简单的模型和良好的数据走的更远,只有在你用尽了较为简单的方法之后才尝试更复杂的模型。
  3. 基础设备第一,模型第二。
    你的模型是怎样服务的?你使用了Flask或者Django吗?它满足AWS或者Heroku吗?
    明确指出你的模型如何集成到应用程序中。
  4. 测试一切。
    独立于你的模型测试你的基础设施。你在生产环境中得到的数据与在开发环境中得到的是一致的吗?你的模型表现是否相同。
  5. 不要有一个喜欢的算法,然后把它强加到任何地方。
  6. 在应用机器学习之前收集一些指标来跟踪任何事情。
    用一种非常客观的方式来观察你的机器学习模型是否有效。
  7. 注意优化的内容。
    如果你想要最大化浏览量,如果你经常推送,用户的满意度就会受到影响。创造性的结合浏览率与观看人数。
  8. 为你的目标选择简单具体的度量标准。
  9. 最初的时候,使用较少的训练数据尝试过拟合。
    如果你不能做到这点,你就不能做任何事。
  10. 从一个可解释的和/或概率模型开始。
    使调试更容易。
  11. 任何时候都可以使用预训练模型。
  12. 总是为你现有的问题(或类似的)寻找已有的解决方案,使用它。
  13. 提醒你自己你是解决问题的,不是在这里做机器学习的。
  14. 抛出你所有的特征,然后开始减少与使用学习到的特征,与规则9类似,总是尝试去过拟合。
  15. 用一些奇怪的方式去结合与修改特征。
    你可以对一种特征做任何事,之后正规化并移除不必要的一些。
  16. “如果你对第一个版本的模型不感到尴尬,那么你推出的太晚了”
    快速启动并进行迭代,你会总是以一种新的富有创造性的方式来设计特征。你的第一个模型不会是最新的与最好的。
  17. 注意数据中的细微错误。
    生产中的一个强大的特征可以从75%降到30%,如果你不积极寻找,它会溜走。
  18. 指定一个再训练的计划。
    你多久需要重新训练一次?一个小时?一天?一周?一个月?还是一年?
  19. 设计一个跟踪系统来跟踪部署期间模型跟硬件平台的性能。
  20. 为部署准备一个备用的模型。
    只是为了防止当前部署出现意外的错误。
  21. 在整个建模过程中尝试使用相同的语言,不是必须的。
  22. 记得保证测试集不可见。
    即便在你决定了一个模型或者部署之后,也不要在测试集上再次训练最终的模型。
  23. 未使用的特征会增加技术上的负债,移除它们。
  24. 妥善记录和维护任何事。
    所有的特征都应该有详细的描述,新人不应该有什么不理解的。
  25. 在训练和部署的时候密切监视其中的差别。
  26. 为了帮助规则25,在服务期间保存数据。现在在训练的时候使用它们。
  27. 如果你在3月1日之前在数据上进行了训练,在3月2日进行测试。
  28. 当性能达到峰值时,寻找新的特征,不是新的模型。
  29. 保持追踪SOA很有趣,当然你或许不需要它。
  30. 对整个系统进行周期性的宏观观察。
    客观的分析你可以改进的地方,寻求有建设性的(或者毁灭性)的批评。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值