本文将盘点六个经典的聚类算法,以便于后续研究。经典的聚类算法主要包括以下六种:
- Means-shift聚类
- k-means聚类
- Fuzzy C means聚类
- Medoid shift算法
- Turbopixel算法
- SLIC算法
Means-shift聚类(均值漂移)
核心思想
均值漂移聚类是基于滑动窗口的算法,用来寻找到数据最密集的区域。这是一个基于质心的算法,通过将中心点的候选点更新为滑动窗口内点的均值来完成,来定位每个组/类的中心点。
然后对这些候选窗口进行相似窗口进行去除,最终形成中心点集及相应的分组。
算法步骤
确定滑动窗口半径r,以随机选取的中心点C半径为r的圆形滑动窗口开始滑动。均值漂移类似一种爬山算法,在每一次迭代中向密度更高的区域移动,直到收敛。
每一次滑动到新的区域,计算滑动窗口内的均值来作为中心点,滑动窗口内的点的数量为窗口内的密度。在每一次移动中,窗口会想密度更高的区域移动。
移动窗口,计算窗口内的中心点以及窗口内的密度,知道没有方向在窗口内可以容纳更多的点,即一直移动到圆内密度不再增加为止。
步骤一到三会产生很多个滑动窗口,当多个滑动窗口重叠时,保留包含最多点的窗口,然后根据数据点所在的滑动窗口进行聚类。
下图演示了均值漂移聚类的计算步骤: