[关闭]
@hanxiaoyang 2017-12-14T12:51:09.000000Z 字数 3789 阅读 1736

机器学习系列(20)_机器学习性能改善备忘单

个人博客


原文地址:Machine Learning Performance Improvement Cheat Sheet
原文翻译与校对:@姜范波 && 寒小阳
时间:2016年12月。
出处:http://blog.csdn.net/han_xiaoyang/article/details/53453145
声明:版权所有,转载请联系作者并注明出

机器学习最有价值(实际应用最广)的部分是预测性建模。也就是在历史数据上进行训练,在新数据上做出预测。
而预测性建模的首要问题是:

如何才能得到更好的结果?

这个备忘单基于本人多年的实践,以及我对顶级机器学习专家和大赛优胜者的研究。

有了这份指南,你不但不会再掉进坑里,而且会提升性能,甚至在你自己的一些预测难题中取得世界领先水平的结果。

让我们一起来看看吧!

注意,本文的结构基于早些时候另一篇关于改善深度学习性能的指南:如何改善深度学习性能



概述

本备忘单的目的是为你提供一些提升机器学习性能的想法。要获得突破,你所需要的可能就是其中的一个。找到你要的那个,然后回来,再找下一个再提升。

我把这份清单分为4个子主题:

  1. 基于数据改善性能
  2. 借助算法改善性能
  3. 用算法调参改善性能
  4. 借助模型融合改善性能

清单越往下,你获得的增益可能越小。比如,对问题场景重新设立框架或者更多的数据通常比对最好的算法进行调参得到收益要多。
不总是这样,但通常如此。

1. 基于数据改善性能

改变你的训练集数据以及问题定义方式,你能够得到很大提升,也许是最大的提升。

策略:从新的、不同的角度透视你的数据,以便将潜藏的问题结构充分暴露给算法。

数据策略

上面这些工作的期待结果是:你应该得到数据集的一批新视角和新版本。

下一步:你可以用预测性模型算法评估它们每一个的价值。

2. 借助算法改善性能

机器学习无外乎算法
调整的策略:找出那些性能高于基线水平,比平均水平要好的算法和数据呈现方式。对结果保持怀疑态度,设计实验,使得它很难愚弄你。

算法策略

上面这些工作的期待结果是:你应该会得到性能良好的候选算法和数据呈现候选方法清单(不太长的有限个方法)。

下一步:通过算法调参改善性能

3. 用算法调参改善性能

算法调参可能是你花时间最多的地方。它可能非常耗时间,从算法抽检中很快能挖掘出一两个性能不错的算法,而把这一两个算法的潜力充分挖掘出来可能需要好几天,几周甚至几个月的时间。

调整的策略:充分挖掘性能良好的算法的潜力。

调参策略

上面这些工作的期待结果是:你应该可以得到一个很短的清单,上面是经过精调的算法。也许甚至只剩下一个。

下一步:到这一步,对剩下的一个或多个模型进行最后的收尾,做出预测或者投放到产品中。更进一步的性能提升可以通过多个模型的融合来达到。

4. 借助模型融合改善性能

你可以组合多个模型的预测。在算法调参之后,这是下一个大的改善空间。实际上,组合多个“够用”的模型,而不是多个精调(同时也非常脆弱,可能严重overfitting)的模型通常可以达到很好的性能提升。

策略:组合多个性能良好的模型预测结果。

组装策略

上面这些工作的期待结果是:你应该可以得到一个或多个性能良好的模型的组装结果,比任何单一模型的结果都好。

下一步:可以把一个或多个组装最后定下来,进行预测,投入产品中。

结语

本备忘单密集打包了各种改善性能的想法。如果你觉得这里提到的要点太多,你不必样样都做。提升性能,你只需要一个好的想法。你可以依照下序的建议试试:

  1. 选择一个组
    1. 数据
    2. 算法
    3. 调参
    4. 组装
  2. 从组中选择一个方法
  3. 从选择的方法中挑一个去试
  4. 比较结果,如果有改进则留下
  5. 重复上述过程
添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注