参考视频与文献:

python与人工智能-KNN算法实现_哔哩哔哩_bilibili

机器学习——K近邻算法(KNN)及其python实现_清泉_流响的博客-CSDN博客_python实现knn

机器学习之KNN算法(python代码实现)_卷不动的程序猿的博客-CSDN博客_knn与随机森林对比python代码

k近邻法(k-nearest neighbor,k-NN)是一种基本分类与回归方法。

k近邻法的输入为实例的特征向量,对应于特征空间的点;输出为实例的类别,可以取多类。k近邻法假设给定一个训练数据集,其中的实例类别已定。分类时,对新的实例,根据其k个最近邻的训练实例的类别,通过多数表决等方式进行预测。因此,k近邻法不具有显式的学习过程。k近邻法实际上利用训练数据集对特征向量空间进行划分,并作为其分类的“模型”。k值的选择、距离度量及分类决策规则是k近邻法的三个基本要素。

此时K=3,待确定的样本寻找离它最近的三个样本

kNN(k-Nearest Neighbors,k近邻)是机器学习中非常基础的一种算法,算法原理简单而且容易实现,结果精度高,无需估计参数,无需训练模型,而且不仅可以用于分类任务,还可以应用到回归问题。作为开始学习机器学习的入门是一个很好的选择。

俗话说:近朱者赤,近墨者黑,物以类聚,人以群分。KNN算法就是这样。它使相同类别的样本在特征空间中聚集在一起。

分类时一般采用多数表决投票法,即训练集里和预测的样本特征最近的K个样本,预测为里面有最多类别数的类别。回归时,一般是选择平均法,即最近的K个样本的样本输出的平均值作为回归预测值。

简单来说就是计算输入数据D与所有样本点的距离,然后取最小的前k个样本的标签的统计即可。

如下图,现在有三种颜色的点分布在二维空间中,对应了分类任务中的训练样点的三个类别。现在我们希望推测图中黄色圆的那个点是属于那个类别,那么knn算法将计算该点与所有训练样点之间的距离,并且挑选出距离最小的k个样点(此处k=4,根据实际需要自定义),那么黄色点的类别将通过图中连接的4个点来判断。很明显,这4个点均为红色类别,那么黄色点被推测为红色类别。

同理,再看下图所示,此时这4个样本点包含了2个类别,针对这样的情况,knn算法通常采用投票法来进行类别推测,即找出k个样本点中类别出现次数最多的那个类别,因此黄色点的类型被推测为蓝色类别。

KNN算法的主要实现步骤:

  1. 计算测试数据与各训练数据之间的距离。
  2. 按照距离的大小进行排序。
  3. 选择其中距离最小的k个样本点。
  4. 确定K个样本点所在类别的出现频率。
  5. 返回K个样本点中出现频率最高的类别作为最终的预测分类。

K-Means与KNN

    初学者很容易把K-Means和KNN搞混,两者其实差别还是很大的。

    K-Means是无监督学习的聚类算法,没有样本输出;而KNN是监督学习的分类算法,有对应的类别输出。KNN基本不需要训练,对测试集里面的点,只需要找到在训练集中最近的k个点,用这最近的k个点的类别来决定测试点的类别。而K-Means则有明显的训练过程,找到k个类别的最佳质心,从而决定样本的簇类别。

    当然,两者也有一些相似点,两个算法都包含一个过程,即找出和某一个点最近的点。两者都利用了最近邻(nearest neighbors)的思想。

