`
run_xiao
  • 浏览: 192394 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

mahout之3-mean shift聚类

阅读更多

 

3.Mean Shift 聚类

 

Mean Shift 聚类原理

(1). 欧式空间 X 中,有一个有限点的集合 S K 是一个 flat 核,即

 

简单说来, K 标记 x 是否在以原点为圆心,半径为 lamda 的球体内。

 

(2). x 处的样本均值表示为

 

即在以 x 为圆心的球体内所有样本点的均值,而 m(x) –x 即是传说中的“均值飘移”,而 mean-shift 算法是一个迭代过程,每次迭代中用样本点所在球体内的样本均值代替原样本点(圆心),至“均值飘移”小于某阈值。听起来是不是有点似曾相识的感觉? Kmeans?

 

实际上, MeanShift 算法可以以下三种方式扩展成更通用的聚类算法:

(1). 使用其他 kernel

(2). 每个点可以赋予不同权重

(3). 可以在空间 X 的任意子集上进行飘移,而 S 保持不变

而且在某些限定条件下成为我们所熟知的一些聚类方法,比如最大熵、 Kmeans 等方法。同时 mean shift 还可以看成对数据密度的梯度估计,用于寻找概率密度函数的波峰,因此提供了一种无需指定聚类数量的更自然的聚类方法。有兴趣的看官可以看一下 PAMI 上两篇论文:《 Mean Shift, Mode Seeking, and Clustering 》和《 Mean Shift A Robust Approach Toward Feature Space Analysis

 

mahout采用类似于Canopy聚类的方法的方法实现,使用MeanShiftCanopy对象表示mean shift的窗口(即球体或核函数),并使用Canopy聚类的T1表示球体的半径,T2表示两个canopy是否足够近而需要合并。

聚类过程如下:

       (1)初始化,每个数据点代表一个MeanShiftCanopy

       (2)根据T1计算每个Canopy的mean shift向量,表示其质心;任意两个Canopy质心距离小于T2,则合并之。

1
1
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics