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