0 前言

KNN算法是由Cover和Hart在1968年提出的使用邻居信息构建最近邻图来做分类的算法,它是机器学习中常用且简单的分类算法。它的核心主要包括三个要素:k值的选择、距离计算、分类规则,主要弄懂了这三个要素便能上手KNN算法了。

1 工作原理概述

首先,你得理解KNN算法的工作原理:假如我们有一堆的二维数据点(多维的也是可以,用二维方便举例),将这些点描绘在一个二维平面图上(如下图,五角星为一类,圆圈也为一类)。KNN算法原理
现在我们有一个新样本需要我们去预测,也将它画到图中(如下图的三角形),然后计算离他最近k个样本点,每个类别个数。比如k取5的时候,找到离它最近的5个样本(假设是圈出来的五个),计算这5个邻居样本点各类点个数:五角星为4个、圈圈为1个,所以三角形这个新样本预测为五角星类别!!!
KNN算法原理

2 K值的选择

对于k值的选取会直接影响模型的好坏,一般我们通过会通过交叉验证方法来选择合适的k值(k是奇数,如果是偶数,两者样本一样多讲无法判断属于哪个类别)。当k值越小过拟合风险就越大(比如k取1时,新样本最接近哪个样本类别就被分为哪个类别,就像长头发是女的,那么以后模型只要遇到新样本中是长头发它都会被预测为女的(有些男的也长有长头发,所以会预测错误));当k越大时欠拟合风险就越大(比如你训练样本一共就1000条,k也取1000的话,那么无论新样本是什么,它的取值都会固定(为什么会固定,自己好好想一想!))。

3 距离的计算

在前面我们说取离新样本点的k个样本点,那么我们怎么知道那几个样本点离新样本最近呢?所以这就需要用到距离计算,一般来说最常用的是欧氏距离,这种距离计算方法我们在高中还是初中就应该学过了。假设我们要计算两个样本(x1,x2)、(y1,y2)的距离d,它的计算公式为:KNN算法原理
当我们样本不止二维的时候,两个样本变成n维:(x1,x2,x3,…,xn)、(y1,y2,y3,…,yn),那么计算公式可以写为:KNN算法原理

4 分类规则

在KNN中的分类规则是非常简单的,一般采用的是多数表决法,即k个近邻样本中哪个类别的个数比较多就分为哪类。

相关文章:

  • 2022-12-23
  • 2021-04-18
  • 2022-12-23
  • 2022-01-03
  • 2021-05-01
  • 2021-11-01
  • 2021-09-22
  • 2021-09-26
猜你喜欢
  • 2021-12-12
  • 2021-04-29
  • 2022-01-05
  • 2022-03-09
  • 2021-11-19
相关资源
相似解决方案