*任务描述
本关任务:使用python实现方法,找出目标样本最近的k个样本。
相关知识
为了完成本关任务,你需要掌握:1.knn算法思想,2.距离度量。
knn算法思想
k-近邻(k-nearest neighbor ,knn)是一种分类与回归的方法。我们这里只讨论用来分类的knn。所谓k最近邻,就是k个最近的邻居的意思,说的是每个样本都可以用它最近的k个邻居来代表。

knn算法的核心思想是如果一个样本在特征空间中的k个最相邻的样本中的大多数属于某一个类别,则该样本也属于这个类别,并具有这个类别上样本的特性。该方法在确定分类决策上只依据最邻近的一个或者几个样本的类别来决定待分样本所属的类别。knn方法在类别决策时,只与极少量的相邻样本有关。*

*如上图,当k=3时离绿色的圆最近的三个样本中,有两个红色的三角形,一个蓝色的正方形,则此时绿色的圆应该分为红色的三角形这一类。而当k=5时,离绿色的圆最近的五个样本中,有两个红色的三角形,三个蓝色的正方形,则此时绿色的圆应该分为蓝色的正方形这一类。

距离度量
我们已经知道,如何判别一个样本属于哪个类型,主要是看离它最近的几个样本中哪个类型的数量最多,则该样本属于数量最多的类型。这里,有一个问题:何为最近?
关于何为最近,大家应该自然而然就会想到可以用两个样本之间的距离大小来衡量,我们常用的有两种距离:

  1. 欧氏距离:欧氏距离是最容易直观理解的距离度量方法,我们小学、初中和高中接触到的两个点在空间中的距离一般都是指欧氏距离。*

  1. 曼哈顿距离:顾名思义,在曼哈顿街区要从一个十字路口开车到另一个十字路口,驾驶距离显然不是两点间的直线距离。这个实际驾驶距离就是“曼哈顿距离”。曼哈顿距离也称为“城市街区距离”。



其中,上标圆括号内数字代表第几个样本,下标数字代表样本的第几个特征。
编程要求
根据提示,在右侧编辑器Begin-End处补充代码,实现topK方法。

测试说明
程序会调用你实现的方法,找出目标样本最近的k个样本的标签。如目标样本最近的5个样本为0,0,1,1,1则返回列表[0,0,1,1,1]。若返回结果与真实结果一致则视为通关。

#encoding=utf8
import numpy as npdef topK(i,k,x,y):'''input:i(int):第i个样本k(int):最近邻样本个数x(ndarray):数据特征y(ndarray):数据标签output:topK(list):样本i的最近k个样本标签'''#*********Begin*********##计算样本到所有样本的距离distance = np.sqrt(np.power(np.tile(x[i],(x.shape[0],1))-x,2).sum(axis=1)) #np.tile(a,(y,x))第一个参数为Y轴扩大倍数,第二个为X轴扩大倍数#sum(axis=1)代表按列方向跨行相加#除样本本身外的最近的k个样本的索引nearest = np.argsort(distance)[1:k+1]#np.argsort() 将x中的元素从小到大排列,提取其对应的index(索引),然后输出到y#除样本本身外的最近的k个样本的标签topK = [y[j] for j in nearest]#*********End*********#return topK

