0
点赞
收藏
分享

微信扫一扫

机器学习【Kmeans-KNN-Meanshift】

求阙者 2024-11-08 阅读 5

在这里插入图片描述

什么是K均值聚类

K均值聚类(K means)是一种聚类算法,其详细介绍如下:

  1. 概念定义:以空间中的K个点为中心进行聚类,将最靠近中心的对象归为一类。它是聚类算法中基础且重要的算法,在无标签情况下自动对数据进行归类,应用广泛且使用方便。
  2. 数学原理:计算数据点和各个簇中心(区域中心)的距离,根据距离完成归类,即将数据点归到距离最近的区域。完成归类后,取区域内所有点的平均值作为新的中心点。例如,数据点(x_i)会根据与中心点(U_j)的距离判断所属类别,之后区域中心会更新为区域内点的平均值。
  3. 执行流程
    • 选择聚类的个数K,随机取K个中心点(初始位置随机)。
    • 计算每个点到中心点的距离,根据距离确定点所属类别。
    • 根据各类别数据更新聚类中心。
    • 重复计算距离和更新中心步骤,直到中心点不再变化。例如,先随机选两个中心点,计算点到中心距离并分类,更新中心后再次计算距离和分类,如此重复直至收敛。
  4. 优点:原理简单易懂,容易实现,运行速度快,参数少(主要参数为聚类个数K)。
  5. 缺点:需预先设定分类个数K;初始聚类中心较重要,不同的初始中心可能导致不同结果。

在这里插入图片描述

KNN(K近邻分类算法)属于监督式学习。其介绍如下:

  1. 算法定义:给定一个训练数据集,对新的输入实例,在原数据集中找到与之最邻近的K个实例(即K个邻居),根据这K个实例的多数所属类别来划分新实例的类别。例如,判断一个圆形属于方形还是三角形类别,若K = 3,找到周边最近的三个点,其中两个是红色三角形,一个是蓝色方形,多数类别为红色三角形,则该圆形被定义为红色三角形类别;若K = 5,找到五个点,其中三个方形,两个三角形,多数类别为方形,则该圆形属于方形类别。
  2. 与K均值聚类区别:KNN需要事先告知计算机每个数据的类别,这是它和K均值聚类(K means)最大的不同点。例如K均值聚类是基于无标签数据自动划分类别,而KNN是在已知数据类别标签的基础上进行分类。
  3. 算法特点及应用场景:KNN是机器学习中较为简单的算法之一,常用于分类任务,可根据数据点周围邻居的类别情况来确定新数据点的类别,适用于数据分布具有局部相似性且类别界限不太清晰的情况,能帮助找到数据的内在分类规律。

在这里插入图片描述

均值漂移聚类(mean shift)是一种基于密度梯度上升的聚类算法,常用于数据聚类任务,尤其适用于数据较多且不确定分类数量的情况。其主要内容如下:

  1. 定义与原理:沿着密度上升方向寻找聚类中心点。通过计算数据点与中心点的距离来确定偏移量,中心点根据偏移量不断移动,直到收敛。例如,以某点为中心,计算其与周围点的距离平均值作为偏移量,使中心移动,重复此过程。
  2. 算法流程
    • 随机选择未分类点作为中心点。
    • 计算中心点与周围点(半径为R的圆内)的距离,将这些点作为集合。
    • 根据距离计算中心点的偏移量,中心点移动。
    • 重复上述步骤,直到中心点不再移动,确定一个类别中心。
    • 对其他点重复以上操作,确定所有类别中心,根据每个点在各类别中的访问次数确定其所属类别。
  3. 特点与优势:无需提前给定分类数量K值,只需给定半径(半径也可计算),算法会自动找出合适的分类。能处理复杂形状的数据分布,找到数据中的自然聚类结构。
  4. 应用场景示例:在图像分割中,可根据像素点的密度分布自动划分图像区域;在数据分析中,对大量无先验分类信息的数据进行聚类分析,挖掘数据内在结构。

均值漂移聚类算法的优点和缺点如下:

优点

  • 自动确定类别数量:不需要提前给定分类数量K值,只需给定半径(半径也可计算),算法会自动找出合适的分类,能处理复杂形状的数据分布,找到数据中的自然聚类结构。例如在处理大量无先验分类信息的数据时,能自动根据数据密度分布确定聚类数量。
  • 对数据分布适应性强:基于密度梯度上升,沿着密度上升方向寻找聚类中心点,可适应不同形状和密度的数据分布情况,有效发现数据中的聚类模式。如在图像分割中,能根据像素点的密度分布自动划分图像区域。

缺点

  • 计算复杂度较高:需要计算每个数据点与中心点的距离,以及中心点的偏移量,在数据量较大时计算成本较高,可能导致算法运行速度慢。
  • 对半径参数敏感:算法结果依赖于半径参数的选择,如果半径选择不当,可能导致聚类结果不理想。例如半径过大可能使不同聚类合并,过小可能导致一个聚类被拆分为多个。
  • 可能陷入局部最优:在寻找聚类中心点的过程中,可能陷入局部最优解,无法找到全局最优的聚类结果。尤其是在数据分布复杂、存在多个密度峰值时容易出现。
算法相同点不同点优点缺点
Kmeans都属于聚类或分类算法,用于处理数据的分组问题需要预先设定聚类数量K;基于距离计算进行归类,通过计算数据点与中心点的距离来划分数据;属于无监督学习算法(KNN除外)原理简单易懂,容易实现,运行速度快,参数少(主要参数为聚类个数K)需事先确定分类数;初始聚类中心会影响结果
KNN都属于聚类或分类算法,用于处理数据的分组问题属于监督式学习,需要事先告知计算机每个数据的类别;根据数据点周围K个邻居的类别多数情况来确定新数据点的类别;通过计算数据点与已有数据集中实例的距离来找到K个近邻算法简单,适用于数据分布具有局部相似性且类别界限不太清晰的情况计算复杂度较高,尤其是在数据量较大时;对K值敏感,不同的K值可能导致不同的分类结果
Meanshift都属于聚类或分类算法,用于处理数据的分组问题不需要提前给定分类数量K值,自动寻找聚类中心点;基于密度梯度上升,沿着密度上升方向寻找聚类中心点;根据数据点的密度分布情况来确定聚类无需事先告知分类数量,能自动确定类别数量;对数据分布适应性强,可处理复杂形状的数据分布计算复杂度较高;对半径参数敏感;可能陷入局部最优
举报

相关推荐

0 条评论