【k近邻】 K-Nearest Neighbors算法汇总

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

目录

k近邻算法思想

k近邻算法原理

k近邻算法流程

距离度量的选择

数据维度归一化

k值的选择

k近邻算法优缺点


k近邻算法思想

少数服从多数

k近邻算法原理

K近邻算法,即是给定一个训练数据集,对新的输入实例,在训练数据集中找到与该实例最邻近的K个实例,这K个实例的多数属于某个类,就把该输入实例分类到这个类中。

例如下图展现了两类样本数据,分别由正方形和三角形表示,待分类数据由圆形表示,算法的目的是依据已知的样本数据判断待分类数据的类别,即对圆形数据分类。

【k近邻】 K-Nearest Neighbors算法汇总,算法,机器学习,人工智能,近邻算法,k近邻算法

我们考虑几种不同的K值:

  • 如果K=1,圆点的最邻近的1个点是1个三角形,少数服从多数,基于统计的方法,可以判定这个待分类点属于三角形一类。
  • 如果K=3,圆点的最邻近的3个点是2个三角形和1个正方形,少数服从多数,基于统计的方法,可以判定这个待分类点属于三角形一类。
  • 如果K=5,圆点的最邻近的5个点是2个三角形和3个正方形,少数服从多数,基于统计的方法,可以判定这个待分类点属于正方形一类。
  • 依此类推,k近邻算法的思路十分清晰,一言蔽之,即由最近的k个邻居决定待判别点的归属。

k近邻算法流程

对未知类别的数据集中的每个点依次执行以下操作

  • 计算已知类别数据集众多点与当前点之间的距离
  • 按照距离递增次序排序
  • 选取与当前点距离最小的k个点
  • 确定前k个点所在类别的出现频率
  • 返回前k个点出现频率最高的类别作为当前点的预测分类

距离度量的选择

k近邻算法中需要按照距离递增次序排序,通常选取以下类型的距离:

  • 欧式距离:
  • Lp距离:
  • 曼哈顿距离:
  • L距离:

数据维度归一化

假设所使用的样本特征为,取每一轴上的最大值减最小值

随后在计算距离时将每一个坐标轴除以相应的以进行归一化

数据维度归一化的必要性

当使用多维度数据计算距离时,数据维度的归一化是及其必要的。

例如,以身高(cm)与脚码(尺码)大小作为特征值,判断男性或者女性。5个训练样本分布如下:

A [(179,42),男],B [(178,43),男],C [(165,36)女],D [(177,42),男],E [(160,35),女]

可以发现,第一维身高特征是第二维脚码特征的4倍左右,在计算距离度量的时候,如果不进行数据维度的归一化,算法就会偏向于第一维特征这会造成俩个特征并不是等价重要的,最终可能会导致距离计算错误,从而导致预测错误。

以测试样本 F[(167,43),男]为例,取k=3,分别算出F离训练样本的欧式距离,然后选取最近的3个,多数类别就是我们最终的结果,计算结果如下:

【k近邻】 K-Nearest Neighbors算法汇总,算法,机器学习,人工智能,近邻算法,k近邻算法

可以得到,最近的前三个分别是C,D,E三个样本,那么由C,E为女性,D为男性,得到预测结果为女性。

女性脚43码的可能性远远小于男性脚43码的可能性,算法却错误地预测F为女性,这不是算法的问题,这是各个特征量纲不同的问题,这里量纲直接导致身高的权重远大于脚码的权重,进而导致预测错误。所以在计算前应该让每个特征同等重要,这就是归一化的必要性。

k值的选择

  • 选择较小的k值
    • 噪声敏感
    • K值的减小意味着着整体模型会变得复杂,容易发生过拟合情况
    • 学习的近似误差(approximation error)会减小,但学习的估计误差(estimation error)会增大

过拟合:在训练集上准确率非常高,而在测试集上准确率低文章来源地址https://www.toymoban.com/news/detail-836289.html

  • 选择较大的k值
    • K值的增大意味着整体的模型会变得简单
    • 学习的估计误差(estimation error)会减小,但学习的近似误差(approximation error)会增大
  • 合理的选择方式:一般先选取一个较小的k值,然后采取交叉验证法来选取最优的k值,即实验调参,类似于神经网络通过调整超参数来得到一个较好的层数。

k近邻算法优缺点

  • 优点
    • 精度高
    • 对异常值不敏感
    • 无数据输入假定
  • 缺点
    • 计算复杂度高
    • 空间复杂度高

到了这里,关于【k近邻】 K-Nearest Neighbors算法汇总的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

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

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

    2024年02月09日
    浏览(40)
  • 机器学习-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)
  • Elasticsearch:探索 k-nearest neighbor (kNN) 搜索

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

    2024年02月08日
    浏览(40)
  • 【机器学习实战】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日
    浏览(39)
  • 【机器学习】机器学习创建算法第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-Nearest Neighbor

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

    2024年02月17日
    浏览(38)
  • 机器学习——K最近邻算法(KNN)

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

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

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

    2024年02月16日
    浏览(42)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包