Mean Shift 算法,又称为均值漂移算法
核心思想:
- 该算法假设真实的样本集合是服从不同概率密度分布的数据簇的并集
- 任意选择一个样本通过密度增加最快的方向将收敛到样本密度高的区域
- 样本密度高的区域对应一个分布的聚集区,即样本数据的局部最大值
- 能够收敛到相同局部最大值的样本被认为是服从同一分布的数据簇
算法流程:
- 随机确定样本空间内一个样本 $x$ 作为球心,构建半径为 $h$ 的高维球
$$ S_h\left(x\right)=\left(y\mid\left(y-x\right)\left(y-x\right)^T\leqslant h^2\right) $$ 2. 计算该高维球内质心 $M_h(x)$,并使用该质心作为新的高维球球心 $$ M_h\left(x\right)=\frac{1}{k}\sum_{x_i\in S_h}\left(x_i-x\right) $$ 3. 重复步骤 2,直到球心在两次迭代间的变化低于设定的阈值
Mean Shift 算法的改进:在 $M_h(x)$ 计算中增加核函数 $G$ 和样本权重 $w$ $$ M_h\left(x\right)=\frac{\sum_{i=1}^nG\left(\frac{x_i-x}{h_i}\right)w\left(x_i\right)\left(x_i-x\right)}{\sum_{i=1}^nG\left(\frac{x_i-x}{h_i}\right)w\left(x_i\right)} $$
Mean Shift 算法通过计算概率密度的局部最优解,实现聚类的过程
算法分析:
- 优点:不需要指定聚类数,算法结果稳定,常用于计算机视觉领域
- 缺点:可能产生过多的类,计算效率一般,收敛速度慢