从简单的方面入手讲解机器学习算法(第1部分)

2022/2/12 8:14:43

本文主要是介绍从简单的方面入手讲解机器学习算法(第1部分),对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

机器学习(ML)通常用于许多不同的事物,例如欺诈检测,图像识别,语音识别,视频推荐,自动驾驶汽车,垃圾邮件检测,教计算机如何做饭或下棋等等。

ML有很多好处,其中之一就是它不难学习。 因此,我们人类可以使用不同的通信方式进行交流,例如面部表情,手势,语气,节奏……等等,还有计算机可以使用数据进行通信。 两者之间的最大区别是,人类从过去的经验中学习,而计算机则需要人类提供信息,这涉及到教计算机编程的方法。

ML是一个新概念,它教会计算机像人类一样学习,以根据过去的经验来完成任务。 在本文档中,我们将探讨几种不同的算法和示例,这些示例可让计算机从以前的信息(或数据)中学习。 因此,让我们开始吧。

从简单的方面入手讲解机器学习算法(第1部分)

决策树

假设您是汽车销售商,并且想向客户推荐汽车,例如E-Porsche,BMW i8和Mercedes EQS。

从简单的方面入手讲解机器学习算法(第1部分)

您拥有有关客户的各种信息,例如年龄和工作形式(自雇或受雇)。 下表列出了所有数据:

从简单的方面入手讲解机器学习算法(第1部分)

例如,在表格的第二行中,我们有一个29岁并拥有E-Porsche的受雇客户。 利用给定的数据,此处的任务是根据客户的就业或年龄来预测应向客户推荐哪种汽车。

看一下不同的就业形式并将其分开,无论是自雇人士还是受雇于自己的,都不容易分开。

从简单的方面入手讲解机器学习算法(第1部分)

在另一种情况下,我们可以使用年龄为特征进行拆分。 通过观察"年龄"数据,年龄在35岁以下的客户拥有Mission-E汽车,年龄在35岁以上的用户拥有其他类别的汽车。

从简单的方面入手讲解机器学习算法(第1部分)

最佳区分数据的功能是按年龄。

从简单的方面入手讲解机器学习算法(第1部分)

一旦我们分开了年龄,我们就可以继续。分析

从简单的方面入手讲解机器学习算法(第1部分)

通过分离功能,我们现在可以为35岁以下且自雇的i8客户提供建议,如果35岁以上且有雇主的客户,我们可以为您推荐汽车EQS。 此方法称为决策树。

从简单的方面入手讲解机器学习算法(第1部分)

这些决定来自所提出的问题。 客户几岁了? 是自雇人士还是受雇人士? 如果有新客户,我们可以使用决策树为他推荐一辆汽车。 如果新客户年龄在35岁以下,我们建议他使用Mission-E。 该方法可以使用分类和数值特征,并且易于理解。 它为视觉表示提供了很好的解释。 我们将继续下一个方法。 下一种方法将帮助我们过滤数据。

朴素贝叶斯

ML的另一种方法是朴素贝叶斯(Naive Bayes),这是一种分类技术。 这是一个概率ML模型。 它非常适合垃圾邮件和文档分类之类的任务。 使用此方法的一个流行示例是垃圾邮件过滤。 我们将其用作分类器,以从非电子邮件垃圾邮件中检测电子邮件垃圾邮件。 它是如何工作的? 对于此任务,我们必须看一下已经收到的数据。 数据集包含50个非垃圾邮件和20个垃圾邮件,这些垃圾邮件已手动标记。 这总共发送了70封电子邮件。

从简单的方面入手讲解机器学习算法(第1部分)

让我们定义和分析一些可能导致垃圾邮件的功能。 例如,功能可以是没有主题的电子邮件。 现在,我们至少查看了70封电子邮件,发现50封非垃圾邮件中有4封电子邮件以及20封垃圾邮件中有10封是不带主题的电子邮件。

从简单的方面入手讲解机器学习算法(第1部分)

利用记录的数据,我们将尝试查找没有主题的电子邮件是垃圾邮件的可能性。 我们可以看到,在没有主题的电子邮件中,有四封是非垃圾邮件,而十封是垃圾邮件。 这给我们以下答案:

从简单的方面入手讲解机器学习算法(第1部分)

71.43%是没有主题的电子邮件是垃圾邮件的可能性。 然后,我们可以使用以下规则将未来的电子邮件标记为非垃圾邮件或垃圾邮件:如果接收到没有对象的电子邮件,则该电子邮件为垃圾邮件的可能性为71.43%,并将该电子邮件归类为垃圾邮件。 通过使用其他功能,例如包含句子"您是最大赢家"或"声明要约"。 然后,我们可以结合所有功能对电子邮件进行分类。 该算法称为朴素贝叶斯分类器。 该方法还用于推荐,情感分析。 它很容易实现。 我们将看到的下一种方法也是一种简单的方法,非常适合于分析大量数据。

K均值聚类

K-Means是用于分组对象(集群分析)的最常用的ML方法之一。 我们有自行车,并希望将其用于我们的自行车租赁系统。 为此,我们决定在一个地区放置三个自行车租赁站。 我们正在研究一个地区,发现骑自行车旅行的人更多地居住在公寓中,如下图所示。

