机器学习算法如何工作(它们学习输入到输出的映射)

机器学习算法是如何工作的?

所有用于预测建模的监督机器学习算法都遵循一个共同的原则。

在这篇文章中,您将通过理解所有算法背后的共同原则来发现机器学习算法的实际工作方式。

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

我们开始吧。

How Machine Learning Algorithms Work

机器学习算法如何工作
图片由 GotCredit 提供,部分权利保留。

让我们开始吧。

学习函数

机器学习算法被描述为学习一个目标函数 (f),该函数能够最好地将输入变量 (X) 映射到输出变量 (Y)。

Y = f(X)

这是一个通用的学习任务,我们希望在未来(Y)给定新的输入变量(X)示例的情况下进行预测。

我们不知道函数 (f) 的样子或形式。如果我们知道,我们就会直接使用它,而不需要使用机器学习算法从数据中学习它。

这比您想象的要难。还存在一个与输入数据 (X) 无关的误差 (e)。

Y = f(X) + e

这种误差可能是由于没有足够的属性来充分表征从 X 到 Y 的最佳映射而导致的误差。这种误差被称为不可约误差,因为无论我们如何擅长估计目标函数 (f),我们都无法减少这种误差。

也就是说,从数据中学习函数是一个难题,这也是机器学习领域和机器学习算法存在的原因。

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

Machine Learning Algorithms Mind Map

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

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

下载、打印并使用它。


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

 

 

学习函数进行预测

最常见的机器学习类型是学习映射 Y=f(X) 以预测新 X 的 Y 值。

这被称为预测建模或预测分析,我们的目标是做出尽可能准确的预测。

因此,我们对所学习的函数 (f) 的形状和形式并不真正感兴趣,只关注它是否能做出准确的预测。

我们可以通过学习 Y=f(X) 的映射来更多地了解数据中的关系,这被称为统计推断。如果这是目标,我们将使用更简单的方法,并重视理解学习到的模型和 (f) 的形式,而不是做出准确的预测。

当我们学习一个函数 (f) 时,我们正在从我们可用的数据中估计它的形式。因此,这种估计会有误差。它不会是对给定 X 的 Y 的底层假设最佳映射的完美估计。

在应用机器学习中,大部分时间都花在尝试改进对底层函数的估计,从而提高模型所做预测的性能上。

学习函数的技术

机器学习算法是估计目标函数 (f) 以预测给定输入变量 (X) 的输出变量 (Y) 的技术。

不同的表示对所学习函数的具体形式做出不同的假设,例如它是线性的还是非线性的。

不同的机器学习算法对函数的形状和结构以及如何最好地优化表示以近似它做出不同的假设。

这就是为什么在机器学习问题上尝试一系列不同的算法如此重要,因为我们无法事先知道哪种方法最能估计我们试图近似的底层函数的结构。

总结

在这篇文章中,您发现了所有用于预测建模的机器学习算法的目标背后的基本原理。

您了解到机器学习算法通过估计输入变量 (X) 映射到输出变量 (Y) 的函数 (f) 来工作,即 Y=f(X)。

您还了解到,不同的机器学习算法对底层函数的形式有不同的假设。当我们对目标函数的具体形式不甚了解时,我们必须尝试一系列不同的算法,以找出哪种方法效果最好。

您对机器学习算法或这篇文章有任何疑问吗?请留言提问,我将尽力回答。

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

Mater Machine Learning Algorithms

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

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

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

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

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

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

查看内容

