机器学习算法:K近邻(k-nearest neighbors)初探

这篇具有很好参考价值的文章主要介绍了机器学习算法:K近邻(k-nearest neighbors)初探。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

KNN的介绍和应用

KNN(K-Nearest Neighbor)算法是一种基于实例的学习算法,也是一种常见的分类算法。
如果一个样本在特征空间中的k个最相似(即特征空间中最邻近)的样本中的大多数属于某一个类别,则该样本也属于这个类别。
机器学习算法:K近邻(k-nearest neighbors)初探
示例 :如上图,绿色圆要被决定赋予哪个类,是红色三角形还是蓝色四方形?如果K=3,由于红色三角形所占比例为2/3,绿色圆将被赋予红色三角形那个类,如果K=5,由于蓝色四方形比例为3/5,因此绿色圆被赋予蓝色四方形类。

KNN建立过程

KNN算法的工作流程如下:

  • 准备训练集:我们需要有一个已标记的训练集,其中包含多个已标记的数据样本,即每个样本都有对应的类别。

  • 计算相似度:对于一个未知样本,在训练集中找到与之距离最近的K个样本,通常使用欧几里得距离或曼哈顿距离等方法来计算不同样本之间的距离或相似度。一般来说,距离越近的样本在特征上是越相似的,因此被归为同一类别的概率更大。

  • 进行投票:根据这K个最邻近的样本,我们可以使用多数表决的方式来预测未知样本的类别。即在这K个样本中出现次数最多的类别,就是当前未知样本所属的类别。

类别的判定

①投票决定,少数服从多数。取类别最多的为测试样本类别。

②加权投票法,依据计算得出距离的远近,对近邻的投票进行加权,距离越近则权重越大,设定权重为距离平方的倒数。

KNN算法优缺点

优点:

  1. 算法简单:KNN算法思路简单、实现容易,而且对于数据的分布形态没有假设条件。

  2. 适用于多分类问题:KNN算法可以处理多分类问题。

  3. 可以自适应地学习新的样本:KNN算法可以通过不断添加新的样本来自适应地学习,从而不断提高分类准确性。

缺点:

  1. 对数据量比较敏感:KNN算法需要计算测试样本与所有训练样本的距离,这个过程比较耗时,尤其是处理大规模的数据集时,算法效率会比较低。

  2. 对异常值比较敏感:KNN算法容易受到数据集中的异常值的影响,而且对异常值缺乏处理的能力。

  3. 需要选择好的K值:KNN算法的分类效果与K值的选择有很大关系,K值太小会导致对噪声敏感,K值太大会忽略样本之间的局部特征。因此,需要根据具体情况选择好的K值才能获得最优的分类效果。

KNN原理介绍

k近邻方法是一种惰性学习算法,可以用于回归和分类,它的主要思想是投票机制,对于一个测试实例x, 我们在有标签的训练数据集上找到和最相近的k个数据,用他们的label进行投票,分类问题则进行表决投票,回归问题使用加权平均或者直接平均的方法。knn算法中我们最需要关注两个问题:k值的选择和距离的计算。 kNN中的k是一个超参数,需要我们进行指定,一般情况下这个k和数据有很大关系,都是交叉验证进行选择,但是建议使用交叉验证的时候,k∈[2,20],使用交叉验证得到一个很好的k值。

k值还可以表示我们的模型复杂度,当k值越小意味着模型复杂度变大,更容易过拟合,(用极少数的样例来绝对这个预测的结果,很容易产生偏见,这就是过拟合)。我们有这样一句话,k值越多学习的估计误差越小,但是学习的近似误差就会增大。

KNN的应用

KNN虽然很简单,但是人们常说"大道至简",一句"物以类聚,人以群分"就能揭开其面纱,看似简单的KNN即能做分类又能做回归, 还能用来做数据预处理的缺失值填充。由于KNN模型具有很好的解释性,一般情况下对于简单的机器学习问题,我们可以使用KNN作为 Baseline,对于每一个预测结果,我们可以很好的进行解释。推荐系统的中,也有着KNN的影子。例如文章推荐系统中, 对于一个用户A,我们可以把和A最相近的k个用户,浏览过的文章推送给A。

机器学习领域中,数据往往很重要,有句话叫做:“数据决定任务的上限, 模型的目标是无限接近这个上限”。 可以看到好的数据非常重要,但是由于各种原因,我们得到的数据是有缺失的,如果我们能够很好的填充这些缺失值, 就能够得到更好的数据,以至于训练出来更鲁棒的模型。接下来我们就来看看KNN如果做分类,怎么做回归以及怎么填充空值。文章来源地址https://www.toymoban.com/news/detail-401851.html

