算法基础:k最近邻算法

本文详细介绍了K最近邻(KNN)算法,包括其在分类和回归问题中的应用,特征抽取,距离计算方法,以及如何选择合适的特征和K值。通过水果分类和电影推荐系统的例子,阐述了KNN的工作原理,并探讨了不同的距离度量方法对结果的影响。
摘要由CSDN通过智能技术生成

本博客所有内容均整理自《算法图解》,欢迎讨论交流~

了解过机器学习这个概念,一定知道有一种名为k最近邻的算法,简称KNN。

对于k最近邻算法的定义,百度百科是这样给出的:K最近邻(k-Nearest Neighbor,KNN)分类算法,是一个理论上比较成熟的方法,也是最简单的机器学习算法之一。该方法的思路是:如果一个样本在特征空间中的k个最相似(即特征空间中最邻近)的样本中的大多数属于某一个类别,则该样本也属于这个类别。

通俗来说,就是近朱者赤,近墨者黑的道理。在有标签的监督学习中,k最近邻一般用于分类,即根据与某一个特征点离得最近的k个点的分类来决定该点的分类,一般是少数服从多数的决策;而在无标签的无监督学习中,k最近邻一般用于聚类,即将某点及与其离得最近的k个点聚到同一个类别中。不过话是这么说,一般对于无监督学习,人们通常使用的是K-Means算法,即k均值算法。


1、分类问题

对于KNN算法的应用,我们首先来看一个例子。

对于下面的这个水果,我们如何判断它具体是哪一个品种呢?

 

当然,理论上来说,我们必须根据生活经验才能做出判断,我们知道,类似于图中水果的形状和色泽的水果有橙子和柚子,同时我知道,柚子通常比橙子更大,更红。

所以我的脑子里有了如下所示的图表:

 

所以根据这个图表,以及上图中的水果又大又红的特点,我判断该水果很可能是柚子!

这并不难,但是下面这样的水果呢?

 

这个水果的大小和色泽都趋近于平庸,不大不小,不红不橙。

那么问题来了,我们如何判断这个水果的品种呢?

试想一下生活中的经验,对于一个陌生人,我们如何判断这个人的职业呢?我们一般会根据这个人的朋友来判断,如果这个人的朋友都是什么科学家啊工程师啊之类的,我们就认为这个人很可能是一个科研工作者;而如果这个人的朋友大多是什么记者啊播音员啊导演啊之类的,我们就认为这个人很可能是一个新闻传媒工作者。

这是自然而然的事情,但是这个自然而然的判断思路,其实就是k最近邻算法。

我们回到上面的问题,要判断图中水果的品种,我们就来看它的“朋友”,当然,这里我们把它的“朋友”称为“邻居”。

我们来看看离它最近的三个邻居:

 

如图所示,在离它最近的三个邻居中,有两个是橙子,有一个是柚子,所以根据投票法(其实就是少数服从多数)的决策,我们认为这个水果是一个橙子。在这里我们选择了3个邻居,所以我们使用的是3最近邻算法,其实k最近邻算法的k就是指的选择几个邻居来判断。


2、创建推荐系统

现在我们来看一个更加

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值