微信搜索:“二十同学” 公众号,欢迎关注一条不一样的成长之路

1. K-近邻算法

k-近邻算法(k Nearest Neighbor),是最基本的分类算法,其基本思想是采用测量不同特征值之间的距离方法进行分类。

2. 算法原理

存在一个样本数据集合(训练集),并且样本集中每个数据都存在标签(即每一数据与所属分类的关系已知)。输入没有标签的新数据后,将新数据的每个特征与样本集中数据对应的特征进行比较(计算距离),然后提取样本集中特征最相似数据(最近邻)的分类标签。一般会取前k个最相似的数据,然后取k个最相似数据中出现次数最多的标签(分类)最后新数据的分类。
因此,这是一个很“懒惰”的算法,所谓的训练数据并没有形成一个“模型”,而是一个新的数据需要分类了,去和所有训练数据逐一比较,最终给出分类。这个特征导致在数据量较大时,性能很差劲。

3. 算法过程

对未知类别属性的数据集中的每个点依次执行以下操作:
1)计算已知类别数据集中的点与当前点之间的距离(欧式距离、曼哈顿距离或者余弦夹角等各种距离算法,具体情况具体分析用哪种);
2)按照距离递增次序排序;
3)选取与当前点距离最小的k个点;
4)确定前k个点所在类别的出现频率;
5)返回前k个点出现频率最高的类别作为当前点的预测分类。

欧氏距离计算:

  1. 二维平面上两点A(x1,y1)与B(x2,y2)间的欧氏距离:
      

  2. 三维空间两点A(x1,y1,z1)与B(x2,y2,z2)间的欧氏距离:
      

  3. n维空间两点的欧式距离以此类推

4. 计算案例

我还是瞎编一个案例,下表有11个同学的小学成绩和12年后读的大学的情况,现在已知“卫”同学的小学成绩了,可以根据kNN来预测未来读啥大学。

逐一计算各位同学与卫同学的距离,然后我们选定3位(即这里的k=3)最为接近的同学,推测卫同学最终的大学

3位同学中2个清华,1个北邮,所以卫同学很有可能在12年后上清华。

5. 算法要点

1) K的选择,一般不超过训练集数量的平方根
2)距离更近的近邻也许更应该决定最终的分类,所以可以对于K个近邻根据距离的大小设置权重,结果会更有说服力
3)如果采用欧氏距离计算,不同变量间的值域差距较大时,需要进行标准化,否则值域较大的变量将成为最终分类的唯一决定因素

非常感谢:点赞收藏评论

微信搜索:“二十同学” 公众号,或者直接扫一扫,关注一条不一样的成长之路

