机器学习_01_KNN

K近邻算法(K-Nearest Neighbors,KNN)

一、简介

  • KNN是一种**【监督学习算法】**

  • 能解决**【分类任务】**(标签离散)

  • 能解决**【回归任务】**(标签连续)

核心思想

一个样本的类别,由它最近的K个邻居投票决定


二、算法思想

KNN不学任何公式,它只是记住所有训练数据,然后对新来的样本,看它周围最近的K个邻居是什么类别,就跟着投个票。

具体三步

步骤 操作 说明
1 计算距离 新样本和训练集里每一个样本算距离(默认欧式距离)
2 找K个最近邻 按距离从小到大排序,取前K个
3 投票或平均 分类:K个邻居里,哪个类别多,新样本就是哪个类别 回归:K个邻居的标签值取平均,作为预测值

三、距离的度量

距离名称 公式 含义 使用场景
欧式距离 Σ(xᵢ - yᵢ)² 两点间直线距离 最常用(默认)
曼哈顿距离 Σ|xᵢ - yᵢ| 只能走横竖线的街区距离 偶尔用
切比雪夫距离 max(|xᵢ - yᵢ|) 国王移动的最少步数 很少用
闵氏距离 (Σ|xᵢ - yᵢ|^p)^(1/p) 上面三种的统一公式 理论用
其他 余弦距离等 --- 文本场景偶尔用

四、特征的预处理

⚠️ KNN必须做标准化/归一化

原因:KNN靠距离判断。如果特征单位不统一,数值大的特征会主导距离计算,导致预测结果完全被它绑架。


五、K值的选择

K值情况 训练集表现 测试集表现 问题 形象理解
太小(如K=1) 满分 过拟合(学到噪声) 只听一个邻居的话,容易被骗
太大(如K=N) 欠拟合(太模糊) 听全村人的话,反而没主见
合适(如K=3~15) 良好 最好 泛化最佳 听几个靠谱邻居的建议

六、找最佳K

交叉验证

不把命运交给一次验证集,而是把训练数据分成K份,轮流当验证集。

网格搜索

你给几个候选K值(如[3,5,7,9,11]),网格搜索挨个试,交叉验证评估,最后告诉你哪个K值最好。


七、面试总结

KNN是一种基于距离的惰性学习算法,通过找最近的K个邻居来投票(分类)或平均(回归)。

工作原理三步
  1. 算距离(默认欧式距离)

  2. 找K个最近邻

  3. 分类投票,回归平均

核心三要素
要素 说明 关键点
K值 邻居数量 太小过拟合,太大欠拟合 → 用交叉验证+网格搜索选
距离度量 距离计算方式 默认欧式距离
特征预处理 数据标准化 必须标准化/归一化(否则距离被大数值特征绑架)
优缺点
优点 缺点
简单直观,无需训练 预测时慢(要算所有样本的距离)
可解释性强(看邻居) 内存消耗大(要记住所有训练数据)
可用于分类+回归 特征维度高时性能急剧下降(维度灾难)
对异常值不敏感(K足够大时) 必须做特征预处理

KNN适合小数据集、低维度、可解释性要求高的场景。数据量大或维度高时,优先考虑树模型或其他非线性算法。


我是小迦索,一个刚毕业的AI专业学长。 关注我,从0开始,一起走进AI大模型的世界。

相关推荐
计算机魔术师32 分钟前
Karpathy:用语音与LLM长谈可提升理解效率
人工智能·ai编程
甲维斯1 小时前
我要开始吹牛逼了!Kimi K3 “宇宙无敌”!
前端·人工智能
周末程序猿1 小时前
图解 120 个大语言模型(LLM)核心概念(61-90)
人工智能
科技圈快迅1 小时前
游戏投影仪和普通投影仪区别是什么?2026游戏投影仪测评
人工智能
陆枫Larry2 小时前
CPU 和 GPU 的核心区别与适用场景
人工智能
Aa99883342 小时前
AI视觉检测设备厂家的技术选型框架——密封件和磁材的缺陷分类与光学成像原理
人工智能
吴佳浩2 小时前
今天我们讲讲大模型的“核心”技术:蒸馏(Model Distillation)
人工智能·llm·agent
阿里云大数据AI技术2 小时前
阿里云 ES AI 引擎版:面向 Agent 场景,为亿级租户、千亿规模向量设计的搜索引擎
人工智能·elasticsearch·agent
郭小铭2 小时前
[开源] 做了一个本地优先的多 Agent 市场研究桌面:Evidence Loom
人工智能