摘要:K近邻(k-NearestNeighbor,K-NN)算法是一个有监督的机器学习算法,也被称为K-NN算法,由Cover和Hart于1968年提出,可以用于解决分类问题和回归问题。

1. 为什么要学习k-近邻算法

k-近邻算法,也叫KNN算法,是一个非常适合入门的算法

拥有如下特性:

● 思想极度简单

● 应用数学知识少(近乎为零)

● 对于各位开发者来说,很多不擅长数学,而KNN算法几乎用不到数学专业知识

● 效果好

○ 虽然算法简单,但效果出奇的好

○ 缺点也是存在的,后面会进行讲解

● 可以解释机器学习算法使用过程中的很多细节问题

○我们会利用KNN算法打通机器学习算法使用过程,研究机器学习算法使用过程中的细节问题

● 更完整的刻画机器学习应用的流程

○ 对比经典算法的不同之处

○ 利用pandas、numpy学习KNN算法

2. 什么是K-近邻算法

上图中的数据点是分布在一个特征空间中的,通常我们使用一个二维的空间演示

横轴表示肿瘤大小,纵轴表示发现时间。

恶性肿瘤用蓝色表示,良性肿瘤用红色表示。

此时新来了一个病人

如上图绿色的点,我们怎么判断新来的病人(即绿色点)是良性肿瘤还是恶性肿瘤呢?

k-近邻算法的做法如下:

取一个值k=3(此处的k值后面介绍,现在大家可以理解为机器学习的使用者根据经验取得了一个经验的最优值)。

k近邻判断绿色点的依据就是在所有的点中找到距离绿色点最近的三个点,然后让最近的点所属的类别进行投票,我们发现,最近的三个点都是蓝色的,所以该病人对应的应该也是蓝色,即恶性肿瘤。

本质:两个样本足够相似,那么他们两个就具有更高概率属于同一个类别。

但如果只看一个,可能不准确,所以就需要看K个样本,如果K个样本中大多数属于同一个类别,则被预测的样本就很可能属于对应的类别。这里的相似性就依靠举例来衡量。

这里我再举一个例子

● 上图中和绿色的点距离最近的点包含两个红色和一个蓝色,此处红色点和蓝色点的数量比为2:1,则绿色点为红色的概率最大,最后判断结果为良性肿瘤。

● 通过上述发现,K近邻算法善于解决监督学习中的分类问题

点击关注,第一时间了解华为云新鲜技术~

最新文章

  1. 浅谈Service层为何要有接口
  2. 使用.NET实现断点续传
  3. AfxMessageBox和MessageBox区别
  4. HDU 1533 最小费用最大流(模板)
  5. Java—接口与抽象类
  6. 我的第一个chrome扩展(1)——读样例,实现时钟
  7. 防暴力破解 Fail2Ban之python
  8. Linux_异常_08_本机无法访问虚拟机web等工程
  9. 英语口语练习系列-C15-心情不好
  10. mysql密码遗失
  11. 如何给php数组添加元素
  12. rest-framework的认证组件
  13. junit 基础使用
  14. 【Mysql】MySQL event 计划任务
  15. ajax-》post
  16. Java并发-多线程面试(全面)
  17. 暴破助攻提权:ruadmin
  18. 为ElasticSearch添加HTTP基本认证
  19. UVALive 5066 Fire Drill BFS+背包
  20. IntelliJ IDEA部署tomcat时Edit Configuration无artifact选项

热门文章

  1. spring in action-note-2
  2. ACMer不得不会的线段树,究竟是种怎样的数据结构?
  3. Python3基础——字符串类型
  4. JVM内存布局(又叫Java运行时数据区)
  5. 基于Intel x86 Android的RAD游戏开发
  6. Swoole实时任务异步调用Demo
  7. 试用 Azure Sql 数据库
  8. .net c#后台请求接口
  9. pytest文档47-allure报告添加用例失败截图
  10. 数据查询语句:DQL(Data Query Language)