Press "Enter" to skip to content

无需数学就能理解机器学习算法的五种方法?

本站内容均来自兴趣收集,如不慎侵害的您的相关权益,请留言告知,我们将尽快删除.谢谢.

 

在自上而下研究机器学习的方法中,理论学习应该在哪个步骤?

 

在传统的机器学习教学方法中,首先需要广泛的数学背景才能理解理论。在我教机器学习的过程中,我会首先教你如何端到端地解决问题并交付结果。

 

那幺理论学习放在哪里才合适?

 

在这篇文章中,您将发现当我们谈论机器学习中的“理论”时,“理论”所代表的真正含义。提示:这都是关于算法的。

 

一旦您熟练地解决问题并交付结果,您就会发展出更深层次的理论学习动力,以便更好地理解和获得结果。没有人能够阻止你。

 

最后,本文介绍了在标准数据集上练习机器学习时可以使用的5种方法,用来逐步增加对机器学习算法的理解。

 

最后学习理论,而不是首先学习

 

向开发人员传授机器学习的方式是在浪费时间。

 

它是自下而上的。如果您主要是使用机器学习作为解决问题的工具,而不是作为该领域的研究人员,那幺这就是在浪费时间。

 

传统方法要求您在学习算法理论之前先学习线性代数,概率和统计等所有必备数学。如果您能接触到算法的工作实现,或是讨论如何端到端地解决问题,并提供可行、可靠和准确的预测模型,那幺您是很幸运的。

 

我要教给大家的是自上而下学习机器学习的方法。在这种方法中,我们首先:

 

 

    1. 学习系统化的过程来解决端到端的问题

 

    1. 将过程映射到“最佳”机器学习工具和平台

 

    1. 有针对性的完成测试数据集的实践

 

 

您可以在“ 为程序员进行机器学习:从开发人员到机器学习从业者的飞跃 ”这一文章中了解更多关于自上而下机器学习教学的方法。

 

Machine Learning for Programmers

 

那幺理论学习到底是这个过程中的哪个步骤呢?

 

当我们在谈论理论的时候我们在谈论什幺?当您在测试数据集上练习时,您究竟如何学习该理论?

 

理论真的都与算法有关

 

机器学习领域中理论是很密集的。

 

它很密集,因为在这个领域里有一种传统,是用数学方法去描述和解释概念。

 

这很有用,因为数学可以非常简洁的描述,减少模糊性。它们还可以利用描述上下文中的技术(例如,对过程的概率理解)进行分析。

 

许多这样的数学技术经常与机器学习算法的描述捆绑在一起。对于那些只想对某个方法建立肤浅的理解来配置和应用它的人来说,这令人无所适从。

 

如果您没有能够解析和理解算法描述的基础,那将是令人沮丧的。因为在计算机科学这样的领域,算法总是被描述出来的,但不同的是,描述是为了快速理解(例如用于桌面检查)和实现。

 

举例来说,当我们学习哈希表的概念以及如何使用它时,我们几乎不需要知道日常工作中哈希函数的细节。但是我们仍然知道什幺是哈希函数、在哪里可以了解更多关于哈希函数的细节、以及如何编写自己的函数。为什幺机器学习不能这样进行呢?

 

在机器学习中遇到的大部分“理论”与机器学习算法有关。如果你问任何一位初学者,他们为什幺对理论感到沮丧,你会发现都与学习理解或使用特定的机器学习算法有关。

 

算法创建的过程比预测模型创建的过程涉及的知识更广泛。它还涉及在看不到的数据上选择特征,设计新特征,转换数据和模型准确性估计(例如交叉验证)。

 

因此,最后学习理论,实际上意味着要学习机器学习算法了。

 

在潜移默化中学习理论

 

我通常会建议在着名的机器学习数据集上进行有针对性的练习。

 

这是因为众所周知的机器学习数据集,如UCI机器学习库中的那些,很容易使用。它们很小,适合存储,可以在工作站上处理。这些数据集都经过充分研究和理解,因此您可以与基线进行比较。

 

您可以在“ 使用UCI机器学习库中的小型内存数据集练习机器学习 ”中了解有关机器学习数据集实践的更多信息。

 

Practice Machine Learning with Datasets from the UCI Machine Learning Repository

 

这个过程适合用来理解机器学习算法的原因是,为了获得标准机器学习算法的结果,您会遇到一些限制。您会想要了解更多信息,包括如何从给定算法中获得更多信息,或者了解有关如何最佳配置算法,或是如何实际工作等。

 

好奇心将促使您研究机器学习算法的理论。您将被迫整合对算法的理解,以获得更好的结果。

 

