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

机器学习算法很复杂。要擅长应用给定的算法,您需要从多个角度对其进行研究:算法、数学和经验。

我在这里想强调的是最后这一点。您需要建立对算法在真实数据上如何行为的直觉。您需要处理大量问题。

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

使用我的新书 《掌握机器学习算法》,其中包含分步教程和所有示例的Excel电子表格文件,来启动您的项目。

Wrapping your head around data

理解数据
照片由 Nic McPhee 拍摄,保留部分权利

研究算法或问题,而非两者兼顾

您不能同时学习一个问题和一种算法。

如果您尝试这样做,您将在两方面都进展缓慢且效率低下。您的注意力会分散,两项任务都无法理想地执行。

当您处于这种状态时,您会发现在深入研究问题和深入研究特定算法之间来回切换。您会感到沮丧和不知所措。您承担了太多。

获取您的免费算法思维导图

Machine Learning Algorithms Mind Map

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

我创建了一份方便的思维导图,其中包含60多种按类型组织的算法。

下载、打印并使用它。


还可以独家访问机器学习算法电子邮件迷你课程。

 

 

分离您的关注点

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

您通过使用算法来研究问题,以了解更多关于它的信息,并以模型的形式提出候选解决方案。这意味着您将需要试验许多模型(抽样检查)以及许多算法配置(调优)。

您通过专注于一个问题数据集来研究算法,并使用它来更多地了解算法参数的交互及其对模型的影响,例如最终结果或随时间的变化。

正是这种第二种类型的项目,您可以使用经验实验来建立对机器学习算法工作原理的直觉。您可以将这种直觉与它们为何工作的理论相结合,并旨在就未来为特定问题使用哪种算法以及何时使用做出明智的决定。

扮演科学家

您希望将算法的行为作为一个系统,在一个受控的问题上进行表征。

研究的重点是一个问题,例如

该算法的信息处理策略是什么?
当某个参数变化时,系统如何表现?

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

实际结果

研究算法有一些具体的、切实的益处,可以提高您的机器学习技能,例如:

  • 算法调优:您将了解算法作为一个复杂系统的行为以及算法参数对这些行为的影响。这些是调优算法以适应特定问题实例所必需的宝贵见解和直觉。
  • 问题-算法匹配:您将了解在问题类别和问题实例上表现良好的算法类别和特定算法实例。这种直觉只能通过经验来建立。
  • 项目生命周期:您将练习应用机器学习的过程,包括数据准备、算法测试和调优,以及结果的呈现。

关键在于拥有标准、易于理解的数据集,您可以使用这些数据集来更好地理解正在研究的算法。

使用标准数据集

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

由于它们的大小,有时也被称为玩具数据集或玩具问题。尽管如此,当您学习和练习机器学习算法时,它们仍然发挥着重要作用。

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

例如,某些属性可能包括:

  • 特征数量
  • 班级分布
  • 数据类型
  • 结构化关系

模型数据集的 5 个优势

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

  • 小巧:数据集可以放入内存。这意味着您可以快速运行大量实验,从而快速了解算法。
  • 易懂:数据集通常易于理解。它可能拥有大量的文献支持,或者是一个用于测试和研究算法的共同点。它具有已知的属性,用于测试算法的能力。
  • 可控:模型数据集是恒定的,为受控实验提供了基础。可以通过改变算法的行为来查看其对结果的影响,并与易于理解的问题进行对比。
  • 免费:模型数据集可供下载。您无需许可或支付许可费用。常用数据集可供您随时使用。
  • 简单:数据中的结构或关系不复杂。它们易于理解,可以用汇总统计数据和图表进行描述。通常变量很少。

UCI 机器学习存储库

一些工具附带了示例数据集,但一个您可以信赖的、一致的优秀来源是加州大学欧文分校机器学习存储库

这是一个托管了数百个标准机器学习数据集的网站,这些数据集在学术界用于测试、演示和经验性地表征机器学习算法的行为。

您可以在该网站上浏览数据集,查看数据,并查阅已引用该数据集的论文和文章。

这是一个宝贵的资源,可用于查找数据集来研究机器学习算法。

5 个经典的模型数据集

以下是我在熟悉新算法或遗忘的旧算法时喜欢使用的 5 个经典数据集列表:

  • 鸢尾花:根据花朵的尺寸描述鸢尾花,分为三个物种类别。
  • 电离层:描述了表征电离层能量状态的雷达回波数据。所有属性均为数字,类别为二元。
  • 皮马印第安人糖尿病:皮马印第安人的各种医疗记录数据,具有二元类别,表示患者在收集医疗数据后的 5 年内是否患有糖尿病。
  • 玻璃鉴定:基于样本化学成分的类别鉴定,多个不平衡类别。
  • 威斯康星州乳腺癌:来自乳腺癌患者的医学活检信息,以及一个二元类别变量,表示样本是否为癌性。

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

总结

在这篇文章中,您发现了同时学习问题数据集和算法时遇到的困难。实际上,它们是相互冲突的关注点。

您发现答案是分离这些关注点,分别学习您的项目和学习算法,并明确您的目标。

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

如果您想了解更多关于如何学习机器学习算法的信息,可以查看我的算法描述模板,用于学习任何算法,以及小型项目方法论指南,用于自学项目,包括学习算法。

了解机器学习算法的工作原理!

Mater Machine Learning Algorithms

几分钟内了解算法如何工作

...只需算术和简单示例

在我的新电子书中探索如何实现
精通机器学习算法

它涵盖了**10种顶级算法**的**解释**和**示例**,例如:
_线性回归_、_k-近邻_、_支持向量机_等等...

最后,揭开
机器学习算法的神秘面纱

跳过学术理论。只看结果。

查看内容

对“如何建立机器学习算法的直觉”的 2 条回复

  1. Mostafa 2015年12月1日晚上9:46 #

    嘿,
    你好吗?
    我正在做一个毕业项目,我们需要一个具体的数据集来设计建筑。
    你能帮我吗?
    先谢谢了

    • Jason Brownlee 2015年12月23日上午9:59 #

      抱歉,我没有想到具体的数据集。我的建议是搜索一些免费数据集的存储库。

发表回复

Machine Learning Mastery 是 Guiding Tech Media 的一部分,Guiding Tech Media 是一家领先的数字媒体出版商,专注于帮助人们了解技术。访问我们的公司网站以了解更多关于我们的使命和团队的信息。