第1关:knn算法概述相关推荐

  1. MATLAB从入门到精通系列之如何实现KNN算法

    KNN算法又称为k近邻分类(k-nearest neighbor classification)算法,它将样本分到离它最相似的样本所属的类.该算法的本质上采用模板匹配的思想,要确定一个样本的类别,通过 ...

  2. 计算机视觉--KNN算法和稠密SIFT实现图像识别(手势识别)

    KNN算法 一.KNN算法概述 kNN算法的核心思想是如果一个样本在特征空间中的k个最相邻的样本中的大多数属于某一个类别,则该样本也属于这个类别,并具有这个类别上样本的特性.该方法在确定分类决策上只依 ...

  3. ML01 -- KNN算法

    KNN 1.KNN算法概述 邻近算法,或者说K最近邻(kNN,k-NearestNeighbor)分类算法,是机器学习中比较简单的入门级算法.所谓K最近邻,就是k个最近的邻居的意思,说的是每个样本都可 ...

  4. python的knn算法list_机器学习实战学习笔记1——KNN算法

    一.KNN算法概述: 1.KNN算法的工作原理是: (1)存在一个训练样本集,并且知道样本集中每一数据与所属分类的对应关系,即每个数据都存在分类标签. (2)若此时输入不带标签的新数据之后,将新数据的 ...

  5. KNN算法(一) KNN算法原理

    一.KNN算法概述 KNN可以说是最简单的分类算法之一,同时,它也是最常用的分类算法之一,注意KNN算法是有监督学习中的分类算法,它看起来和另一个机器学习算法Kmeans有点像(Kmeans是无监督学 ...

  6. KNN算法原理及实现

    KNN算法原理及实现 1.KNN算法概述 kNN算法的核心思想是如果一个样本在特征空间中的k个最相邻的样本中的大多数属于某一个类别,则该样本也属于这个类别,并具有这个类别上样本的特性.该方法在确定分类 ...

  7. 深入浅出KNN算法(一) KNN算法原理

    一.KNN算法概述 KNN可以说是最简单的分类算法之一,同时,它也是最常用的分类算法之一,注意KNN算法是有监督学习中的分类算法,它看起来和另一个机器学习算法Kmeans有点像(Kmeans是无监督学 ...

  8. KNN算法原理及编程实现

    Author:shoupt-Johnson•smith 原创,转载者请注明来处 一:KNN算法概述: KNN算法又称之为K-最近邻算法.它是一种基本分类算法.其原理大致如下: 即一个样本在某个特征空间 ...

  9. KNN算法实现,(鸢尾花数据集分类)

    KNN算法实现实例 KNN算法 一,KNN算法概述 二,算法步骤 KNN算法的具体实现 一.数据获取 二.具体代码的实现 参考博客 KNN算法 一,KNN算法概述 knn算法,又叫k-近邻算法.属于一 ...

最新文章

  1. pytorch与keras_Keras vs PyTorch:如何通过迁移学习区分外星人与掠食者
  2. oracle可视化工具IB,oracle小记:dba_data_files
  3. 有人把机器学习的数学基础整理成了专辑(附下载 )
  4. python画圆简单代码-python实现画圆功能
  5. 打断点是什么意思_黄金走势分析?股票所说的大盘几千点,是指的什么意思
  6. 多项式加法c语言数组解,急!!!!c语言:求n次多项式的加法和乘法
  7. 我司那产品经理丨第四期
  8. python报数组越界_python数组越界
  9. C语言调用es6,ES6 箭头函数、普通函数、调用方法
  10. django 1.8 官方文档翻译: 2-1-3 模型元选项
  11. 大公司病?记改一个文字颜色的过程
  12. 熟练掌握如何设置空闲超时时间.
  13. linux mysql外网连接不成功的可能原因
  14. AWK学习笔记四:awk的环境变量
  15. 如何运行python代码将各个表格的信息集合在一起_如何利用Python编程批量处理Excel来提高日常工作效率!...
  16. linux 解压war到root_unzip命令解压war包方法
  17. 【名牌电脑制作隐藏分区与释放隐藏分区的方法】
  18. Nginx 405 not allowed
  19. 短信群发助手调试笔记
  20. 在PC下载微信视频号里面的视频

热门文章

  1. 【RuoYi-Vue-Plus】学习笔记 42 - Easy Excel(二)Excel 2007(*.xlsx)导入流程分析(源码)
  2. 定义一个Instrument(乐器)类,并使用共有的play()方法,再分别定义子类 管乐器 打击乐器 弦乐器,使用重写play方法,实现每种乐器的独特play方式。
  3. Scratch软件编程等级考试二级——20210626
  4. 人脸识别 —— insightface
  5. android旋转的列表,Android利用layer-list实现ProgressBar顺时针及逆时针旋转
  6. 【新塘N76E003】NU-LINK脱机烧写
  7. 小米android手机怎么刷机,刷机如此简单 小米手机四种刷机方法
  8. 2019年春运首日 上海三大火车站预计发送旅客35.9万人次
  9. 基于微信小程序的家教管理系统源码
  10. 来了!全球三个首次5G技术实现; 辽宁省完成5G投资36.4亿元; 中兴发布白皮书; 7月国内5G手机出货1391.1万...