泛统计理论初探——均值漂移算法初探

数据挖掘-均值漂移聚类算法

均值漂移聚类算法简介
本文主要是介绍均值漂移聚类算法,又称为Mean-Shift-Cluster,该算法属于无监督学习的聚类方法。主要从算法的使用场景、步骤、核心思路等角度去介绍算法。之前其实也介绍过一些聚类的算法,比如Kmeans、DBSCAN等方法,本次介绍的均值漂移聚类算法是一种基于质心的算法,该方法最终找出的是数据点密集的区域。
均值漂移聚类算法和本人之前文章介绍的聚类算法有一些不同,主要是该算法的核心理念是不停地向密度更高的方向,或者说是更密集的方向去移动,本质上对于那些显著稀疏和密集的数据分布有着良好的区分,但是对于一些稀疏和密集不显著区分的数据,可能使用均值漂移聚类的算法效果就不是特别好。均值漂移聚类算法是一直移动,不停地修改每次质心点,它的思路就是:滑动-修改质心候选点-滑动-稳定后最终过滤处理 ,下面来介绍该算法的步骤。注意,步骤是以某一局部的数据做步骤的解释,正常情况下是所有的数据进行均值漂移聚类,有N个初始点,下面的步骤为了简单说明,选取了1个初始点进行说明。
1)首先使用者需要决定滑动窗口的半径R,然后随机确定初始点A作为质心,让初始点A以半径为R的圆形区域进行滑动,每次移动均朝向密度更高,也就是数据样本越多的地方移动。
2)每次在经过一次滑动以后,就要重新计算滑动窗口内部所有的点的均值作为新的质心点,即有一定的质心偏移,也可以看作“漂移”,也是该算法的名称的来源。重新计算确定质心后,继续按上一步的步骤进行移动,即向着密度更高的区域进行移动。
3)反复重复步骤1和步骤2,直到移动到密度最高的区域,即无论怎么继续移动,都不会在圆形区域内收下更多的数据样本点,也就是说当前区域的密度是最高的,并且无法继续增加密度了。
其实上述的三个步骤就是一个点的均值漂移聚类算法的步骤,实际情况是会有很多个初始点,一起进行滑动。当存在多个滑动圆形区域有重叠的时候,留下那个含有更多点的窗口,舍弃更少点的窗口,相对于聚类中的合并操作。并且以更多点的窗口进行质心的计算,并继续进行滑动重复上述三个步骤。
泛统计理论初探——均值漂移算法初探_第1张图片
其实均值漂移算法还是有优点的,即它无需事先指定类的数量,并且受异常值的影响非常小,这两点相对于K-means算法是有优势的,该算法要比K-means算法更合理,即完成的是“自动聚出N类”,而不是事先指定要N类。但是该算法的缺点在于要决定滑动窗口半径R,如果R定的过大或者太小,都会对聚类结果造成显著的影响。
对于该算法其实还可以进一步进行优化,比如可以使用中位数而不是平均值来进行质心的漂移;或者在选取初始点之前可以进行一次分层抽样,拿到每个区域的具有代表性的数据,而不是随机选择初始点。
总的来说,均值漂移聚类在各个聚类场景都可以使用,不会拘泥于数据是球形簇状的分布等条件,建议在使用该算法的时候和其他聚类算法一起使用,或者对该算法在使用前先进行抽样等操作,可以进一步提升该算法的聚类效果。另外,初学者需要区分多种聚类方法的区别以及使用的前提和使用场景,不能随意使用某种聚类算法。

你可能感兴趣的:(数据挖掘,聚类,算法,机器学习,数据挖掘,深度学习)