你实践中学到的最重要的机器学习经验是什么？
如果是说工业界的实践的话，我觉得最重要的经验是： 永远重视造工具 Best Engineer Builds Tools 在机器学习领域，好的工具包括但不限于： 为什么这很重要？因为这决定了你是可以三天做一次迭代还是三周做一次，还是三个月。 机器学习有其玄学的一面。面对这种不确定性，一个粗暴却有效的手段就是多试，快速迭代。但很多人根本快不起来。他们把大量时间浪费在了setup和等待上。setup数据，setup模型的训练，等待模型的训练，setup实验，等待实验的结果。 如果你迭代的周期是别人的五倍，那你需要比别人准五倍才能拉平。这还是假设大家都是单线程的情况下。如果别人的工具足够好，可以同时起五个实验，你要怎么办，比别人准二十五倍？ 实际工作中，我见过弱团队用好工具，却没见过强团队用差工具。 Best Engineer Builds Tools.
我这里先抛砖引玉，翻译下quora上的高票回答，同时加了点自己的理解，原文在这里：https://www.quora.com/What-are-the-most-important-practical-machine-learning-lessons-that-you-have-learned-in-your-career 1. 首先要多花时间定义好要解决的问题，至于解决问题的方法可以先放一放。 不要过早的给问题选择解决方案（例如看到一个问题，就说应该用多任务学习的方法解决）。用凑合的技术去解决一个正确的问题要好于用一个高大上的技术去解决一个错误的问题。不要只给你的客户展示机器学习的好处，而不告诉他们你的训练测试误差是多少。 2. 要做数据清洗，保证你的训练数据是干净和高质量的。否则不管你的技术多高大上，也只是在训练垃圾。 3. 不要只看训练和测试误差，要看一看模型的系数，做一些模型检查。 例如看一看模型在一些数据上的表现，要重点关注那些结果不好的。看待机器学习的问题，应该同时用统计和优化的视角。 4. 不要只关注训练结果，也要想想模型花费的代价。花巨大代价取得一点点提升可不划算。 5. 多了解一些领域知识有助于提高通用部分的理解。例如一个模型有很多评价指标，如果你能了解他们的不同，那么就能选择合适的指标，专注于正确的方面。 6. 做实验前，要做好规划。想清楚哪些适合在线跑，哪些适合离线跑。都在线跑太费时间，但是有些问题还是需要在线实验的，例如广告模型。