KNN算法

K-Means算法

目标

确定某个元素所属的分类

将已存在的一系列元素分类

算法类别

监督的分类算法

无监督的聚类算法

数据区别

训练数据中,有明确的标签。

如:一个数据集中有几万张图片,都被打上了“苹果”的标签,另外还有几万张图片,被打上了“香蕉”的标签,数据是完全正确,知道结果的数据

几十万张各种各样水果的图片放一起,杂乱无章。

训练过程

无需训练(或者没有很明显的训练过程),将数据与训练数据直接对比

需要前期训练

K的含义

K指的是相邻数据的数目。

举个例子,假设某张图片相邻的20张图片中,有18张是打着“苹果”标签的数据,有1张是“香蕉”,1张是“樱桃”,那么这张图片的标签也是“苹果”。

那么在这个例子中,K就是20,20张相邻的图片。

K指的是分类的数目,人为设定好分为K个簇。

对比结果

K值不变的情况下,每次结果都是一样的。

K值确定后每次结果可能不同。

1、KNN算法,本质是一种数据统计的方法。

1.1欧几里得距离

欧几里得距离通俗来讲就是高中数学中直角坐标系求两点间的距离,二维公式:|x| = √( x2 + y2 )

1.2  距离计算

假设我们现在要对某张图片进行识别,大概是个怎样的思路呢(仅供理解,实际开发中更复杂)?

第一步,将图片黑白化(具体内容很多,这里就不纠结了)。

第二步,用0和1替换黑和白,如下图这就是一个“4”字:

第三步,上图可以看成是一个X行Y列的矩阵,把它变成1行N列的变量,类似于我们直角坐标系中的(X,Y)。

第四步,套用欧几里得度量公式,算出训练数据与当前数据的距离。

第五步,根据设置的K值,获取距离最近的K个变量,取当中出现频率最高的一个标签,假设是标签“4”出现频率最高。

第六步,那么当前数据就属于这个“4”这个标签。判断该图片里面的内容是数字4。

1.3  劣势

分类作为一种监督学习方法,要求必须事先明确知道各个类别的信息,并且断言所有待分类项都有一个类别与之对应。但是很多时候上述条件得不到满足,尤其是在处理海量数据的时候,如果通过预处理使得数据满足分类算法的要求,则代价非常大,这时候可以考虑使用聚类算法。

聚类属于无监督学习,相比于分类,聚类不依赖预定义的类和类标号的训练实例。

2、K-Means聚类算法----距离与相异度

在正式讨论聚类前,我们要先弄清楚一个问题:如何定量计算两个可比较元素间的相异度。用通俗的话说,相异度就是两个东西差别有多大,例如人类与章鱼的相异度明显大于人类与黑猩猩的相异度,这是能我们直观感受到的。但是,计算机没有这种直观感受能力,我们必须对相异度在数学上进行定量定义。

2.1  相异度计算

现在有两个变量,

其中X和Y各自具有n个可度量特征属性,那么X和Y的相异度定义为:

,其中R为实数域。也就是说相异度是两个元素对实数域的一个映射,所映射的实数定量表示两个元素的相异度。

这里又要提到之前说到的欧几里得距离:

例如,计算 X={2,1,102} 和 Y={1,3,2} 的相异度:

这里存在一个问题,就是取值范围大的属性对距离的影响高于取值范围小的属性

XY两个元素的第三个属性102和2的差值太大了,这样就导致相异度反映不够真实,为了解决这个问题,一般要对属性值进行规格化。

所谓规格化就是将各个属性值按比例映射到相同的取值区间,这样是为了平衡各个属性对距离的影响。通常将各个属性均映射到[0,1]区间,映射公式为:

其中max(ai)和min(ai)表示所有元素项中第i个属性的最大值和最小值。例如,将示例中的元素规格化到[0,1]区间后,就变成了X’={1,0,1},Y’={0,1,0},重新计算欧氏距离约为1.732。

2.2  聚类算法

所谓聚类,就是给定一个元素集合D,其中每个元素具有n个可观察属性,使用某种算法将D划分成k个子集,要求每个子集内部的元素之间相异度尽可能低,而不同子集的元素相异度尽可能高。其中每个子集叫做一个簇。

k均值算法的计算过程非常直观:

1、从D中随机取k个元素,作为k个簇的各自的中心。

2、分别计算剩下的元素到k个簇中心的相异度,将这些元素分别划归到相异度最低的簇。

3、根据聚类结果,重新计算k个簇各自的中心,计算方法是取簇中所有元素各自维度的算术平均数。

4、将D中全部元素按照新的中心重新聚类。

5、重复第4步,直到聚类结果不再变化。

6、将结果输出。