到了这里,关于机器学习算法:K近邻(k-nearest neighbors)初探的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 算法笔记 近似最近邻查找(Approximate Nearest Neighbor Search,ANN)

    精准最近邻搜索中数据维度一般较低,所以会采用穷举搜索,即在数据库中依次计算其中样本与所查询数据之间的距离,抽取出所计算出来的距离最小的样本即为所要查找的最近邻。 当数据量非常大的时候,搜索效率急剧下降。 ——近似最近邻查找(Approximate Nearest Neighbor

    2024年02月09日
    浏览(39)
  • Elasticsearch:探索 k-nearest neighbor (kNN) 搜索

    由于新一代机器学习模型可以将各种内容表示为向量,包括文本、图像、事件等,人们对向量搜索的兴趣激增。 通常称为 “ 嵌入模型 (embedding models)”,这些强大的表示可以以超越其表面特征的方式捕获两段内容之间的相似性。 K 最近邻 (KNN) 搜索又名语义搜索是一种简单

    2024年02月08日
    浏览(40)
  • 李飞飞计算机视觉k-Nearest Neighbor

    给计算机很多数据,然后实现学习算法,让计算机学习到每个类的外形 输入:输入是包含N个图像的集合,每个图像的标签是K种分类标签中的一种。这个集合称为训练集。 学习:这一步的任务是使用训练集来学习每个类到底长什么样。一般该步骤叫做训练分类器或者学习一个

    2024年02月17日
    浏览(37)
  • 机器学习-k-近邻算法

    k-近邻算法是一种常用的监督学习算法,用于分类和回归任务。其思想为:如果一个样本在特征空间中的k个最近邻居中的大多数属于某个类别,那么该样本也属于这个类别(对于分类任务)或者可以通过这些最近邻居的标签来估计其目标值(对于回归任务)。 通过计算两点之

    2024年02月09日
    浏览(37)
  • 【机器学习】机器学习创建算法第2篇:K-近邻算法【附代码文档】

    机器学习(算法篇)完整教程(附代码资料)主要内容讲述:机器学习算法课程定位、目标,K-近邻算法,1.1 K-近邻算法简介,1.2 k近邻算法api初步使用定位,目标,学习目标,1 什么是K-近邻算法,1 Scikit-learn工具介绍,2 K-近邻算法API,3 案例,4 小结。K-近邻算法,1.3 距离度量学习目标

    2024年03月15日
    浏览(55)
  • 【机器学习实战】K- 近邻算法(KNN算法)

    K-近邻算法 ,又称为  KNN 算法 ,是数据挖掘技术中原理最简单的算法。 KNN  的工作原理:给定一个已知类别标签的数据训练集,输入没有标签的新数据后,在训练数据集中找到与新数据最临近的 K 个实例。如果这 K 个实例的多数属于某个类别,那么新数据就属于这个类别。

    2023年04月20日
    浏览(57)
  • 机器学习——K近邻(KNN)算法

    目录 一、knn算法概述 1.简单介绍 2.工作原理 3.knn算法中常用的距离指标 4.knn算法优势 5.knn算法一般流程 二、knn算法经典实例——海伦约会网站 三、关于天气和旅行适合度的例子 四、总结 K近邻算法(KNN)是一种用于分类和回归的统计方法。k-近邻算法采用测量不同特征值之

    2024年01月16日
    浏览(38)
  • 【机器学习】机器学习创建算法第4篇:K-近邻算法,学习目标【附代码文档】

    机器学习(算法篇)完整教程(附代码资料)主要内容讲述:机器学习算法课程定位、目标,K-近邻算法定位,目标,学习目标,1 什么是K-近邻算法,1 Scikit-learn工具介绍,2 K-近邻算法API。K-近邻算法,1.4 k值的选择学习目标,学习目标,1 kd树简介,2 构造方法,3 案例分析,4 总结。K-近邻

    2024年04月12日
    浏览(37)
  • 机器学习——K最近邻算法(KNN)

    机器学习——K最近邻算法(KNN) 在传统机器学习中,KNN算法是一种基于实例的学习算法,能解决分类和回归问题,而本文将介绍一下KNN即K最近邻算法。 K最近邻(KNN)算法是一种基于实例的学习算法,用于分类和回归问题。它的原理是 根据样本之间的距离来进行预测 。 核

    2024年02月09日
    浏览(42)
  • 【机器学习】分类算法 - KNN算法(K-近邻算法)KNeighborsClassifier

    「作者主页」: 士别三日wyx 「作者简介」: CSDN top100、阿里云博客专家、华为云享专家、网络安全领域优质创作者 「推荐专栏」: 对网络安全感兴趣的小伙伴可以关注专栏《网络安全入门到精通》 is_array() 可以 「检测」 变量是不是 「数组」 类型。 语法 参数 $var :需要检

    2024年02月16日
    浏览(42)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包