从简单的方面入手讲解机器学习算法(第1部分)

用这种安排将每个电台放在一个组中听起来更正确。 因为公寓彼此靠近。

从简单的方面入手讲解机器学习算法(第1部分)

但是,正如我们在一开始所说的那样,事实是必须教计算机如何执行任务。 这意味着他目前不知道该怎么做。 在这种情况下,我们需要使用一种新的方法来找到合适的位置。 我们首先随机放置三个站点,图中的是自行车。

从简单的方面入手讲解机器学习算法(第1部分)

安置好车站后,我们希望人们能从最近的车站租用自行车。 话虽这么说,那些靠近橙色站的从橙色公寓租,那些靠近粉红色站的从粉红色租,以及靠近黄色站的那些都将从黄色租。

从简单的方面入手讲解机器学习算法(第1部分)

但是,如果我们查看黄色公寓中居民与黄色车站之间的距离,就会意识到将车站放置在黄色公寓的中央,然后对粉红色和黄色车站重复此步骤更为有意义。

从简单的方面入手讲解机器学习算法(第1部分)

通过简单地更改车站的位置,我们现在可以将公寓重新安排到最近的车站。 通过查看五个橙色公寓旁边的三个公寓,我们可以看到它们离橙色车站比靠近粉红色车站更近,然后将其标记为橙色,并对旁边的两个黄色公寓进行相同的标记。 粉红色的。

从简单的方面入手讲解机器学习算法(第1部分)

通过将粉红色站点移到客户中心,我们发现三个黄色公寓比黄色站点更靠近粉红色站点,因此我们将它们着色为粉红色。

从简单的方面入手讲解机器学习算法(第1部分)

然后,我们将黄色站移到黄色公寓的中心,因为它们离该站更近。

从简单的方面入手讲解机器学习算法(第1部分)

此方法称为k均值。 如果知道最后要拥有多少个群集,则可以使用k均值。 如果我们不知道有多少个集群,我们就想要拥有。 为此,还有另一种算法,称为层次聚类。

层次聚类

在不指定组或群集的数量的情况下,分层聚类是可用于群集公寓或建筑物在区域中的另一种方法。 通过将公寓放置在一个区域中,可以说如果两个公寓很近,那么这些公寓的居民就可以在同一站租用自行车。 使用此规则,我们可以将公寓分为以下几类:

从简单的方面入手讲解机器学习算法(第1部分)

然后,我们将接下来的两个最近的公寓分组。

从简单的方面入手讲解机器学习算法(第1部分)

我们重复上一步,我们将得到以下内容

从简单的方面入手讲解机器学习算法(第1部分)

然后,附近可能最靠近的公寓就是图片中标记的图片。 但是它们彼此之间有点遥远。

从简单的方面入手讲解机器学习算法(第1部分)

如果距离达到一定长度,算法将停止执行。 此方法称为层次聚类,如果我们不知道要拥有的聚类数量,但是对应该是什么样子有所了解,则使用此方法。

线性回归

在此示例中,我们尝试根据汽车的长度x宽度x高度(LxWxH)估算汽车的价格。

从简单的方面入手讲解机器学习算法(第1部分)

为此,我们进行了一项小型研究。 通过这项小型研究,我们有三辆车。 最小的车要花15,000欧元,最大的车要花45,000欧元。 现在,我们要估算两辆汽车之间的大小的汽车价格。

从简单的方面入手讲解机器学习算法(第1部分)

为此,我们将汽车排列在网格中,其中x轴对应于汽车的教程尺寸,y轴对应于汽车的价格。 为了使这项工作更加轻松,我们使用了以前从其他汽车上记录的数据。 这些由这些棕点表示。

从简单的方面入手讲解机器学习算法(第1部分)

我们可以看到这些点可以形成一条线。 然后,我们绘制一条最适合这些棕色圆点的线。

从简单的方面入手讲解机器学习算法(第1部分)

在生产线的帮助下,我们可以估算中级车的价格,这相当于30.000。⊥3⊥src=“p3.toutiaoimg.com/origin/pgc-image/42f929d41fff45318049edfdcf26f18c?from=pc” img_width=“412” img_height=“241” alt=“从简单的方面入手讲解机器学习算法(第1部分)” inline=“0” class=“syl-page-img” style=“height: auto;”>

这种方法称为线性回归。 为了找到最适合数据的上方绿线,我们使用了另一种称为梯度下降的方法。 让我们稍作停留,讨论一下这种方法。

梯度下降

让我们假设我们在山顶,我们需要找到到山脚的最短距离。

从简单的方面入手讲解机器学习算法(第1部分)

我们可以逐步使它到达山脚。 我们首先需要找到合适的方向,使我们能够走得更远。 然后我们朝那个方向前进。

从简单的方面入手讲解机器学习算法(第1部分)

之后,我们重复此过程,并朝正确的方向迈出了一步。

从简单的方面入手讲解机器学习算法(第1部分)

