Code前端首页关于Code前端联系我们

机器学习算法图:K近邻算法——橙子还是柚子?

terry 2年前 (2023-09-27) 阅读数 66 #数据结构与算法

至最近邻算法

橙子或者柚子,请看下图中的水果。是橙子还是柚子?我知道柚子通常比橙子更大更红。 机器学习算法图解:K最近邻算法——橙子还是柚子?

我的思维过程是这样的:我脑子里有一个计划。 机器学习算法图解:K最近邻算法——橙子还是柚子?

一般来说,柚子个头更大,颜色更红。果实又大又红,所以很可能是葡萄柚。但是像下面这样的水果呢? 机器学习算法图解:K最近邻算法——橙子还是柚子?

如何辨别这个水果是橙子还是柚子?一种方法是看看邻居。让我们看看三位最接近的邻居。 机器学习算法图解:K最近邻算法——橙子还是柚子?

三个邻居中橙子比柚子还多,所以这个果子很可能就是橙子。

恭喜您,您刚刚使用了 K 最近邻 (KNN) 算法进行分类!这个算法非常简单。 机器学习算法图解:K最近邻算法——橙子还是柚子?

KNN算法简单但非常有用!当你想对某些东西进行分类时,请先尝试这个算法。

推荐系统

假设您是 Netflix,您想为用户创建一个电影推荐系统。基本上这个类型和之前的水果问题类似!

您可以将所有用户放在一张图表中。 机器学习算法图解:K最近邻算法——橙子还是柚子?

这些用户在图中的位置取决于他们的偏好,因此具有相似偏好的用户彼此更接近。假设您想向 Priyanka 推荐电影。您可以找到与他最接近的五个用户。 机器学习算法图解:K最近邻算法——橙子还是柚子?

假设Justin、JC、Joe、Lance、Chris 的电影喜好都与 Priyanka 相似,那么他们喜欢的电影很可能也会被 Priyanka 喜欢!

有了这样的排名,创建一个推荐系统就很容易了:如果有Justin喜欢的电影,推荐给Priyance机器学习算法图解:K最近邻算法——橙子还是柚子?

但是还有一个重要的问题没有解决。在上图中,相似的用户非常接近,但是如何找出两个用户的相似程度?

特征提取

在前面的水果示例中,您根据水果的颜色进行了比较。换句话说,您要比较的属性是大小和颜色。现在假设有三种水果,您可以提取它们的属性。 机器学习算法图解:K最近邻算法——橙子还是柚子?

然后根据这些特征进行绘制。 机器学习算法图解:K最近邻算法——橙子还是柚子?

从上图可以看出,水果A和水果B比较相似。让我们来衡量一下它们有多相似。使用毕达哥拉斯公式计算两点之间的距离。 机器学习算法图解:K最近邻算法——橙子还是柚子?

例如,A和B之间的距离如下。 机器学习算法图解:K最近邻算法——橙子还是柚子?

A和B之间的距离为1。还可以计算其他水果之间的距离。 机器学习算法图解:K最近邻算法——橙子还是柚子?

这个距离模式证实了您的直觉:A 和 B 非常相似。

假设您正在比较 Netflix 用户,您需要以某种方式将他们放入图表中。因此,您需要将每个用户转换为一组坐标,就像您对水果所做的那样。 机器学习算法图解:K最近邻算法——橙子还是柚子?

一旦您能够将用户放置在图表上,您就可以计算他们之间的距离。

下面是如何将用户转换为一组数字。当用户注册时,他们会被要求表明他们对不同电影的喜爱程度。这样您就可以获得每个用户的一组数字! 机器学习算法图解:K最近邻算法——橙子还是柚子?

Priyanka 和 Justin 都喜欢浪漫电影,讨厌恐怖电影。墨菲斯喜欢动作片,但讨厌爱情片。之前我们判断一个水果是橙子还是柚子的时候,每个水果都是用2个数字来表示的。你还记得吗?这里每个用户由 5 个数字表示。 机器学习算法图解:K最近邻算法——橙子还是柚子?

从数学家的角度来看,这里计算的距离是五维空间中的距离,但计算公式不变。 机器学习算法图解:K最近邻算法——橙子还是柚子?

这个公式包含 5 个数字,而不是 2 个。