机器学习算法如何工作(它们学习输入到输出的映射)的 38 条回复

  1. Sreepal 2016 年 9 月 20 日 晚上 7:19 #

    是否可以在没有事先指导的情况下学习机器学习?我没有足够的物理资源,比如教授或机器学习专家。我只是对学习编程感兴趣,内容是关于预测和将数据输入计算机以预测情况并预测未来以做出正确决策。那么,作为资源有限的普通学生,真的有可能深入学习机器学习吗?机器学习的先决条件是什么?获得机器学习实时指导的最佳替代方法是什么?请帮忙!

  2. Adly Thebaud 2017 年 12 月 1 日 上午 7:24 #

    很棒的阅读!
    我刚刚开始学习机器学习。阅读完后的问题是,机器学习算法是否会尝试改变映射函数 f(X) 以减少误差,还是只尝试从给定的 (X,Y) 数据集中创建映射函数?或者是两者兼而有之?

    此外,映射函数是什么样的?对于一组标准的浮点数 X 和 Y 变量,它会是 (Y = mX + b) 的形式吗?更像是二次方程,甚至是逼近微分方程或线性代数?映射函数是否来自尝试在给定数据集的图形上绘制最佳拟合线?

    抱歉我的问题很多。我渴望学习!
    谢谢!

    • Jason Brownlee 2017 年 12 月 1 日 上午 7:47 #

      取决于算法,算法通常会寻找误差最小的映射。

      像 knn 这样的算法没有这种优化或函数形式。

  3. Fauzan Taufik 2017 年 12 月 18 日 晚上 11:21 #

    我们如何知道误差值,因为我们不知道 Y 的确切值?

    • Jason Brownlee 2017 年 12 月 19 日 上午 5:20 #

      我们不知道,并且总会存在一些错误。

  4. Gowtham 2018 年 1 月 24 日 上午 3:12 #

    我以前不懂机器学习,但我选择了与机器学习相关的大学项目,所以现在开始学习机器学习,它很有趣,而且我非常喜欢数学。我日夜学习 Python,观看教程并从网站上学习。

  5. sandhya 2018 年 2 月 20 日 晚上 9:04 #

    我很困惑…………哪个算法在不同数据集的隐私保护方面能给出最佳结果………

    • Jason Brownlee 2018 年 2 月 21 日 上午 6:39 #

      这取决于数据。我的建议是在你的数据上进行测试,找出效果最好的方法。

  6. Shubhanker 2018 年 3 月 20 日 上午 5:43 #

    先生,如文章中所述的统计推断,即输入数据和预测值之间的数学关系……或者说数学函数……它对机器学习工程师有多重要?感谢您的帮助!!!

    • Jason Brownlee 2018 年 3 月 20 日 上午 6:33 #

      对这种关系有一个概念性的理解,对于充分利用给定的预测问题至关重要。

      它提供了一个思考问题的框架。

  7. tayeb 2018 年 5 月 2 日 上午 3:27 #

    晚上好
    如果您能帮我提供算法“LSTM”的代码和图表,因为我需要它用于我的硕士研究
    谢谢你

  8. Prateek sharma 2018 年 5 月 17 日 上午 4:07 #

    晚上好,我是一名学习者,希望开始在人工智能领域工作。我在软计算方面做了一些工作。请指导我,以便我能作为初学者开始在人工智能领域工作。

  9. Abhijit Mishra 2018 年 7 月 24 日 上午 2:54 #

    先生,我需要一些基于 RBF 核的学习和使用 GRAM 矩阵的再生核希尔伯特空间 (RKHS) 的基本操作,以及它们在 MATLAB 中的实现,用于我的博士研究工作。请指导我上述主题。

  10. Ajay 2018 年 9 月 4 日 晚上 6:48 #

    你好,先生,

    在上述语境中,“表示”是什么意思?
    “函数的形状和形式”是什么意思?

    谢谢你

    • Jason Brownlee 2018 年 9 月 5 日 上午 6:32 #

      我们不知道函数的形状和形式,我们使用算法通过最小化损失来近似它。

      如果我们确实知道函数,我们就会直接使用它,根本不需要学习任何东西。

  11. Marcin 2019 年 1 月 25 日 上午 1:17 #

    你好 Jason,

    我正在尝试修改您的脚本以创建自适应随机森林算法,但我遇到了很多问题。
    我创建了将示例存储在窗口中并等待一部分示例存储起来的函数,然后我尝试使用已实现的方法。
    不幸的是,我无法做到这一点。

    您能给我一些建议吗?或者一些代码/伪代码片段?

  12. Satish Jaiswal 2019 年 6 月 17 日 下午 3:50 #

    嗨,Jason,

    您的帖子对于那些对机器学习一无所知的人来说简直太棒了。内容非常好,容易理解。这也表明您为了掌握它所付出的努力。我有一个问题

    在学习机器学习之前,是否需要了解 AWS、Azure 或 GCP 等云计算服务知识。

    • Jason Brownlee 2019 年 6 月 18 日 上午 6:33 #

      谢谢。

      不,您可以在自己的工作站上,在内存数据集中运行大多数模型。

  13. Nate 2019 年 6 月 19 日 晚上 7:25 #

    嗨,Jason,您在这些文章中展现的专业知识和学识令人印象深刻!感谢您抽出时间分享。

    我的问题是,使用机器学习——假设我们找到了一个好的 Y = f(x1, x2, x3)… 模型。一旦我们建立了这个模型,我们是否可以使用确定的关系来提供一个 Y 值,并让模型估计 x1, x2, x3?我想我们应该可以,因为这类方程通常是可逆的……对于这类问题,您会推荐哪种机器学习算法和方法?

    • Jason Brownlee 2019 年 6 月 20 日 上午 8:28 #

      谢谢你,内特。

      不,逆向建模问题要困难得多。粗略地说(可能不准确),这听起来像是一个优化问题——找到一组输入以实现所需的输出。

      至少对于非线性模型而言。

  14. Navneet 2019 年 12 月 8 日 晚上 8:28 #

    我对这些陈述有疑问,觉得很难区分两者。

    >> 最常见的机器学习类型是学习 Y=f(X) 的映射,以预测新 X 的 Y 值。
    这被称为预测建模或预测分析,我们的目标是做出尽可能准确的预测。

    >> 我们可以学习 Y=f(X) 的映射,以了解数据中的关系,这被称为统计推断。如果这是目标,我们将使用更简单的方法,并重视理解学习到的模型和 (f) 的形式,而不是做出准确的预测。

    第一条纯粹是说预测建模/预测分析并不真正关心函数 f 采取何种形式,而是更关注预测本身的准确性。例如,对于鸢尾花数据集,在训练之后,函数的输出与实际输出的准确性如何。这就是预测建模/分析所关心的。

    第二条说统计推断关注的是 X 和 Y 之间的关系,而不是函数本身的输出。例如,假设我有一个数据集,它将一个区域的人口与温度相关联,推断可能是随着人口的增加,一个区域的整体温度会升高。所以这两个参数是成正比的。这种推断是统计推断所关心的,而不是函数 f 预测数据的准确性。

    这种理解正确吗?请指导并给我一些例子。

    • Jason Brownlee 2019 年 12 月 9 日 上午 6:50 #

      是的,它们是相关的,并且一个可以用于另一个。

      有时理解关系可能会牺牲较低的预测准确性,例如,我们使用线性模型是因为我们可以解释它,而不是使用我们无法解释的复杂决策树集成。

  15. Mitia 2021 年 2 月 17 日 晚上 8:35 #

    你好。
    我们如何找到具有这些点的函数?

  16. Yekta 2021 年 4 月 11 日 下午 3:16 #

    在机器学习中,模型的表示能力反映了它能够表示哪些目标函数。那么,似乎模型的表示能力越强,模型就越好。您怎么看?

    • Jason Brownlee 2021 年 4 月 12 日 上午 5:05 #

      这确实取决于项目的目标。

      即使模型具有很强的能力,您可能更关心能够解释/理解模型,因此会选择性能较差但更简单的模型。

  17. Christy Ntambwe 2021 年 6 月 12 日 上午 7:36 #

    非常感谢您的教程

  18. Christy Ntambwe 2021 年 6 月 12 日 上午 7:40 #

    我真的需要学习在深度学习背景下计算误差函数时会发生什么

  19. Tara Prezioso 2021 年 10 月 16 日 上午 4:15 #

    您好,我正在尝试下载网页上的免费思维导图,但无法下载。您能将 PDF 格式的思维导图通过电子邮件发送给我吗?它会打开新的网页,但随后崩溃。我使用的是 Brave 浏览器,也许这与此有关。

    • Adrian Tam
      Adrian Tam 2021 年 10 月 20 日 上午 8:31 #

      它应该通过电子邮件发送。是不是去了你的垃圾邮件文件夹?

发表评论

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