# 如何建立机器学习算法的直觉

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

机器学习算法很复杂。要善于应用给定的算法，您需要从多个角度进行研究：算法，数学和经验。

这是我想要强调的最后一点。您需要建立直觉或算法在实际数据上的行为方式。你需要解决很多问题。

在这篇文章中，我想鼓励你在开始和练习机器学习时使用小型内存数据集。

[![Wrapping your head around data](img/251b455fd5015ada16e3e2ae7b228ade.jpg)](https://3qeqpr26caki16dnhd19sv6by6v-wpengine.netdna-ssl.com/wp-content/uploads/2014/10/Wrapping-your-head-around-data.jpg)

围绕数据
照片由 [Nic McPhee](https://www.flickr.com/photos/nicmcphee/2217375343) 拍照，保留一些权利

## 研究算法或问题，而不是两者

您无法同时学习问题和算法。

如果你尝试，你将慢慢地和低效地进步。您的重点将被划分，并且理想地执行下面的任务。

当你进入这条赛道时，你会知道，因为你会在深入研究问题和深入到特定算法之间振荡。你会感到沮丧和不堪重负。你承担的太多了。

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

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

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

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

下载，打印并使用它。

### 分裂你的疑虑

最好的做法是分别研究算法和问题。

您可以通过使用算法来了解问题，并以模型的形式提出候选解决方案。这意味着您将尝试许多模型（点检查）和可能的许多算法配置（调整）。

您通过关注一个问题数据集并使用它来了解算法参数的相互作用及其对模型的影响（例如最终结果或一段时间内的行为）来研究算法。

这是第二类项目，您可以使用经验实验来建立机器学习算法如何工作的直觉。您可以将这种直觉与其工作原理的理论结合起来，并旨在围绕使用哪种算法以及何时针对特定问题做出明智的决策。

## 扮演科学家

您希望将算法的行为表征为受控问题的系统。

该研究的重点是一个问题，例如：

该算法的信息处理策略是什么？
当给定参数变化时，系统如何表现？

在开始之前，清楚地定义您打算在研究中回答的具体问题。明确答案将采取何种形式。

### 实际结果

学习算法具有一些特定的实际好处，可以提高您的机器学习技能，例如：

*   **算法调整**：您正在学习算法如何表现为复杂系统以及算法参数对这些行为的影响。这些是在特定问题实例上调优算法所需的宝贵见解和直觉。
*   **问题 - 算法拟合**：您正在学习在问题类和问题实例上表现良好的算法类和特定算法实例。这是一种只能通过经验建立起来的直觉。
*   **项目生命周期**：您正在练习应用机器学习的过程，包括数据准备，算法测试和调整以及结果的呈现。

他们的关键是拥有标准的易于理解的数据集，您可以使用它们来更好地理解所研究的算法。

## 使用标准数据集

您可以使用一个或少量模型数据集来研究机器学习算法。

有时它们被称为玩具数据集或玩具问题，因为它们的大小。然而，当您学习和实践机器学习算法时，它们发挥着重要作用。

不同的数据集具有不同的已知属性。通常希望选择一小组那些属性来暴露正在研究的算法的不同行为。

例如，某些属性可能包括

*   功能数量
*   类分布
*   数据类型
*   结构关系

### 模型数据集的5个好处

以下是使用标准机器学习数据集的5个好处。

*   **小**：数据集可以放入内存中。这意味着您可以快速运行大量实验，然后快速了解算法。
*   **理解**：通常理解数据集。它背后可能有重要的文献，或者是算法的常见测试和研究点。它具有用于测试算法能力的已知属性。
*   **受控**：模型数据集常量，为对照试验提供基础。可以改变算法的行为以查看对结果的影响与良好理解的问题。
*   **Free** ：可以下载模型数据集。您无需获得许可或支付许可费。您可以随时使用常用数据集。
*   **简单**：数据中的结构或关系并不复杂。可以很容易地理解它们，并使用摘要统计和图表进行描述。通常很少有变量。

## UCI机器学习库

有些工具附带了样本数据集，但您可以信赖的一个很好的来源是[加州大学欧文机器学习库](https://archive.ics.uci.edu/ml/index.html)。

它是一个网站，托管学术界使用的数百个标准机器学习数据集，用于测试，演示和实证表征机器学习算法的行为。

您可以浏览此站点上的数据集，查看数据，并查看已参考数据集的论文和文章。

这是一种宝贵的资源，您可以使用它来查找数据集以研究机器学习算法。

### 5个经典模型数据集

下面是我熟悉新算法或我忘记的旧算法时要使用的5类数据集的列表。

*   [鸢尾花](http://archive.ics.uci.edu/ml/datasets/Iris)：根据花的尺寸描述鸢尾花，分为三个种类。
*   [电离层](https://archive.ics.uci.edu/ml/datasets/Ionosphere)：描述了表征电离层能量状态的雷达返回数据。所有属性都是数字，类是二进制。
*   [皮马印第安人糖尿病](https://archive.ics.uci.edu/ml/datasets/Pima+Indians+Diabetes)：皮马印第安人的各种医疗记录数据，其二元类别是患者在收集医疗数据后5年内是否患有糖尿病。
*   [玻璃鉴定](https://archive.ics.uci.edu/ml/datasets/Glass+Identification)：根据样品的化学成分鉴定类，多个不平衡类别。
*   [威斯康星乳腺癌](https://archive.ics.uci.edu/ml/datasets/Breast+Cancer+Wisconsin+(Original))：乳腺癌患者的医疗活检信息和样本是否癌变的二元类变量。

您可能会发现这些数据集中的一个或多个在您自己的实验中很有用。

## 摘要

在这篇文章中，您发现了在尝试同时了解问题数据集和算法时遇到的困难。事实上，他们是相互竞争的担忧。

您发现答案是将这些问题分开，以了解您的问题并了解算法，并明确您的目标是什么。

您在了解算法时可以发现小型模型数据集的好处，在哪里可以获得标准的机器学习数据集以及一些您可以开始使用的流行示例。

如果您想了解更多有关如何学习机器学习算法的信息，请查看我的[算法描述模板](http://machinelearningmastery.com/algorithm-description-template/ "You Can Learn Machine Learning Algorithms")以学习任何算法，[小项目方法](http://machinelearningmastery.com/small-projects/ "Learn and Practice Applied Machine Learning")指导自学项目，包括学习算法。