机器学习——K近邻算法(KNN)(K Nearest Neighbor)相关推荐

  1. 01 K近邻算法 KNN

    01 K近邻算法 KNN k近邻算法基础 等价于 scikit-learn中的机器学习算法封装 训练数据集,测试数据集 分类准确度 超参数 考虑距离权重 更多关于距离的定义 搜索明可夫斯基距离相应的p ...

  2. 基于KD树的K近邻算法(KNN)算法

    文章目录 KNN 简介 KNN 三要素 距离度量 k值的选择 分类决策规则 KNN 实现 1,构造kd树 2,搜索最近邻 3,预测 用kd树完成最近邻搜索 K近邻算法(KNN)算法,是一种基本的分类与 ...

  3. k近邻算法(KNN)-分类算法

    k近邻算法(KNN)-分类算法 1 概念 定义:如果一个样本在特征空间中的k个最相似(即特征空间中最邻近)的样本中的大多数属于某一个类别,则该样本也属于这个类别. k-近邻算法采用测量不同特征值之间的 ...

  4. k近邻算法 (KNN)

    k近邻算法 k近邻算法(KNN,K-NearestNeighbor)是一种基本分类和回归方法,监督学习算法,本质上是基于一种数据统计的方法: 核心思想:给定一个训练数据集,对新的输入实例,在训练数据集 ...

  5. k近邻算法之 k值的选择

    k近邻算法之 k值的选择 举例说明: K值过小:  [过拟合] ​ 容易受到异常点的影响   [如:美人鱼本身就是喜剧片,假如统计的时候记为动作片,则对预测值的影响太大] k值过大:  [欠拟合] ​ ...

  6. kNN算法(k近邻算法,k Nearest Neighbor)

    主要内容: 1.认识kNN算法 2.kNN算法原理 3.应用举例 4.kNN改进方法 1.认识knn算法 "看一个人怎么样,看他身边的朋友什么样就知道了",kNN算法即寻找最近的K ...

  7. 2 机器学习 K近邻算法(KNN) 学习曲线 交叉验证 手写数字识别

    机器学习 1 K-近邻算法介绍 1.1 分类问题 分类问题:根据已知样本的某些特征,判断一个未知样本属于哪种样本类别. 与回归问题相比,分类问题的输出结果是离散值,用于指定输入的样本数据属于哪个类别. ...

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

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

  9. 基于kd树的k近邻算法——KNN

    1.简介 k近邻算法是机器学习中一种基本的分类与回归算法,对你没听错k近邻算法不仅可以用来做分类,还可以用于回归,英文全称为k-Nearest Neighbor简称k-NN.k近邻算法属于一种有监督学 ...

  10. 一文搞懂K近邻算法(KNN),附带多个实现案例

    简介:本文作者为 CSDN 博客作者董安勇,江苏泰州人,现就读于昆明理工大学电子与通信工程专业硕士,目前主要学习机器学习,深度学习以及大数据,主要使用python.Java编程语言.平时喜欢看书,打篮 ...

最新文章

  1. 简单介绍CentOS6升级glibc操作步骤
  2. 转载:Beginning WF 4.0翻译——第四章(传递参数)
  3. java finally块_Java中的finally块是什么?
  4. Atitit.播放系统的选片服务器,包厢记时系统 的说明,教程,维护,故障排查手册p825...
  5. History of pruning algorithm development and python implementation(finished)
  6. rowdata java_Java RowDataUtil.addRowData方法代碼示例
  7. 搭建微服务_快速搭建 SpringCloud 微服务开发环境的脚手架
  8. python修改html的td_python3修改HTMLTestRunner,生成有截图的测试报告,并发送测试邮件(二)...
  9. acm的STL容器之队列篇 及 UVa 11292 - Dragon of Loowater 小根堆解法(贪心算法)
  10. windows之间自动传送文件
  11. 百度大脑语音能力引擎论坛定档 11.28,邀你一同解码 AI 语音的奥秘
  12. TimeSeriesChart按月进行统计时坐标对不齐的问题
  13. python基础2-数据及字符串知识学习
  14. rtp h264注意点(FU-A分包方式说明)
  15. C语言指针 与字符串的学习
  16. 在endnote中制作GB/T7714《文后参考文献著录规则》的输出格式 及 编辑Output Styles中特殊符号说明
  17. Struts2的OGNL表达式
  18. 下方点击出项上方对应的插件_魔兽世界MiDKP3.0插件使用说明
  19. Exif图片方向的一些发现
  20. 唯美手绘美女 性感蝴蝶天使 仙女 金发女郎

热门文章

  1. php生成超链接完整代码_PHP 超链接 抓取实现代码
  2. 波音公司用区块链打击GPS欺骗攻击
  3. 任务管理器中的PID找不到
  4. 小学四年级计算机制作月历教案,小学信息技术制作月历教学设计
  5. 爬取电影资源之应用下载篇
  6. 帅初:我为什么要做量子链?
  7. linux 平铺式桌面,Linux下5 个很酷的平铺窗口管理器
  8. 清华大学计算机在职研究生有用吗,清华大学在职研究生读出来有用吗?
  9. 安装pytorch_geometric
  10. 工具集合-脚本合并(Groovy)