You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

KNN算法工作原理解析及新样本分类实操问题咨询

帮你理清楚KNN的分类逻辑~

嘿,我明白刚接触KNN时容易搞不清它到底怎么运作,咱们就拿你给的例子一步步拆解清楚!

你的问题背景

你手头有这么一份带标签的数据集(每一行是「特征1 特征2 类别」):

  • 2 2 a
  • 3 5 a
  • 1 8 b
  • 3 16 b
  • 4 12 a

现在有个新样本 1 2,需要判断它属于a还是b,你已经用欧氏距离公式 sqrt((aNew-Ai)^2+(bNew-Bi)^2) 算出了新样本和每个旧样本的距离,我把这些数据整理成表格更清晰:

样本类型特征1特征2与新样本的距离类别
新样本12-?
旧样本1221,0a
旧样本2355,8a
旧样本3188,1b
旧样本431616,3b
旧样本541212,6a

KNN的核心逻辑:投票选邻居

KNN说白了就是找最近的几个邻居,看大多数邻居是什么类别,新样本就跟着是什么类别,核心步骤分3步:

1. 选个k值(邻居数量)

这是KNN最关键的参数,一般选奇数(避免出现平票的尴尬情况),比如咱们选k=3或者k=5来试试。

2. 按距离排序,挑最近的k个邻居

先把所有旧样本按和新样本的距离从小到大排个序:

  • 旧样本1(距离1,0,类别a)→ 最近
  • 旧样本2(距离5,8,类别a)→ 第二近
  • 旧样本3(距离8,1,类别b)→ 第三近
  • 旧样本5(距离12,6,类别a)→ 第四近
  • 旧样本4(距离16,3,类别b)→ 最远

3. 投票定类别

  • 如果选k=3:最近的3个邻居里,有2个a,1个b,投票结果是a
  • 如果选k=5:所有5个邻居里,有3个a,2个b,投票结果还是a

所以不管选k=3还是k=5,这个新样本都会被分类为a~

小补充:我注意到旧样本3(1,8)和新样本(1,2)的欧氏距离实际应该是6.0(因为x坐标相同,y差6),你算的8,1可能是手滑算错啦,但这不影响理解KNN的核心逻辑,重点是“找近邻投票”这个思路哦!

内容的提问来源于stack exchange,提问作者Jhon

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.26 10:23:03