java k均值相异度计算_K-NN算法与K-Means算法的原理与区别(附带源码示例)相关推荐

  1. 如何在 R 中计算 Bray-Curtis 相异度

    Bray-Curtis Dissimilarity是一种衡量两个不同站点之间差异的方法. 它经常在生态学和生物学中用于量化两个地点在这些地点发现的物种的不同之处. 计算如下: BC ij = 1 – ...

  2. 各种类型的数据的相异度(相似度)的度量

    这个大家都懂,这里参考别人的文章,记录下来方便以后回看. 1.对于标量 标量也就是无方向意义的数字,也叫标度变量.现在先考虑元素的所有特征属性都是标量的情况.例如,计算X={2,1,102}和Y={1 ...

  3. 相似度和相异度、常用距离度量、余弦相似度

    通常,具有若干属性的对象之间的邻近度用单个属性的邻近度的组合来定义,因此我们首先讨论具有单个属性的对象之间的邻近度.考虑由一个标称属性描述的对象,对于两个这样的对象,相似意味什么呢?由于标称属性只携带 ...

  4. 数据对象与对象之间相似度与相异度的度量

    为方便起见,我们使用术语邻近度(proximity)表示相似性或相异性.由于两个对象之间的邻近度是两个对象对应属性之间的邻近度的函数. 我们首先介绍如何度量仅包含一个简单属性的对象之间的邻近度,然后考 ...

  5. 详解非局部均值滤波原理以及用MATLAB源码实现

    详解非局部均值滤波原理以及用MATLAB源码实现 序言 均值滤波.中值滤波.高斯滤波在滤除噪声的过程中,无可避免的使图像的边缘细节和纹理信息所被滤除.针对此问题,Buades[1]等人提出了非局部均值 ...

  6. c语言旅游系统,C语言计算旅行花费附带源码

    C语言计算旅行花费附带源码 来源:www.xysxzl.com时间:2021-03-01 10:56 旅游程序 国庆节桐桐一家想自驾旅游,目的地有北京.海南.云南等许多好玩的地方可选择,在已知汽车平均 ...

  7. java天眼培训_Java天眼大型分布式跟踪系统 附带源码_IT教程网

    资源名称:Java天眼大型分布式跟踪系统 附带源码 教程内容: APP: 接入skyeye-client的系统会通过kafkaAppender向kafka写入日志 es-indexer-group: ...

  8. 用python求解:用户分别输入外援半径和内圆半径,计算圆环的面积;及用户分别输入圆柱的底面圆半径和高,输出圆柱和表面积。(附带源码)

    用python求解:用户分别输入外援半径和内圆半径,计算圆环的面积:及用户分别输入圆柱的底面圆半径和高,输出圆柱和表面积.(附带源码) 纯分享一下平时练习题: 运算结果如下 源代码如下: import ...

  9. java计算机毕业设计HTML5“牧经校园疫情防控网站”设计与实现MyBatis+系统+LW文档+源码+调试部署

    java计算机毕业设计HTML5"牧经校园疫情防控网站"设计与实现MyBatis+系统+LW文档+源码+调试部署 java计算机毕业设计HTML5"牧经校园疫情防控网站& ...

最新文章

  1. hbuilder怎么设置网页的大小_大明:网页字体大小怎么调?教你方法一键搞定
  2. 网络事件触发自己主动登录
  3. scrapy中使用css选择器罗列下一级的所有标签
  4. 如何在Hadoop中控制MapReduce任务的数量
  5. mysql 银行卡卡号长度_卡bin查询sql分享
  6. 飞天侠淘宝客源码8.0终结版仿卷皮模板-免费开源
  7. 《广义动量定理与系统思考----战争…
  8. Homography 单应性变换详解
  9. 2018五大网络小说在线阅读APP推荐
  10. xy坐标转换经纬度C语言,(转载)经纬度与西安80,北京54的坐标系转换(C# 实现)...
  11. 在线图片处理api接口
  12. 案例|双循环下的国货自信:波司登抵御寒冬的新战袍
  13. DOTA数据集 | 数据前后处理操作系列
  14. Openlayers记录(七)利用ol3进行缓冲区的空间相交分析
  15. PyTorch载入预训练权重方法和冻结权重方法
  16. Nginx 配置问题 server directive is not allowed here in /etc/nginx/nginx.conf:69
  17. ArcMap关联图层并发布为服务
  18. UART BootROM
  19. 赠书:深入理解 Spring Cloud 与实战
  20. 毕设教程:基于嵌入式Linux和Qt实现的视频监控系统(Arm/树莓派/jetson)

热门文章

  1. FTP服务器主动被动模式详解
  2. 计算机二级怎么删除空行,计算机二级国考Word题删除空行的小贴士
  3. DHCP抓包-Wireshark分析
  4. 模型展UV的原则和快速展UV软件Rizom
  5. 华为DATACOM认证HCIE-891-部分试题解析-179题部分重复题目
  6. Miracast技术详解(三):RTP MPEG2-TS
  7. Android Miracast
  8. 中望CAD调用lisp在哪_中望CAD加载LISP程序
  9. 锐龙R5 3400G配什么主板
  10. Amlogic创建lunch