最近工作中用到求邻近点的方法,于是用上了knn.


KNN概述
邻近算法,或者说K最近邻(kNN,k-NearestNeighbor)分类算法是数据挖掘分类技术中最简单的方法之一。所谓K最近邻,就是k个最近的邻居的意思,说的是每个样本都可以用它最接近的k个邻居来代表。
KNN是通过测量不同特征值之间的距离进行分类。它的思路是:如果一个样本在特征空间中的k个最相似(即特征空间中最邻近)的样本中的大多数属于某一个类别,则该样本也属于这个类别,其中K通常是不大于20的整数。KNN算法中,所选择的邻居都是已经正确分类的对象。该方法在定类决策上只依据最邻近的一个或者几个样本的类别来决定待分样本所属的类别。
算法的优点:
1.简单,易于理解,易于实现,无需估计参数,无需训练
2.适合对稀有事件进行分类(例如当流失率很低时,比如低于0.5%,构造流失预测模型)
3.特别适合于多分类问题(multi-modal,对象具有多个类别标签),例如根据基因特征来判断其功能分类,kNN比SVM的表现要好
算法的不足:
1.当样本不平衡时,如一个类的样本容量很大,而其他类样本容量很小时,有可能导致当输入一个新样本时,该样本的K个邻居中大容量类的样本占多数。 该算法只计算“最近的”邻居样本,某一类的样本数量很大,那么或者这类样本并不接近目标样本,或者这类样本很靠近目标样本。无论怎样,数量并不能影响运行结果。可以采用权值的方法(和该样本距离小的邻居权值大)来改进。
2.计算量较大,因为对每一个待分类的文本都要计算它到全体已知样本的距离,才能求得它的K个最近邻点。目前常用的解决方法是事先对已知样本点进行剪辑,事先去除对分类作用不大的样本。该算法比较适用于样本容量比较大的类域的自动分类,而那些样本容量较小的类域采用这种算法比较容易产生误分。
3. 懒惰算法,对测试样本分类时的计算量大,内存开销大,评分慢

相关代码

def knn(src,dst):neigh = NearestNeighbors(n_neighbors=1)neigh.fit(src[:,0:2]) #模板点distances, indices = neigh.kneighbors(dst[:,0:2]) #求取距离与索引for i,dis in enumerate(distances):# if dis <0.02 and abs(dst[i,2]-src[indices[i],2])>0.005:dst[i,2]=src[indices[i],2]

// Mat ind, dis;
// cv::flann::Index Kdtree;
// Kdtree.build(pc1, cv::flann::KDTreeIndexParams(1), cvflann::FLANN_DIST_EUCLIDEAN);
// Kdtree.knnSearch(PC, ind, dis, 1, cv::flann::SearchParams(-1));

