机器学习

K近邻算法(KNN)

KNN分类监督学习距离度量
一句话摘要

一种直观的监督学习算法:给新数据找K个最近的邻居,用邻居的"投票"决定分类结果。

KNN的基本思想

K近邻算法(K-Nearest Neighbors)的核心思想非常简单:物以类聚

要判断一个新样本的类别,就看它周围最近的K个邻居大多数属于哪个类别,新样本就归为哪个类别。

举个例子

假设要判断一部电影是"动作片"还是"爱情片"。已知数据中,打斗场景多的是动作片,接吻场景多的是爱情片。对于一部新电影,找到与它最相似的5部电影(K=5),如果其中4部是动作片,1部是爱情片,那就把它归类为动作片。

KNN的工作流程

  1. 计算距离:计算新样本与所有训练样本的距离
  2. 找邻居:选取距离最近的K个训练样本
  3. 投票表决:K个邻居中哪个类别最多,新样本就属于哪个类别

K值的选择

  • K太小(如K=1):容易受噪声影响,过拟合
  • K太大(如K=N):失去分类意义,欠拟合
  • 常用做法:通过交叉验证选择最佳K值,通常选奇数避免平票

距离度量方法

最常用的是欧氏距离

两个点 (x₁, y₁) 和 (x₂, y₂) 之间的距离 = √((x₁-x₂)² + (y₁-y₂)²)

KNN的特点

优点缺点
简单直观,易于理解计算量大(需计算与所有样本的距离)
无需训练过程对数据规模敏感
适合多分类问题需要特征归一化

重要澄清:KNN是监督学习

虽然KNN没有显式的训练过程(不需要学习参数),但它依赖有标签的训练数据进行预测,因此属于监督学习。

KNN不适合做什么?

KNN基于距离做分类或回归,不适合发现商品之间的关联关系。例如"买了鸡蛋的人是否会买西红柿"这类问题,应该用关联规则挖掘算法(如Apriori),而不是KNN。

考试要点

  • KNN属于监督学习
  • 核心是距离计算和投票表决
  • K值选择影响模型效果
  • KNN不适合关联规则挖掘
微信二维码

扫码备注【NOAI】加交流群