《机器学习》——KNN算法

第十章 KNN算法

K近邻算法(K-Nearest Neighbors,KNN)是一种基本的分类与回归方法,属于监督学习算法。

其核心思想是通过计算给定样本与数据集中所有样本的距离,找到距离最近的K个样本,然后根据这K个样本的类别或值来预测当前样本的类别或值。

工作原理

计算距离:计算待分类样本与训练集中每个样本的距离。

选择K个近邻:根据计算的距离,选择距离最近的K个样本。

投票或平均:

  • 分类任务:统计K个近邻各类别的数量,将待分类样本归为数量最多的类别。

  • 回归任务:取K个近邻的平均值作为预测结果。

关键参数

距离度量方法:选择合适的距离度量方法,常见的有欧氏距离、曼哈顿距离、切比雪夫距离、闵可夫斯基距离等。

K值:K值的选择对结果影响很大。

  • K值过小容易过拟合
  • K值过大则可能欠拟合。

优缺点

KNN优点:

  • 简单直观,易于理解和实现。

  • 无需训练过程,直接利用训练数据进行预测。

KNN缺点:

  • 计算量大,尤其是训练集较大时。

  • 对噪声数据较敏感。

归一化

将数据按比例缩放到一个固定范围(通常是[0,1]或[-1,1])

  • 消除量纲差异:不同特征的单位或量纲可能差异巨大(例如身高以米为单位,体重以千克为单位),归一化可消除这种差异,避免模型被大范围特征主导。
  • 加速模型收敛:对于梯度下降等优化算法,归一化后特征处于相近的尺度,优化路径更平滑,收敛速度更快。
  • 适配特定模型需求:某些模型(如神经网络、K近邻、SVM)对输入数据的范围敏感,归一化能显著提升其性能

标准化

将数据调整为均值为0、标准差为1的标准分布。

  • 适应数据分布:将数据转换为均值为0、标准差为1的分布,适合假设数据服从正态分布的模型(如线性回归、逻辑回归)。

  • 稳定模型训练:标准化后的数据对异常值的敏感度较低(相比归一化),鲁棒性更强。

  • 统一特征尺度:与归一化类似,标准化也能消除量纲差异,但更关注数据的统计分布而非固定范围。

相关推荐
张李浩6 小时前
Leetcode 054螺旋矩阵 采用方向数组解决
算法·leetcode·矩阵
luoganttcc7 小时前
自动驾驶 世界模型 有哪些(二)
人工智能·机器学习·自动驾驶
人工智能AI技术7 小时前
315曝光AI投毒!用C#构建GEO污染检测与数据安全防护方案
人工智能·c#
big_rabbit05027 小时前
[算法][力扣101]对称二叉树
数据结构·算法·leetcode
Hamm7 小时前
不想花一分钱玩 OpenClaw?来,一起折腾这个!
javascript·人工智能·agent
美好的事情能不能发生在我身上7 小时前
Hot100中的:贪心专题
java·数据结构·算法
_李小白7 小时前
【AI大模型学习笔记之平台篇】第二篇:Gemini
人工智能·音视频
2301_821700537 小时前
C++编译期多态实现
开发语言·c++·算法
一点一木7 小时前
🚀 2026 年 2 月 GitHub 十大热门项目排行榜 🔥
人工智能·github
xixihaha13248 小时前
C++与FPGA协同设计
开发语言·c++·算法