KNN(k-NearestNeighbor)相关推荐

  1. 7、KNN(K近邻)

    KNN(K最近邻算法) 1.KNN行业应用: 比如文字识别,面部识别:预测某人是否喜欢推荐电影(Netflix):基因模式识别,比如用于检测某中年疾病:客户流失预测.欺诈侦测(更适合于稀有事件的分类问 ...

  2. KNN(K最近邻)分类算法_糖潮丽子的博客

    申明:文章内容是作者自己的学习笔记,教学来源是开课吧讲师梁勇老师. 讲师介绍:梁老师 <细说Java>与<Java深入解析>图书作者.一线互联网资深数据分析专家,超过十年软件开 ...

  3. 用spss实现KNN(K近邻)算法

    http://www.17bigdata.com/%E5%BA%94%E7%94%A8-ibm-spss-statistic-%E7%9A%84%E6%9C%80%E8%BF%91%E9%82%BB% ...

  4. 机器学习基础 KNN(K近邻)算法及sklearn的基本使用(附带一些基础概念)

    文章目录 一. K-近邻算法简介 1. 什么是K-近邻算法 1.1 K-近邻算法(KNN)概念 1.2 电影类型分析 1.3 KNN算法流程总结 2. 小结 二.K近邻算法api初步使用 1. Sci ...

  5. KNN(K Nearest Neighbors)分类是什么学习方法?如何或者最佳的K值?RadiusneighborsClassifer分类器又是什么?KNN进行分类详解及实践

    KNN(K Nearest Neighbors)分类是什么学习方法?如何或者最佳的K值?RadiusneighborsClassifer分类器又是什么?KNN进行分类详解及实践 如何使用GridSea ...

  6. KNN 最近邻算法(K近邻)

    机器学习教程 正在计划编写中,欢迎大家加微信 sinbam 提供意见.建议.纠错.催更. KNN(K-Nearest Neighbor)是机器学习入门级的分类算法,也是最为简单的算法.它实现将距离近的 ...

  7. 【图像处理】图像噪声去除实验 用 matlab 实现KNN(K近邻平滑滤波器)和 SNN(对称近邻平滑滤波器)

    实验内容 实现KNN(K近邻平滑滤波器) 算法实现为函数[im]=KNN_denoise (I,K,N),其中I为读入的图像矩阵:K为最近邻个数,N为模板大小参数(N*N). 测试代码 im=imre ...

  8. KNN(K最近邻算法)的详细介绍

    KNN(最近邻算法)的最详细介绍 一.KNN算法的基本介绍 二.KNN算法的基本思想 三.基于sklearn实现KNN(基于iris数据) 四.非基于sklearn实现KNN(基于iris数据) 五. ...

  9. KNN(k近邻详解)

    KNN(k近邻详解) 详细链接一 详细链接二 一句话说明白KNN算法原理 下面我们只讲关于分类的KNN,回归的不讲. 其实很简单,就是计算你要预测的点的周围最近的K个点,然后取这k个点中最多的类定义为 ...

  10. 机器学习实战(一)k-近邻kNN(k-Nearest Neighbor)

    目录 0. 前言 1. k-近邻算法kNN(k-Nearest Neighbor) 2. 实战案例 2.1. 简单案例 2.2. 约会网站案例 2.3. 手写识别案例 学习完机器学习实战的k-近邻算法 ...

最新文章

  1. 扩增子分析解读1质控,实验设计,双端序列合并
  2. go语言设计模式 - 建造者模式
  3. 神州易桥财税 java项目经理_【高级项目经理(体系运营)职责】2021年燕园财税高级项目经理(体系运营)岗位职责-看准网...
  4. Windows下安装MySQL压缩zip包
  5. 【文本信息抽取与结构化】目前NLP领域最有应用价值的子任务之一
  6. Codewars-Javascript训练手册:正则表达式(Regular Expressions)
  7. WPF圆角按钮与触发颜色变化
  8. 做项目时的几个感慨(持续更新...)
  9. 微软首款 Office 应用程序登陆 Linux
  10. 小学五年级计算机进度安排,苏教版小学五年级信息技术教学计划及进度安排.DOC...
  11. P1640 [SCOI2010]连续攻击游戏
  12. 清华学霸组团的工业 AIoT 创企再获数千万融资:玩家应推动在边缘 AI 芯片上跑算法...
  13. bobsmith电路阻抗原理_串联谐振原理全解析 - 赫兹电力
  14. 计算机课程设计评分表,课程设计的评分标准.doc
  15. ESP8266 MQTT
  16. Java十二平均律判断
  17. 哪些深度相机有python接口_三种主流深度相机介绍
  18. 基于Springboot外卖系统13:实现文件上传下载模块
  19. Java+Swing聊天室
  20. 【微信小程序】零基础学 | 小程序语法

热门文章

  1. Servlet 服务器端小程序
  2. DBA入门之路:由浅入深的总结学习法
  3. AJAX 一些常用方法
  4. 初识Quartz(三)
  5. 刚子扯谈:微信 今天你打飞机了嘛吗?
  6. 基于WinCE的I2C驱动程序设计
  7. 数据通信技术(二:交换机配置管理)
  8. 多键开关 android8.0,手机桌面多键开关(SwitchPro Widget )
  9. 新手参加java培训都学什么
  10. 连接服务器_命令行连接FTP服务器