数据挖掘-K-近邻算法相关推荐

  1. K近邻算法KNN的简述

    什么是KNN K近邻算法又称KNN,全称是K-Nearest Neighbors算法,它是数据挖掘和机器学习中常用的学习算法,也是机器学习中最简单的分类算法之一.KNN的使用范围很广泛,在样本量足够大 ...

  2. chapter2 机器学习之KNN(k-nearest neighbor algorithm)--K近邻算法从原理到实现

    一.引入 K近邻算法作为数据挖掘十大经典算法之一,其算法思想可谓是intuitive,就是从训练集里找离预测点最近的K个样本来预测分类 因为算法思想简单,你可以用很多方法实现它,这时效率就是我们需要慎 ...

  3. 【白话机器学习】算法理论+实战之K近邻算法

    作者1. 写在前面 如果想从事数据挖掘或者机器学习的工作,掌握常用的机器学习算法是非常有必要的,在这简单的先捋一捋, 常见的机器学习算法: 监督学习算法:逻辑回归,线性回归,决策树,朴素贝叶斯,K近邻 ...

  4. 机器学习-分类之K近邻算法(KNN)原理及实战

    k近邻算法(KNN) 简介 KNN算法是数据挖掘分类技术中最简单的方法之一.它通过测量不同特征值之间的距离进行分类的.其基本思路为:如果一个样本在特征空间中的k个最近邻样本中的大多数属于某一个类别,则 ...

  5. 基于k近邻算法的干豆品种分类

    摘 要 近年来,干豆由于其较高的营养价值和良好的口感越来越受到人们的欢迎.其种类繁多且易于种植,是世界食用作物中产量最高的一种.干豆品种分类对干豆培育方向.产量需求和品质改良具有重要意义.本文以k近邻 ...

  6. 从K近邻算法、距离度量谈到KD树、SIFT+BBF算法

    原文出自:http://blog.csdn.net/v_JULY_v/article/details/8203674 前言 前两日,在微博上说:"到今天为止,我至少亏欠了3篇文章待写:1.K ...

  7. 【转】从K近邻算法、距离度量谈到KD树、SIFT+BBF算法

    最近在看<统计学习方法>,发现这么一篇好文章,与大家分享 转自:http://blog.csdn.net/v_july_v/article/details/8203674?reload 前 ...

  8. k近邻算法_【白话机器学习】算法理论+实战之K近邻算法

    1. 写在前面 如果想从事数据挖掘或者机器学习的工作,掌握常用的机器学习算法是非常有必要的,在这简单的先捋一捋, 常见的机器学习算法: 监督学习算法:逻辑回归,线性回归,决策树,朴素贝叶斯,K近邻,支 ...

  9. 白话机器学习算法理论+实战之K近邻算法

    1. 写在前面 如果想从事数据挖掘或者机器学习的工作,掌握常用的机器学习算法是非常有必要的,比如我之前写过的一篇十大机器学习算法的小总结,在这简单的先捋一捋, 常见的机器学习算法: 监督学习算法:逻辑 ...

  10. 【机器学习入门】(1) K近邻算法:原理、实例应用(红酒分类预测)附python完整代码及数据集

    各位同学好,今天我向大家介绍一下python机器学习中的K近邻算法.内容有:K近邻算法的原理解析:实战案例--红酒分类预测.红酒数据集.完整代码在文章最下面. 案例简介:有178个红酒样本,每一款红酒 ...

最新文章

  1. 二、JavaScript语言--JS基础--JavaScript进阶篇--DOM对象 控制HTML元素
  2. [转]NS2添加多接口
  3. vue 计算属性和data_vue之watch和计算属性computed
  4. java基础---System类
  5. iris数据_MAT之ELM:ELM实现鸢尾花(iris数据集)种类测试集预测识别正确率(better)结果对比...
  6. linux查看文件大小和查看磁盘使用情况
  7. 1命名规则 sentinel_Alibaba Sentinel 规则参数总结
  8. php新窗口打开链接,wordpress如何设置在新窗口打开链接
  9. HDU2093 考试排名【排序】
  10. windows Hadoop环境搭建之一---软件准备
  11. JS规则 是非颠倒(逻辑非操作符)!是逻辑非操作符,也就是不是的意思,非真即假,非假即真...
  12. 5 重启应用_5种方法教你解除 iPhone在流量环境下,无法下载超过150M的限制!
  13. 解决浏览器主页被2345篡改
  14. 无线数字DR平板探测器维修瓦里安PaxScan 4030X分析
  15. MATLAB可以使用但是使用help函数报错问题的解决
  16. Codeforces 715A Plus and Square Root
  17. K-Means(K均值聚类)原理及代码实现
  18. 自学SQL网习题题解:0-12(带内容解析!)
  19. 记录道编程题,估计是python的,用java再写。排序
  20. 陌生人社交的一路羁绊——垃圾用户

热门文章

  1. 在线引用最新jquery文件方法
  2. 入职快手半年工作小结
  3. <<计算机操作系统(慕课版)>>第五章参考答案
  4. 记一次开发环境redis出现key丢失排查
  5. 360修改注册表.html,求360急速浏览器更改主页的批处理或者注册表!
  6. 云计算运维工程师前景怎么样?
  7. C# LINQ标准查询操作符
  8. 小程序笔记(四)发表评论或者普通发帖
  9. 如何查看计算机在广域网的地址,如何知道本机当前局域网IP地址和广域网IP地址...
  10. Android——下载apk文件,并在通知栏显示下载进度