我们重复动作,直到到达山脚。

从简单的方面入手讲解机器学习算法(第1部分)

这是梯度下降算法。 它非常用于机器学习。 为了解决我们的山区问题,我们朝正确的方向走了几步,直到到达山区脚(解决方案)为止。

线性回归—Lasso

现在,我们回到使用线性线来找到最佳数据匹配的方法。 我们仍在进行线性回归,试图解释如何找到最匹配数据的线。

让我们尝试四个点,找到一条更适合这四个点的线。 作为一台计算机,我们不知道该怎么做,因此我们首先偶然碰到一条线。

从简单的方面入手讲解机器学习算法(第1部分)

现在,我们检查这条线最适合数据的好坏。 这是通过计算误差来完成的。 为此,我们计算了四个点到直线的距离。 然后,我们将这些距离相加得到误差。

从简单的方面入手讲解机器学习算法(第1部分)

然后,我们沿不同的方向移动线并计算误差,然后观察到误差变小了。

从简单的方面入手讲解机器学习算法(第1部分)

我们执行此步骤,重复该过程,并将错误最小化,直到找到一个好的解决方案。

从简单的方面入手讲解机器学习算法(第1部分)

通过梯度下降来完成使误差最小化的过程。 当我们在山顶上时,我们会有一个很大的错误。 我们朝着正确的方向迈出的每一步,都使误差最小化。 在实际示例中,我们不想使用负距离,因此我们使用正方形。 这称为最小二乘法。

逻辑回归

对于此示例,我们收到了对任务进行分类的任务,以对良性和恶性脑肿瘤进行分类。

从简单的方面入手讲解机器学习算法(第1部分)

基本上,良性脑肿瘤可以与恶性脑肿瘤区分开来,其特点是它们通常生长缓慢(并且主要通过增加压力来损害周围组织),并且比恶性肿瘤复发的可能性小,恶性肿瘤随着侵袭能力的发展而迅速发展。 在这里,我们将使用这两个特征,即肿瘤的生长速度和复发程度将这两种类型的脑肿瘤分类。

在此示例中,我们记录了一些带有参数的数据,例如,数据x的生长速度等级为20%,复发等级为20%,这是一种良性肿瘤。 对于数据y,我们的生长速度等级为79%,复发等级为61%,这是恶性肿瘤。 我们现在有了新数据,其速度等级为62%,复发等级为45%。 颜色定义每个实例所属的类标签。 利用我们拥有的数据,我们想要确定它是哪种肿瘤类型。 为此,我们将数据排列在网格中,其中x轴对应于增长的速度,y轴对应于递归等级。

从简单的方面入手讲解机器学习算法(第1部分)

我们使用先前记录的恶性和良性肿瘤数据。

从简单的方面入手讲解机器学习算法(第1部分)

仔细观察这些点,我们可以看到这些点可以用一条线分开。 这条线是模型。

从简单的方面入手讲解机器学习算法(第1部分)

大多数红色点在绿线上方,而大多数灰色点在绿线下方。 每当我们有了新的观点时,我们就可以使用模型将其分配给肿瘤类型。 关于该线的数据是恶性肿瘤,并且该线下方的数据是良性肿瘤。 对于具有坐标的新数据,我们可以说该肿瘤是恶性的。 这种方法称为逻辑回归。

与线性回归一样,我们研究了找到分隔数据的线的方法。 让我们以一个简单的示例为例,尝试找到最能区分数据的线,红点和棕点。

从简单的方面入手讲解机器学习算法(第1部分)

在我们的示例中,我们有两个红色点和一个棕色点,这意味着三个错误。 我们尝试通过使用梯度下降来最小化误差。 如果将线向正确的方向移动,可以看到误差已降至最小。

从简单的方面入手讲解机器学习算法(第1部分)

现在我们只有两个错误。 然后,我们重复该过程,直到没有更多的错误为止。

从简单的方面入手讲解机器学习算法(第1部分)

在实际示例中,我们不会尝试最小化错误,而是使用一个称为对数丢失函数的函数,该函数会加权错误数。 我们有八个不正确分类的点中的两个。

对数损失函数将为不正确的点分配较大的惩罚,为正确的点分配较小的惩罚。 我们将各个点的所有罚分相加以获得对数损失函数。 为了更清楚地说明这一点,我们已用数字替换了这个惩罚,分别是大惩罚和小惩罚。 在第二步中,我们看到误差大于下一步。

从简单的方面入手讲解机器学习算法(第1部分)

此处的步骤是最大程度地减少误差函数,并找到最能分隔数据的行。

现在我们知道了一些机器学习算法。 让我们在下一页中看到更多。

[1]安德鲁·摩尔。 K均值和层次聚类—教程幻灯片。

[2]迈克尔·尼尔森。 神经网络和深度学习。

(本文翻译自Didier Itembe的文章《Machine Learning Algorithms from the Easy Side (Part 1)》,参考:

towardsdatascience/machine-learning-algorithms-from-the-easy-side-part-1-14f2dee005ab)



这篇关于从简单的方面入手讲解机器学习算法(第1部分)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程