机器学习_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实现鸢尾花分类

相关推荐
蓝婷儿1 小时前
Python 机器学习核心入门与实战进阶 Day 1 - 分类 vs 回归
python·机器学习·分类
程序员阿超的博客3 小时前
Python 数据分析与机器学习入门 (八):用 Scikit-Learn 跑通第一个机器学习模型
python·机器学习·数据分析·scikit-learn·入门教程·python教程
xingshanchang4 小时前
PyTorch 不支持旧GPU的异常状态与解决方案:CUDNN_STATUS_NOT_SUPPORTED_ARCH_MISMATCH
人工智能·pytorch·python
reddingtons5 小时前
Adobe Firefly AI驱动设计:实用技巧与创新思维路径
大数据·人工智能·adobe·illustrator·photoshop·premiere·indesign
CertiK5 小时前
IBW 2025: CertiK首席商务官出席,探讨AI与Web3融合带来的安全挑战
人工智能·安全·web3
hn小菜鸡5 小时前
LeetCode 377.组合总和IV
数据结构·算法·leetcode
Deepoch6 小时前
Deepoc 大模型在无人机行业应用效果的方法
人工智能·科技·ai·语言模型·无人机
Deepoch6 小时前
Deepoc 大模型:无人机行业的智能变革引擎
人工智能·科技·算法·ai·动态规划·无人机
kngines6 小时前
【字节跳动】数据挖掘面试题0003:有一个文件,每一行是一个数字,如何用 MapReduce 进行排序和求每个用户每个页面停留时间
人工智能·数据挖掘·mapreduce·面试题
Binary_ey6 小时前
AR衍射光波导设计遇瓶颈,OAS 光学软件来破局
人工智能·软件需求·光学软件·光波导