聚类分析是对无标注的数据无监督的进行划分的方法。按照聚类分析实用的方法划分,可以分为划分方法、层次方法、密度方法和网格方法。
具体的聚类分析方法和他们对应的方法分为:
划分方法:k-means, k-medoids, CLARA, CLARANS, FCM, EM
层次方法:BIRCH
划分方法:CURE, ROCK, CHEMALOEN.
密度方法:DBSCAN, GDB SCAN, DENCLUE, DB CLASD.
网格方法:STING, CLIQUE。首先将空间划分为有限个但愿构成的网络,随后利用网格结构进行聚类。
模型方法:CLASSIT, COBWEB。
神经网络:SMOL, LVQ
划分的方法
k-means算法
Canopy 算法
Canopy算法是更强的聚类算法。它可以保证各个聚类的中心点之间的距离大于一定的阀值。
Canopy引入了两个距离变量T1和T2,其中T1>T2。首先选取中心点,将距离为T1之内的点划分到这个中心点所在的类中,并且同时将T2距离之内的点删除,对这些点后续不做聚类处理的。后面依次生成继续聚类的方法进行聚类。
k-Mediods算法
优点:
k-Mediods方法比k-means算法更加健壮,因为中心点不像平均值那么容易受到极端值的影响。
缺点:
执行代价高,可扩展性不强。
PAM算法:
从一个初始聚类的集合开始,循环利用non-mediods替换mediods,并看看能否提高各个簇的性能。
CLARA算法:
基于抽样的PAM
CLARANS算法:
基于随机样本
EM 算法
聚类算法中期望最大值算法,在统计中用于寻找,依赖不可观察的隐性变量的概率模型,参数最大估计。
在统计计算之中,最大期望实在概率模型之中寻找参数最大的使然估计或者说最大的后验估计的算法,其中概率模型依赖于无法贯彻的隐藏变量。最大期望常用于在机器学习和计算机视觉中的聚类。EM算法经过两个交替的步骤进行计算:第一步,计算期望值(E),利用对音场变凉的现有估计值,计算器最大的似然估计值;第二部是最大化(M),最大化在E步上求得最大的似然参数来计算参数的值。M步上找到的参数估计值被用于下一个E步的计算中,这个过程不停地交替迭代。
层次方法
密度方法
DB-Scan
DBSCAN算法是一个比较有代表性的基于密度的聚类算法。与划分和层次聚类不同,它将簇定义为密度相连的点的最大集合,能够把足够高级毒的区域划分为簇,并可在噪声的空间数据库中发现任意形状的聚类。
它需要两个很重要的参数:扫描半径(eps)和最小包含点数(minPos)。
步骤:
1)任选一个未被访问的点,找出与其距离在一定范围(eps)内的点。
2)如果附近的点的数量>minPos,则将当前点与附近点形成一个簇。并标记出发点为已被访问,然后递归以相同的方法处理该簇内的所有未被标记为已访问的点,从而对簇进行扩展。
3) 如果附近的点数
4) 如果簇未被充分扩展,即簇内的说有点被标记为已访问,然后用同样的算法处理未被访问的点。
网格方法
Affinity Propagation算法:
神经网络:SMOL, LVQ
参考文献:
常用聚类算法对比 http://blog.163.com/qianshch@126/blog/static/48972522201092254141315/
聚类算法介绍:http://wenku.baidu.com/view/61d8346da45177232f60a2f2.html
EM算法简介:http://www.cnblogs.com/jerrylead/archive/2011/04/06/2006936.html