Mean Shift

2025年1月5日 | 阅读 7 分钟

与无监督学习不同,无监督学习通过将数据点迭代地向模式移动来将数据点分配到簇(在 Meanshift 的上下文中,这属于聚类算法的范畴。由于这个原因,它也被称为模式搜索算法。Mean-shift 算法在计算机视觉和图像处理中有应用。

给定一系列数据点,每个数据点都会被反复分配到最近的簇质心;周围点的大多数位置决定了到最近簇质心的方向。

与众所周知的 K-Means 聚类算法不同,Mean Shift 不需要预先确定簇的数量。该算法根据数据确定有多少簇。

注意:Mean Shift 的计算成本为 O(n²),这是一个缺点。

Mean Shift 聚类是一种非参数、基于密度的聚类技术,可用于在数据集中查找簇。对于边界可以更好地用线性边界分开且形状不规则的数据集尤其有用。

Mean Shift 聚类的基本原理是通过将每个数据点移动到特定半径内点分布的模式(即密度最高处)来实现的。该程序迭代地进行这些移动,直到点收敛到密度函数的局部最大值。这些局部最大值代表了数据的簇。

以下简要描述了 Mean Shift 聚类算法的操作流程:

  • 将数据点设置为簇的质心。

重复以下步骤,直到收敛或达到最大迭代次数:

  • 确定以每个数据点为中心、在特定半径(也称为“核”)内的所有点的平均值。
  • 将数据点移动到平均值。
  • 收敛后保持在同一位置的点称为簇质心。
  • 提供最终的簇质心和数据点到簇的分配。

Mean Shift 聚类不需要预定簇数量的事实是其主要优势之一。它还可以处理任意大小或形状的簇,并且不对数据的分布方式做任何假设。然而,它可能依赖于核半径和核的选择。Mean-Shift 聚类的应用包括生物信息学、目标跟踪以及图像和视频处理。

估计核密度 -

为了使用 Mean Shift 聚类算法,您必须首先在数学上表示您的数据。这可以通过使用下面所示的点集来表示您的数据来完成。Mean Shift 是一个建立在核密度估计(KDE)基础上的概念。

Mean Shift

假设使用了概率分布来采样上述数据。KDE 是一种估计一组数据的底层分布(通常称为概率密度函数)的技术。它通过为集合中的每个数据点分配一个核来工作。

在复杂的数学术语中,核是一种通常用于卷积的加权函数。尽管有多种核类型,但高斯核是最广泛使用的类型。通过将每个核相加,会产生一个概率曲面示例密度函数。

生成的密度函数将因所选的核带宽参数而异。下面显示了使用带宽为 2 的高斯核对前面提到的点进行的 KDE 曲面图。

曲面图

Mean Shift

等高线图

Mean Shift

为了演示,假设我们选择了一个具有带宽参数 h 的核 K,并给出了一个在 d 维空间中的点集 {ui},该点集已从更大的总体中采样。通过将这些记录与核特性相结合,可以获得整个总体的密度函数的以下核密度估计:

在下面的示例中,我们使用高斯核沿 x 轴绘制了单维总体密度估计。尽管上述计算可能看起来令人生畏,但上面的图像应表明该概念无疑很简单。

正如我们所见,每个样本点都为我们的估计贡献了一个以其为中心的小高斯分布。

Mean Shift

迭代模式搜索

  1. 设置窗口 W 和随机种子。
  2. 确定 W 的平均值(或重心)。
  3. 将搜索时间帧调整到平均值。
  4. 重复步骤 2 四次,直到收敛。
Mean Shift

通用算法概述 -

Shift 函数看起来像这样 -

优点

  • 发现可变数量的模式
  • 对异常值具有鲁棒性
  • 通用的、与应用无关的工具
  • 无模型:不对数据簇中的任何预先存在的形状(如椭圆、球形等)做任何假设。
  • 只有一个参数,窗口大小 h,与 k-means 不同,它具有物理意义。

缺点

  • 窗口大小会影响输出。
  • 宽度(或窗口大小)的选择并非无关紧要。
  • 计算成本高(每张图像约 2 秒)
  • 无法很好地随特征空间维度进行扩展。

Mean shift 是一种非参数聚类方法,常用于计算机视觉和机器学习中的数据聚类和图像分割。它属于模式搜索算法家族,该家族寻找概率密度函数的模式或峰值。在聚类方面,这些模式代表了簇中心。

这是 Mean Shift 工作原理的快速概述:

估计核密度

该方法首先将每个数据点在特征空间中表示为一个核,通常是高斯分布。

均值偏移

Mean Shift 的过程是反复将当前点邻域中的每个数据点向这些数据点的平均值移动。

移动由核邻域中点的加权平均值决定,其中权重是核值。

收敛

数据点在收敛时达到数据密度的局部最大值,这是过程的结束。该方法现在将每个点分配给适当的模式或簇。

簇分配

收敛后落在同一模式中的点被视为属于同一簇。

Mean Shift 的一个优点是簇的数量可以根据数据分布自动确定,无需预先定义簇的数量。然而,它可能容易受诸如核带宽等因素的选择影响。

特征空间分析、目标跟踪和图像分割等问题已经通过 Mean Shift 得到解决。需要注意的是,虽然 Mean Shift 在某些情况下效果很好,但它可能更适合高维数据或具有不对称几何形状的数据。

当然。现在,让我们更详细地探讨 Mean Shift 算法的一些最重要特征:

1. 带宽

在 Mean Shift 中,带宽参数非常重要。它计算每个数据点周围邻域的大小。虽然大的带宽可能导致簇合并,但窄的带宽会产生紧凑的邻域和细粒度的聚类。

2. 寻找模式

由于 Mean Shift 寻找底层数据分布中的峰值或模式,因此它经常被称为模式搜索算法。这些模式中的一个与每个簇相关。

3. 空间分组

Mean Shift 同时考虑了数据点的物理位置和特征。因此,它可用于空间上连贯区域的聚类,这对于图像分割任务非常有用。

4. 形状鲁棒性

Mean Shift 相对于簇的形状来说是相对不受影响的。只要它们与数据中的高密度区域相关,它就可以找到不同大小和形状的簇。

5. 参数敏感性

特别是带宽,可能对 Mean Shift 的性能有显著影响。为了让算法能够正确捕捉数据的内在结构,选择正确的带宽至关重要。

6. Mean Shift 滤波器的进一步发展

除了聚类之外,Mean Shift 还被应用于图像处理任务。用于平滑和去噪图像的类似方法是 Mean Shift 滤波。每个像素都会朝着邻域颜色模式的方向移动。

7. 优点和局限性

  • 优点:能够处理不规则的簇形状;自动计算簇的数量。
  • 局限性:对于大型数据集,需要大量计算能力,并且对参数调整敏感。

8. 变体

Mean Shift 在许多方面得到了改进,包括自适应 Mean Shift 和空间约束 Mean Shift,旨在使其在特定情况下表现更好。

结论

总之,Mean Shift 是一种在机器学习和计算机视觉中常用的模式搜索聚类方法。它的价值源于其自动检测簇大小的能力以及对不同簇形状的鲁棒性。这些应用包括图像分割、目标跟踪和特征空间分析。然而,用户应注意该方法的计算强度以及参数(尤其是带宽参数)的敏感性,尤其是在处理大型数据集时。

Mean Shift 对各种数据分布的适应性以及其进行地理聚类的能力是其主要优点。它还可以用于聚类以外的任务,例如图像处理中的 Mean Shift 滤波,这证明了其多功能性。尽管存在处理要求,但在簇的大小和形状可能不可预测的情况下,Mean Shift 仍然是一种有用的技术。

实际上,用户应尝试不同的参数调整值,以查看哪些值最适合他们数据的独特特征。对于任何算法的成功应用,理解其优点、缺点和适用范围至关重要。在数据科学家和研究人员的工具箱中,Mean Shift 仍然是一个关键工具,有助于调查和理解复杂的数据结构。