# 如何研究机器学习算法

> 原文： [https://machinelearningmastery.com/how-to-study-machine-learning-algorithms/](https://machinelearningmastery.com/how-to-study-machine-learning-algorithms/)

算法构成了机器学习的重要组成部分。

您可以选择并应用机器学习算法，根据数据构建模型，选择要素，组合多个模型的预测，甚至评估给定模型的功能。

在这篇文章中，您将回顾5种不同的方法，您可以使用它们来研究机器学习算法。

[![study machine learning algorithms](img/9cc23a6914f0da856fc09d1b25a9d5d9.jpg)](https://3qeqpr26caki16dnhd19sv6by6v-wpengine.netdna-ssl.com/wp-content/uploads/2014/10/study-machine-learning-algorithms.jpg)

如何学习机器学习算法
图片来自 [mer chau](http://www.flickr.com/photos/merchau/8548057127) ，保留一些权利

## 1.列出机器学习算法

有很多机器学习算法，它可以感觉压倒一切。

即使定义机器学习算法是什么，也可能很棘手。

一个很好的起点是制作自己的算法列表。启动文本文件，word文档或电子表格并列出算法名称。还列出每种算法所属的一般类别。

这个简单的策略可以帮助您熟悉不同类型和类别的算法。之后，随着您的经验越来越丰富，这样的列表可以提示您并提供不同方法的想法，以便对您的问题进行检查。

一些算法列表的示例包括：

*   [通过创建机器学习算法的目标列表来控制](http://machinelearningmastery.com/create-lists-of-machine-learning-algorithms/ "Take Control By Creating Targeted Lists of Machine Learning Algorithms")
*   [机器学习算法之旅](http://machinelearningmastery.com/a-tour-of-machine-learning-algorithms/ "A Tour of Machine Learning Algorithms")
*   [维基百科上的机器学习算法列表](http://en.wikipedia.org/wiki/List_of_machine_learning_algorithms)

## 获取免费算法思维导图

![Machine Learning Algorithms Mind Map](img/2ce1275c2a1cac30a9f4eea6edd42d61.jpg)

方便的机器学习算法思维导图的样本。

我已经创建了一个由类型组织的60多种算法的方便思维导图。

下载，打印并使用它。

## 2.应用机器学习算法

机器学习算法不是孤立存在的，应用于数据集时最好理解它们。

将算法应用于问题以理解它们。 [练习应用机器学习](http://machinelearningmastery.com/process-for-working-through-machine-learning-problems/ "Process for working through Machine Learning Problems")。这听起来很简单，但你会惊讶于瘫痪的人数从理论到行动迈出这一小步。

这可能意味着处理对您来说很重要的[问题](http://machinelearningmastery.com/work-on-machine-learning-problems-that-matter-to-you/ "Work on Machine Learning Problems That Matter To You")，竞争数据集或[经典机器学习数据集](http://machinelearningmastery.com/how-to-build-an-intuition-for-machine-learning-algorithms/ "How to Build an Intuition for Machine Learning Algorithms")。

使用机器学习平台，如 [Weka](http://machinelearningmastery.com/what-is-the-weka-machine-learning-workbench/ "What is the Weka Machine Learning Workbench") ， [R](http://machinelearningmastery.com/what-is-r/ "What is R") 或 [scikit-learn](http://machinelearningmastery.com/a-gentle-introduction-to-scikit-learn-a-python-machine-learning-library/ "A Gentle Introduction to Scikit-Learn: A Python Machine Learning Library") ，可以访问许多机器学习算法。

开始为不同类型的算法建立直觉，例如决策树和支持向量机。想想他们所需的前提条件以及参数对结果的影响。

建立应用不同算法的信心。 [您应该对您的问题](http://machinelearningmastery.com/why-you-should-be-spot-checking-algorithms-on-your-machine-learning-problems/ "Why you should be Spot-Checking Algorithms on your Machine Learning Problems")进行抽查算法。

## 3.描述机器学习算法

理解机器学习算法的下一步是探索已经理解的算法。

这可以在应用算法之前完成，但我认为在深入算法描述之前，将算法的工作直觉作为上下文是有价值的。

你可以研究一种算法。这包括定位和读取首次描述算法的主要来源以及教科书和评论文章中对算法的权威解释。

会议论文，竞赛结果甚至表格以及 [Q＆amp; A网站](http://machinelearningmastery.com/machine-learning-communities/ "Machine Learning Communities")可以帮助您更好地理解算法的最佳实践和使用启发式方法。

在研究算法时，请构建描述。我喜欢使用定义明确的[算法描述模板](http://machinelearningmastery.com/algorithm-description-template/ "You Can Learn Machine Learning Algorithms")。

您可以继续添加到此模板，以发现有关算法的更多信息。您可以添加引用，列出算法的伪代码并列出最佳实践和使用启发式。

这是一种有价值的技术，您可以构建自己的算法描述迷你百科全书供您自己参考（例如，参见 [Clever Algorithms](http://CleverAlgorithms.com) 获取45种算法秘籍）。

有关我使用的模板的更多信息，请查看帖子“[如何学习机器学习算法](http://machinelearningmastery.com/how-to-learn-a-machine-learning-algorithm/ "How to Learn a Machine Learning Algorithm")”。

## 4.实现机器学习算法

实现机器学习算法是了解算法如何工作的一种很好的方法。

在实现算法时必须做出许多微决策。其中一些决策点暴露在算法配置参数中，但很多都没有。

通过自己实现算法，您将感受到如何自定义算法并选择要公开的内容以及要修复的决策点。

从零开始实现算法将帮助您理解算法的数学描述和扩展。这听起来可能违反直觉。数学描述是理想化的，并且通常提供算法内给定过程的快照描述。一旦将它们转换为代码，这些描述的含义可能会更加明显。

您可以利用算法的教程和开源实现来帮助您完成这些困难的部分。

请注意，算法的“_我的第一个实现_”将比您在机器学习工具或库中找到的生产级实现更不可扩展且更脆弱。

看看我的[教程，在Python](http://machinelearningmastery.com/tutorial-to-implement-k-nearest-neighbors-in-python-from-scratch/ "Tutorial To Implement K 最近邻 in Python From Scratch") 中从零开始实现k-最近邻居。

您可能也对我的帖子“[如何实现机器学习算法](http://machinelearningmastery.com/how-to-implement-a-machine-learning-algorithm/ "How to Implement a Machine Learning Algorithm")”感兴趣。

## 5.机器学习算法实验

试验机器学习算法是理解它们的最佳方式。

你需要像科学家一样行事，研究像复杂系统一样运行的机器学习算法。

您需要控制变量，使用易于理解的标准化数据集，并探索结果上参数的因果关系。

了解参数的影响将有助于您在将来更好地配置算法。了解算法在不同情况下的行为将有助于您在将来更好地扩展和调整方法到新的和不同的问题域。

许多机器学习算法本质上是随机的，并且抵抗更经典的算法分析方法。它们通常需要理解经验调查和概率描述。

## 摘要

在这篇文章中，您发现了五种学习和学习机器学习算法的方法。

他们在哪里：

1.  列出机器学习算法
2.  应用机器学习算法
3.  描述机器学习算法
4.  实现机器学习算法
5.  机器学习算法实验

您是否使用过这些方法来学习机器学习算法？

也许您有自己的方法来研究机器学习算法？在下面的评论中分享。