机器学习_KNN算法

机器学习_KNN算法

K-近邻(K-Nearest Neighbors,简称KNN)算法是一种基本的机器学习分类和回归算法

其核心思想是:如果一个样本在特征空间中的k个最相似(即特征空间中最邻近)的样本中的大多数属于某一个类别,则该样本也属于这个类别

文章目录

  • 机器学习_KNN算法
    • [1. KNN算法的基本步骤](#1. KNN算法的基本步骤)
    • [2. KNN算法的关键参数](#2. KNN算法的关键参数)
    • [3. KNN算法的优缺点](#3. KNN算法的优缺点)
    • [4. KNN算法的应用场景](#4. KNN算法的应用场景)
    • [5. 示例:鸢尾花分类](#5. 示例:鸢尾花分类)

1. KNN算法的基本步骤

  • 计算距离:对于给定数据集中的每一个数据点,计算其与待分类数据点的距离(如欧氏距离、曼哈顿距离等)
  • 找到k个近邻:基于计算出的距离,找出与待分类数据点最近的k个数据点
  • 确定类别
    • 若为分类问题,根据这k个近邻的类别,通过多数投票(majority voting)的方式来预测待分类数据点的类别
    • 若为回归问题,待分类数据点的预测值通常是这k个近邻的平均值、中位数或其他统计量

2. KNN算法的关键参数

  • k值的选择:k值的选择对KNN算法的性能有很大的影响。较小的k值可能导致过拟合(即模型对训练数据过于敏感),而较大的k值可能导致欠拟合(即模型过于简单,无法捕捉到数据的细微变化);在实际应用中,通常通过交叉验证等方法来确定最优的k值

  • 距离度量:1

    • 欧式距离:

      对于两个数据点 ( x ) 和 ( y ),它们在 ( m ) 维空间中的坐标分别是 ( (x_1, x_2, ..., x_m) ) 和 ( (y_1, y_2, ..., y_m) ),则它们之间的欧氏距离 ( d(x, y) ) 定义为:
      d ( x , y ) = ∑ i = 1 m ( x i − y i ) 2 d(x, y) = \sqrt{\sum_{i=1}^{m} (x_i - y_i)^2} d(x,y)=i=1∑m(xi−yi)2

    • 曼哈顿距离:

      对于n维空间中的两个点A(x1, x2, ..., xn)和B(y1, y2, ..., yn),曼哈顿距离的计算公式为:
      d = ∣ x 1 − y 1 ∣ + ∣ x 2 − y 2 ∣ + . . . + ∣ x n − y n ∣ d = |x1 - y1| + |x2 - y2| + ... + |xn - yn| d=∣x1−y1∣+∣x2−y2∣+...+∣xn−yn∣

    • 切比雪夫距离:

      对于两个n维向量A(x1, x2, ..., xn)和B(y1, y2, ..., yn),它们之间的切比雪夫距离的计算公式为:
      d = m a x ( ∣ x 1 − y 1 ∣ , ∣ x 2 − y 2 ∣ , . . . , ∣ x n − y n ∣ ) d = max(|x1 - y1|, |x2 - y2|, ..., |xn - yn|) d=max(∣x1−y1∣,∣x2−y2∣,...,∣xn−yn∣)

3. KNN算法的优缺点

  • 优点 :
    • 原理简单,易于理解和实现
    • 无需估计参数,无需训练
    • 适合对稀有事件进行分类
  • 缺点
    • 当数据集很大时,计算量大,存储开销大
    • 对数据的局部结构非常敏感
    • 在决策分类时,k值的选取对结果的影响很大
    • 可解释性较差,无法给出像决策树那样的规则

4. KNN算法的应用场景

KNN算法由于其简单性和有效性,在许多领域都有广泛的应用,如文本分类、图像识别、推荐系统等

然而,由于其计算复杂度和对局部结构的敏感性,KNN算法可能不适用于大规模数据集或高维数据集;在这些情况下,可能需要使用更复杂的机器学习算法或降维技术来处理数据

5. 示例:鸢尾花分类

详见博主另一篇博客:KNN、NB、SVM实现鸢尾花分类

相关推荐
TracyCoder1233 分钟前
LeetCode Hot100(28/100)——104. 二叉树的最大深度
算法·leetcode
deep_drink3 分钟前
【基础知识二】彻底读懂拉普拉斯矩阵 (Laplacian)
人工智能·深度学习·线性代数·矩阵
垂钓的小鱼14 分钟前
保姆级最新OpenClaw(原 Clawdbot/Moltbot)安装指南,建立隧道,外网浏览器也能访问,并接入飞书,让AI在聊天软件里帮你干活
人工智能·飞书
sensen_kiss4 分钟前
Jupter Notebook 使用教程
大数据·人工智能·python·学习·数据分析
雨大王5126 分钟前
如何选择适合自己企业的工业智能体解决方案?
人工智能·汽车·制造
海绵宝宝de派小星10 分钟前
经典CNN架构:LeNet、AlexNet、VGG、GoogLeNet、ResNet
人工智能·神经网络·ai·cnn
Fleshy数模10 分钟前
深度学习入门:从神经网络构造到模型训练全解析
人工智能·深度学习·神经网络
多恩Stone12 分钟前
【3D-AICG 系列-3】Trellis 2 的O-voxel (下) Material: Volumetric Surface Attributes
人工智能·3d·aigc
执着25913 分钟前
力扣hot100 - 101、对称二叉树
数据结构·算法·leetcode
八月瓜科技15 分钟前
2026春晚机器人专利战:从舞台秀到资本竞逐的产业突围
大数据·人工智能·microsoft·机器人·娱乐