# 通往最佳机器学习算法的简单三步法

> 原文： [https://machinelearningmastery.com/steps-to-the-best-machine-learning-algorithm/](https://machinelearningmastery.com/steps-to-the-best-machine-learning-algorithm/)

您如何为数据集选择最佳算法？

机器学习是一种归纳问题，其中一般规则是从域中的特定观察数据中学习的。

不可能（不可能？）知道使用什么表示或什么算法来最好地从特定问题的数据中学习，而不必知道问题，以至于您可能不需要机器学习开始。

那么你应该在给定的问题上使用什么算法呢？这是一个试错的问题，或搜索最佳表示，学习算法和算法参数。

在这篇文章中，您将发现简单的3步方法，用于为业务中的一些最佳预测性建模者提出的问题找到最佳算法。

![Steps To The Best Machine Learning Algorithm](img/48d69233780def15cad25719b5bb65bd.jpg)

步骤到最好的机器学习算法
照片由 [David Goehring](https://www.flickr.com/photos/carbonnyc/5186228351/) ，保留一些权利。

## 三步骤方法

Max Kuhn是[插入符号包](http://topepo.github.io/caret/index.html)的创建者和拥有者，它为R中的预测性建模提供了一套工具。它可能是最好的R包，也是R是严重竞争的首选的原因之一和应用机器学习。

在他们出色的书“ [Applied Predictive Modeling](http://www.amazon.com/dp/1461468485?tag=inspiredalgor-20) ”中，Kuhn和Johnson概述了为特定问题选择最佳模型的过程。

我将他们建议的方法解释为：

1.  从最不易解释且最灵活的模型开始。
2.  研究不太透明的简单模型。
3.  考虑使用最简单的模型，该模型可以合理地逼近更复杂模型的表现。

他们评论说：

> 使用此方法，建模者可以在确定模型之前发现数据集的“表现上限”。在许多情况下，一系列模型在表现方面是等效的，因此从业者可以权衡不同方法的好处......

例如，以下是您可以在下一次一次性建模项目中使用的此方法的一般解释：

1.  调查一系列复杂模型并建立表现上限，例如：
    1.  支持向量机
    2.  梯度增压机
    3.  随机森林
    4.  袋装决策树
    5.  神经网络
2.  研究一套更简单，更易解释的模型，例如：
    1.  广义线性模型
    2.  LASSO和弹性网正则化广义线性模型
    3.  多元自适应回归样条
    4.  k-最近邻居
    5.  朴素贝叶斯
3.  从（2）中选择最接近（1）精度的模型。

## 快速一次性模型

我认为这是一个很好的方法，可用于一次性项目，您需要快速获得良好的结果，例如在几分钟或几小时内。

*   您可以很好地了解模型中问题的准确率
*   您有一个更容易理解并向他人解释的模型。
*   你有一个相当高质量的模型非常快（如果你花了几天或几周，可能是问题可达到的前10到25％）

我不认为这是解决所有问题的最佳方法。也许方法的一些缺点是：

*   更复杂的方法运行速度较慢并返回结果。
*   有时您希望复杂模式优于较简单的模型（例如，精度胜过可解释性的域）。
*   表现上限是首先进行的，而不是最后一次，因为可能有时间，压力和动力从最好的方法中提取最多。

有关此策略的更多信息，请参阅[应用预测性建模](http://www.amazon.com/dp/1461468485?tag=inspiredalgor-20)的第4.8节“在模型之间选择”，第78页。对于使用R的任何严肃的机器学习从业者来说，必须有书。

您是否有找到问题的最佳机器学习算法的方法？发表评论并分享更广泛的笔画。

你用过这种方法吗？它对你有用吗？

任何问题？发表评论。