KNN算法介绍

KNN算法介绍

文章目录

一、介绍

KNN(K- Nearest Neighbor)法即K最邻近法,最初由 Cover和Hart于1968年提出,是最简单的机器学习算法之一,属于有监督学习中的分类算法。算法思路简单直观:分类问题:如果一个样本在特征空间中的K个最相似(即特征空间中最邻近)的样本中的大多数属于某一个类别,则该样本也属于这个类别。KNN是分类算法。

二、原理

2.1 K值取几个最近的邻居数据来判断分类

牛马哥在这里呈上KNN分类算法最经典的图片,用三角形、圆形和矩形这种最少儿的图片来解释

KNN算法介绍

图上前提解释:假设x和y是我们这次的特征值,绿色的矩形是我们想要预测的数据,图上的三角形和圆形是我们已知的数据集,我们需要通过现有的数据集来判断绿色矩形是三角形还是圆形。

当K = 3,代表选择离绿色矩形最近的三个数据,发现三个数据中三角形比较多,所以矩形被分类为三角形

当K = 5,代表选择离绿色矩形最近的三个数据,发现五个数据中圆形最多,所以矩形被分类为圆形

所以K值很关键,同时建议k值选取奇数。

; 2.2 距离问题

在上面的原理中还有一个关键问题,就是怎么判断距离是否最近。在这里采用的是欧式距离计算法:

下图是在二维的平面来计算的,可以当作是有两个特征值

KNN算法介绍

那如果遇到多特征值的时候,KNN算法也是用欧式距离,公式如下:

KNN算法介绍

从这里就能看出KNN的问题了,需要大量的存储空间来存放数据,在高维度(很多特征值输入)使用距离的度量算法,电脑得炸哈哈,就是极其影响性能(维数灾难)。而且如果要预测的样本数据偏离,会导致分类失败。

优点也是有的,如数据没有假设,准确度高,对异常点不敏感;理论成熟,思想简单。

三.KNN特点

从别人的博客看到的,挺好的。原文链接:https://blog.csdn.net/weixin_45014385/article/details/123618841

KNN是一种非参的,惰性的算法模型。什么是非参,什么是惰性呢?

非参的意思并不是说这个算法不需要参数,而是意味着这个模型不会对数据做出任何的假设,与之相对的是线性回归(我们总会假设线性回归是一条直线)。也就是说KNN建立的模型结构是根据数据来决定的,这也比较符合现实的情况,毕竟在现实中的情况往往与理论上的假设是不相符的。

惰性又是什么意思呢?想想看,同样是分类算法,逻辑回归需要先对数据进行大量训练(tranning),最后才会得到一个算法模型。而KNN算法却不需要,它没有明确的训练数据的过程,或者说这个过程很快。

会得到一个算法模型。而KNN算法却不需要,它没有明确的训练数据的过程,或者说这个过程很快。

总结,KNN模型就是暴力将预测值和模型中的数据进行距离计算,然后通过最近的数据进行分类。

Original: https://blog.csdn.net/weixin_58512942/article/details/125669895
Author: 牛马哥
Title: KNN算法介绍

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/715884/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球