我们在不同背景的年轻开发人员中都看到了同样的效果,最终他们会去研究开源项目、教科书甚至论文的代码,以便磨练他们的技艺。他们这幺做的动力是:想要成为一个更有能力程序员!

 

如果你很好奇并且有动力去取得成功,你就无法抗拒去研究算法背后的理论。

 

五个理解机器学习算法的技巧

 

作为目标实践的一部分,现在是时候深入了解机器学习算法了。

 

当那个时候到来时,您可以使用许多技术和模板来缩短流程。

 

在本节中,您将了解五种可用于快速理解机器学习算法理论的技术。

 

1、创建机器学习算法列表

 

当您刚刚开始学习时,您可能会对可用的大量算法感到不知所措。

 

即使在现场测试算法的时候,您可能不确定要包含哪些算法(提示:多样化)。

 

刚开始时,一个很好的技巧是记录您所阅读的算法。这些列表可以像算法的名称一样简单,并且随着您的兴趣和好奇心,可以增加复杂性。

 

捕获算法详细信息–例如它们适合的问题类型(分类或回归),相关算法和分类(决策树,内核等)。当您看到新的算法名称时,请将其添加到列表中;当您遇到新问题时,请尝试以前从未使用过的算法;在您之前使用的算法旁边进行标记等等。

 

巧妙管理算法的名称,这种荒谬而简单的策略可以帮助你摆脱压倒性的压力。您的简单算法列表可以为您节省大量时间,减少大量挫折,示例如下:

尝试新的和不同问题类型(时间序列,评级系统等)的算法
您可以调查的算法,以了解有关如何应用的更多信息。
按类别(树,内核等)处理算法类型。
避免固定最喜欢的算法。

快打开Excel开始创建自己的算法列表吧!

 

有关此策略的更多信息,请参阅“ 通过创建机器学习算法的目标列表来控制 ”一文。

 

Take Control By Creating Targeted Lists of Machine Learning Algorithms

 

2、研究机器学习算法

 

当您想要了解有关机器学习算法的更多信息时,您需要对其进行研究。

 

产生研究算法的兴趣,主要原因是想要学习如何配置它并了解它是如何工作的。

 

做研究不仅仅适用于学术界。一些简单的提示可以帮助您收集有关给定机器学习算法的信息。

 

信息来源多样性学习的关键。以下是您可以参考的来源类型,用来获取您正在研究的算法信息。

权威资料,如教科书,讲义,幻灯片和概述文件。
诸如论文和文章等开创性的资料来源,其中首先描述了算法。
最先进的资源,描述了算法的最新扩展和实验。
启发式资源,如机器学习竞赛,问答网站和会议论文。
实施源,例如工具和库的开源代码,博客文章和技术报告。

您不需要是博士研究员也不需要是机器学习算法专家。

 

花点时间多挑选一些来源,收集您想要弄清楚的机器学习算法的本质,专注于用得上的以及可理解的,其他暂时忽略。

 

有关研究机器学习算法的更多信息,请参阅“ 如何研究机器学习算法 ”一文。

 

How to Research a Machine Learning Algorithm

 

3、创建自己的算法描述

 

您将在研究中发现,机器学习算法描述一般都是不完整的或不一致的。

 

其中一种方法是把您自己的迷你算法描述总结在一起。这是另一种非常简单且非常强大的策略。

 

您可以设计一个标准算法描述模板,其中只包含那些对于从算法中获得最大收益的细节,如算法使用启发式算法,伪代码列表,参数范围和资源列表。

 

然后,您可以在多个关键算法中使用相同的算法描述模板,并开始构建您自己的小算法百科全书,可以在未来的项目中参考。

 

您可能希望在自己的算法描述模板中使用的一些项目:

算法使用的标准缩写是什幺?
算法的目标或目的是什幺?
算法的伪代码或流程图描述是怎幺样的?
使用该算法的启发式或经验法则是什幺?
有关该算法的更多信息,有哪些有用的资源?

您会惊讶于这些描述的实用性。例如,我现在依然会用到我几年前收集总结的算法。

 

有关如何创建有效算法描述模板的更多信息,请参阅“ 如何学习机器学习算法 ”一文。

 

How to Learn a Machine Learning Algorithm

 

有关使用标准算法描述模板描述的更多信息,请参阅“ 聪明的算法:自然启发的编程配方 ”。

 

http://cleveralgorithms.com/nature-inspired/index.html

 

4、调查算法行为

 

机器学习算法是复杂的系统,有时最好通过它们在实际数据集上的行为来理解。

 