这个距离公式非常灵活,即使包含很多数字,您仍然可以使用它来计算距离。你可能会问,当距离是5个数字时,距离意味着什么?这个距离表示两组数字之间的相似程度机器学习算法图解:K最近邻算法——橙子还是柚子?

这就是Priyanka和Justin之间的距离。

Priyanka 看起来很像贾斯汀。 Priyanka 和 Morpheus 的区别有多大?阅读前请计算它们之间的距离。

Priyanka 和 Morpheus 之间的距离是“24 的平方根”,你说得对吗?上述距离表明 Priyanka 更喜欢 Justin 而不是 Morpheus。

回归(预测)

假设您不仅想向 Priyanka 推荐一部电影,还想预测她会给这部电影打多少分。为此,首先找到离她最近的 5 个人。 机器学习算法图解:K最近邻算法——橙子还是柚子?

假设您想预测 Priyanka 会给电影《完美音调》打多少分。贾斯汀、JC、Joe、兰斯和克里斯给了多少分? 机器学习算法图解:K最近邻算法——橙子还是柚子?

找出这些人给出的平均分。这是一次卷土重来。您可以使用 KNN 完成两项基本工作 - 分类和回归。

回归当然有用。假设您在伯克利开了一家小面包店,每天烤新鲜的面包。您需要根据以下一组特征来预测当天应该烤多少条面包:

1。天气指数1~5(1表示天气非常恶劣)

2。是周末还是节假日(1 为周末或节假日,0 为非周末或节假日)

3。有一些活动(1表示是,0表示否)

你还有一些历史数据,记录了不同日期销售的面包数量。 机器学习算法图解:K最近邻算法——橙子还是柚子?机器学习算法图解:K最近邻算法——橙子还是柚子?

今天是周末,天气很好。根据这些数据,预测您今天将售出多少条面包?让我们使用 KNN 算法,其中 K 为 4。首先,找到距离今天最近的 4 个邻居。 机器学习算法图解:K最近邻算法——橙子还是柚子?

距离如下,距离邻居最近的是A、B、D、E。机器学习算法图解:K最近邻算法——橙子还是柚子?

这几天面包的平均销量,结果是这样的。这就是您今天要烤的面包数量!

选择正确的功能

要推荐电影,您要求用户陈述他们对不同类型电影的偏好。如果您要求用户对一系列小猫视频进行评分怎么办?在这种情况下,您可以识别对小猫图片有相似品味的用户。对于电影推荐系统来说,这可能是错误的电影推荐引擎,因为您选择的功能与您对电影评级的品味几乎没有关系。 机器学习算法图解:K最近邻算法——橙子还是柚子?

假设您只要求用户对 《玩具总动员》《玩具总动员2》 和 《玩具总动员3》 进行评分。这样就会很难察觉用户的电影品味!使用 KNN 时,选择正确的特征进行比较至关重要。所谓合适的属性是:

1。推荐与电影密切相关的功能

2。冷静的特质。

您认为评分是推荐电影的一个很好的指标吗?

机器学习

KNN 算法非常有用,可以成为您进入机器学习神奇领域的指南!机器学习的目的是让计算机变得更聪明。

图像识别

OCR 代表光学字符识别,这意味着您可以对打印的页面拍照,计算机将自动识别文本。 Google 使用 OCR 将图书数字化。 OCG 是如何运作的?让我们看一个例子。查看下面的数字。 机器学习算法图解:K最近邻算法——橙子还是柚子?

如何自动识别这个号码是什么?可以使用KNN。

1。浏览大量数字图像并提取这些数字的特征

2。当你遇到一个新图像时,你提取图像的特征,然后找出谁与邻居最接近

这和之前判断水果是橙子还是柚子的时候是一样的。一般来说,OCR算法提取的是线段、点、曲线等特征机器学习算法图解:K最近邻算法——橙子还是柚子?

当遇到新的字符时,可以从中提取相同的特征。这些想法也可用于语音识别和面部识别。当您将照片上传到 Facebook 时,它有时会自动标记照片中的人物。这就是机器学习在起作用!

版权声明

本文仅代表作者观点,不代表Code前端网立场。
本文系作者Code前端网发表,如需转载,请注明页面地址。

热门