from:https://www.cnblogs.com/bigmonkey/p/7387943.html

加权kNN

  上篇文章中提到为每个点的距离增加一个权重,使得距离近的点可以得到更大的权重,在此描述如何加权。

反函数

  该方法最简单的形式是返回距离的倒数,比如距离d,权重1/d。有时候,完全一样或非常接近的商品权重会很大甚至无穷大。基于这样的原因,在距离求倒数时,在距离上加一个常量:

  weight = 1 / (distance + const)

  这种方法的潜在问题是,它为近邻分配很大的权重,稍远一点的会衰减的很快。虽然这种情况是我们希望的,但有时候也会使算法对噪声数据变得更加敏感。

高斯函数

  高斯函数比较复杂,但克服了前述函数的缺点,其形式:

  其中a,b,c∈R

  高斯函数的图形在形状上像一个倒悬着的钟。a是曲线的高度,b是曲线中心线在x轴的偏移,c是半峰宽度(函数峰值一半处相距的宽度)。

半峰宽度

def gaussian(dist, a=1, b=0, c=0.3):return a * math.e ** (-(dist - b) ** 2 / (2 * c ** 2))

  上面的高斯函数在距离为0的时候权重为1,随着距离增大,权重减少,但不会变为0。下图是高斯函数和其它几个函数的区别,其它函数在距离增大到一定程度时,权重都跌至0或0以下。

计算过程

  加权kNN首先获得经过排序的距离值,再取距离最近的k个元素。

  1.在处理离散型数据时,将这k个数据用权重区别对待,预测结果与第n个数据的label相同的概率:

  2.在处理数值型数据时,并不是对这k个数据简单的求平均,而是加权平均:通过将每一项的距离值乘以对应权重,让后将结果累加。求出总和后,在对其除以所有权重之和。

  Di代表近邻i与待预测值x的距离,Wi代表其权重,f(x)是预测的数值型结果。每预测一个新样本的所属类别时,都会对整体样本进行遍历,可以看出kNN的效率实际上是十分低下的。

转载于:https://www.cnblogs.com/bonelee/p/9005816.html

k最邻近算法——加权kNN相关推荐

  1. 第7-3课:K 最邻近算法(KNN)与手写数字识别

    K 最近邻(KNN,K-Nearest Neighbor)算法是一类在数据挖掘领域常用的分类算法,该算法看似神秘,其实原理很简单,算法实现也很简单.KNN 算法在类别决策时,只参考极少量的相邻样本,也 ...

  2. 如何利用 C# 实现 K 最邻近算法?

    众所周知,电影可以按照题材分类,然而题材本身是如何定义的?由谁来判定某部电影属于哪个题材?也就是说同一题材的电影具有哪些公共特征?这些都是在进行电影分类时必须要考虑的问题.没有哪个电影人会说自己制作的 ...

  3. 机器学习3—分类算法之K邻近算法(KNN)

    K邻近算法(KNN) 一.算法思想 二.KNN类KNeighborsClassifier的使用 三.KNN分析红酒类型 3.1红酒数据集 3.2红酒数据的读取 3.3将红酒的数据集拆分为训练和测试集 ...

  4. 如何利用 C# + KDTree 实现 K 最邻近算法?

    在本篇图文中,我们一步步地构造使用 K 最邻近分类器的手写识别系统. 为了简单起见,这里构造的系统只能识别数字 0 到 9,如下图所示.需要识别的数字已经使用图形处理软件,处理成具有相同的色彩和大小, ...

  5. K邻近算法(K-NN)

    简单记录学习<统计学习方法>书中的k近邻模型. k近邻法(k-nearest neighbor,k-NN)是一种基本分类与回归方法. k邻近算法 k邻近算犯法简单.直观描述:给定一个训练数 ...

  6. K近临算法(KNN)

    什么是K近临算法 K近临算法是基于实例的学习算法,俗称KNN 什么是基于实例 基于实例的学习算法只是简单的把样例存储起来.把这些实例中泛化的工作推迟到必须分类的时候.每当学习器遇到一个新的实例时,它将 ...

  7. KNN算法及KNN的优化算法-加权KNN

    KNN及加权KNN优化算法 文章目录 KNN及加权KNN优化算法 深度学习的常规套路: K-近邻(KNN)算法: 超参数(距离): 调参-训练采用交叉验证: 附:KNN算法实例: KNN算法注意事项: ...

  8. K近邻法算法(KNN)及其R实现

    1. K近邻算法 输入:训练数据集 T={(x1,y1),(x2,y2),⋯,(xN,yN)} T=\{(x_1,y_1),(x_2,y_2),\cdots,(x_N,y_N)\} 其中, xi∈χ⊆ ...

  9. 《算法图解》----第十章:K最邻近算法

最新文章

  1. golang switch fallthrough
  2. php+方法返回多个参数,PHP中调用外部程序,及其参数与返回值
  3. 安装VM及在VM下安装Ghost XP系统图文教程,附PQ分区及VM共享教程 z
  4. [BZOJ1798][AHOI2009]Seq维护序列 线段树
  5. C++算法五:二分查找(折半)查找
  6. 如何通过“限制管理权限”来保护您的企业?
  7. DICOM通讯(ACSE->DIMSE->Worklist)
  8. 围堵iPhone 13
  9. GetData Graph Digitizer软件的使用方法
  10. 完全卸载exchange2010
  11. 怎样把可调DC-DC变身为数控稳压电源
  12. php fpm.conf 注释,php 中 php-fpm.conf
  13. 逐向双碳:绿色计算的误区与正确打开方式
  14. 2021年中国牛肉市场供需现状、进出口贸易及价格走势分析[图]
  15. 2014年优秀动画片推荐:马来西亚动画片《Ribbit》
  16. python下载视频工具
  17. 小A是大四的学生,还有半年就要毕业了
  18. 士兵队列训练问题 (队列)
  19. Unity帧率、屏幕刷新率
  20. IOTServiceSetup工具下载安装

热门文章

  1. win10右键闪退到桌面_【雷粉百科】windows10鼠标点击右键出现卡顿或者转圈
  2. 用-force –opengl 指令_苹果新系统ios14新功能汇总 轻点背面等小技巧怎么用
  3. linux 性能测试 antutu,除了安兔兔跑分,还有这6种办法能证明手机强弱
  4. html5指南针源码,《绝秘奉献》——最新超短线指南针!源码已放!(贴图 原码)...
  5. mysql 替代 in_mysql用什么代替in
  6. php的服务器变量$SERVER以及防止$_SERVER['PHP_SELF']造成的XSS漏洞攻击及其解决方案
  7. Java性能优化推荐书!RocketMQ消息丢失场景及解决办法
  8. Android性能优化面试题集锦,终局之战
  9. python【数据结构与算法】内置函数enumerate(枚举) 函数(看不懂你来打我)
  10. java-String StringBuffer