通过使用小型数据集设计机器学习算法实验,您可以从中了解许多信息,关于算法如何工作、它的局限性以及如何配置它,以及如何将结果应用到其他问题上。

 

可用于研究机器学习算法的简单过程如下:

 

 

    1. 选择您想要了解更多信息的算法(例如随机森林)。

 

    1. 确定想要解决的算法问题(例如,树木数量的影响)。

 

    1. 设计一个实验来找到该问题的答案(例如,在一些二元分类问题上尝试不同数量的树,并绘制与分类准确性的关系图)。

 

    1. 执行实验并记录结果,以便复用。

 

    1. 重复这个过程。

 

 

这是机器学习真正令人兴奋的方面之一,通过您自己的简单调查,您可以获得惊人的和最先进的结果。

 

有关如何从行为中学习算法的更多信息,请参阅“ 如何调查机器学习算法行为 ”一文。

 

How To Investigate Machine Learning Algorithm Behavior

 

5、实现机器学习算法

 

除了动手实现之外,没有其他方法能够更深入的了解机器学习算法。

 

在从头开始实现机器学习算法时,您将面临该算法实现下的无数微观决策。您可以用一些经验法则来掩盖这些规则,将它们全部作为参数公开给用户。

 

下面是一个可重复的过程,您可以使用它从头开始实现机器学习算法。

 

 

    1. 最好选择一种您最熟悉的编程语言。

 

    1. 选择要实现的算法,从容易的事情开始。

 

    1. 在开发时选择一个问题来测试您的实现,2D数据有利于可视化(甚至是在Excel中)。

 

    1. 利用许多不同的信息来源研究算法(例如阅读教程,论文,其他实现等)。

 

    1. 对算法进行单元测试以确认您的理解并验证实施。

 

 

从小处着手,建立信心。

 

例如,适合作为第一个从头开始实现的机器学习算法是以下三种:

 

 

    1. 使用梯度下降的线性回归

 

    1. k-最近邻(参见我的Python教程) https://machinelearningmastery.com/tutorial-to-implement-k-nearest-neighbors-in-python-from-scratch/

 

    1. 朴素贝叶斯(参见我的Python教程) https://machinelearningmastery.com/naive-bayes-classifier-scratch-python/

 

 

有关如何实现机器学习算法的更多信息,请参阅“ 如何实现机器学习算法 ”一文。

 

How to Implement a Machine Learning Algorithm

 

另见帖子:

“ 从头开始实现机器学习算法的好处 ” https://machinelearningmastery.com/benefits-of-implementing-machine-learning-algorithms-from-scratch/

“ 实现机器学习算法时不要从开源代码开始 ” https://machinelearningmastery.com/dont-start-with-open-source-code-when-implementing-machine-learning-algorithms/

理论不是仅为了数学家准备的

 

机器学习不是仅仅适用于数学精英。您可以了解机器学习算法的工作原理,以及如何在不深入了解多变量统计数据的情况下充分利用它们。

 

你不需要擅长数学。

 

正如我们在技术部分中看到的,您可以从算法列表开始,并深入过渡到算法研究,算法描述和算法行为。

 

你可以使用这些方法走得很远而不需要在数学上深入很多。

 

您不需要成为博士或学术研究员。

 

研究不仅仅适用于学术界。任何人都可以阅读书籍和论文,并编写自己对某个主题的理解,如特定的机器学习算法。

 

当你扮演“ 科学家 ” 的角色并开始尝试机器学习算法时,你将获得最大的突破,就好像它们是需要学习的复杂系统一样。您将发现可能无法记录的各种有趣的细节。

 

赶快行动吧!

 

选择上面列出的技术之一并开始使用。

 

我的意思是今天,现在立刻开始。

 

不确定从哪里开始?

 

以下是5个好方法可以帮助你开始:

 

 

    1. 列出10种用于分类的机器算法。 https://machinelearningmastery.com/a-tour-of-machine-learning-algorithms/

 

    1. 找五本书,详细描述随机森林。

 

    1. 使用您自己的算法描述模板在Naive Bayes上创建五张幻灯片演示文稿。

 

    1. 打开Weka,“k”参数如何影响鸢尾花数据集上k-最邻近的准确。 https://machinelearningmastery.com/how-to-run-your-first-classifier-in-weka/

 

    1. 使用随机梯度下降实现线性回归。

 

 

作者:Jason Brownlee博士,机器学习专家。他教开发人员如何通过实践教程获得现代机器学习方法的结果。

 

原文选自:machinelearningmastery.com

 

本文转载自:TalkingData数据学堂

 

封面图来源:pexels by Pixabay

Be First to Comment

发表评论

邮箱地址不会被公开。 必填项已用*标注