机器学习算法速查表可帮助你从大量算法之中筛选出解决你的特定问题的算法,同时本文也将介绍如何使用该速查表。
由于该速查表专门针对数据科学和机器学习的初学者,所以在探讨这些算法之时,我们做了一些简化的假设。本文中所有推荐的算法均来自于程序编译反馈以及若干个数据科学家、机器学习专家和开发者的建议。对于没有达成一致意见的几个问题,我们会着重求同存异。
速查表的使用方法
将阅读速查表上的路径和算法标签读为「如果符合,那么使用。」例如:
有时会应用不止一个分支,而有时又找不到一个完美的匹配。重要的是这些路径是基于经验法则的推荐,因此其中一些并不精确。很多数据科学家说找到最佳算法的唯一确定方法就是尝试所有算法。
机器学习算法的分类
这一章节将对最流行的机器学习分类做一个概览,如果你对这些分类很熟悉,可直接跳至下文「什么时候使用具体算法」这一节。
监督学习
监督学习算法基于一组样本对作出预测。例如,以往销售业绩可以用来预测未来的价格走势。借助监督学习,我们会有一组由标注训练数据组成的输入变量和一组希望预测的输出变量。我们可以使用算法分析训练数据来学习一个将输入映射到输出的函数。算法推断的函数可通过概括训练数据预测未知情景中的结果进而预测未知的新实例。
半监督学习
监督学习的主要挑战是标注数据价格昂贵且非常耗时。如果标签有限,你可以使用非标注数据来提高监督学习。由于在这一情况中机器并非完全有监督,所以称之为半监督。通过半监督学习,你可以使用只包含少量标注数据的非标注实例提升学习精确度。
无监督学习
在无监督学习之中,机器完全采用非标注数据,其被要求发现隐藏在数据之下的内在模式,比如聚类结构、低维流形或者稀疏树和图。
强化学习
强化学习是通过环境的反馈信息来分析和优化智能体的行为。在强化学习中,智能体不会被告知应该采取哪种行为,而是通过不断尝试不同的策略,从而发现哪种行为能够产生最大的回报。试错学习和延迟奖赏是将强化学习与其他技术区分的重要特点。
选择算法的注意事项
当选择一个算法的时候,你要时刻牢记如下方面:精确性、训练时间和易用性。很多用户将精确性置于首位,然而新手则倾向于选择他们最了解的算法。
当你有一个数据集后,第一件需要考虑的事情就是如何获得结果,无论这些结果可能会多么奇怪。新手倾向于选择易于实现且能快速获得结果的算法。这种思路仅在整个训练的第一步过程中适用。一旦你获得了一些结果并且开始逐渐熟悉数据,你或许应该花更多时间,使用更加复杂的算法来强化你对数据的理解,这样方可改进结果。
不过,即便到了这一步,达到最高精度的标准算法也可能不是最合适的算法,这是因为一个算法通常需要用户细致的调参以及大范围的训练才能获得其最佳性能。
选择具体算法的场景
对具体算法的深入研究可以帮助你理解它们的性能以及使用的方式。下面更多细节可为你选择具体算法提供进一步帮助,你可以配合前面速查表一起阅读。
线性回归和 Logistic 回归