博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ROCK 聚类算法‏
阅读量:7033 次
发布时间:2019-06-28

本文共 1126 字,大约阅读时间需要 3 分钟。

ROCK (RObust Clustering using linKs)  聚类算法‏是一种鲁棒的用于分类属性的聚类算法。该算法属于凝聚型的层次聚类算法。之所以鲁棒是因为在确认两对象(样本点/簇)之间的关系时考虑了他们共同的邻居(相似样本点)的数量,在算法中被叫做链接(Link)的概念。而一些聚类算法只关注对象之间的相似度。

 

ROCK 算法中用到的四个关键概念

  1. 邻居(Neighbors):如果两个样本点的相似度达到了阈值(θ),这两个样本点就是邻居。阈值(θ)有用户指定,相似度也是通过用户指定的相似度函数计算。常用的分类属性的相似度计算方法有:Jaccard 系数,余弦相似度。
  2. 链接(Links):两个对象的共同邻居数量
  3. 目标函数(Criterion Function):最大化下面目标函数以获得最优的聚类结果(最终簇之间的链接总数最小,而簇内的链接总数最大)。Ci:第i个簇,k:簇的个数,ni:Ci的大小(样本点的数量)。一般可使用f (θ) = (1-θ)/(1+θ). f(θ)一般具有以下性质:Ci中的每个样本点在Ci中有nif(θ)个邻居。(具体请见参考文献2)

4. 相似性的度量(Goodness Measure):使用该公式计算所有对象的两两相似度,将相似性最高的两个对象合并。通过该相似性度量不断的凝聚对象至k个簇,最终计算上面目标函数值必然是最大的。

,link[Ci,Cj]=

大概算法思路(伪代码请见参考文献2):

输入:需要聚类的个数-k,和相似度阈值-θ

算法:

  开始每个点都是单独的聚类,根据计算点与点间的相似度,生成相似度矩阵。

  根据相似度矩阵和相似度阈值-θ,计算邻居矩阵-A。如果两点相似度>=θ,取值1(邻居),否则取值0.

  计算链接矩阵-L=A x A

  计算相似性的度量(Goodness Measure),将相似性最高的两个对象合并。回到第2步进行迭代直到形成k个聚类或聚类的数量不在发生变换。

输出:

  簇和异常值(不一定存在)

 

ROCK in R - cba 包:

 
load('country.RData')d<-dist(countries[,-1])x<-as.matrix(d)library(cba)rc <- rockCluster(x, n=4, theta=0.2, debug=TRUE)rc$cl
 

参考文献:

【1】http://www.enggjournals.com/ijcse/doc/IJCSE12-04-05-248.pdf

【2】http://www.cis.upenn.edu/~sudipto/mypapers/categorical.pdf

转载地址:http://igjal.baihongyu.com/

你可能感兴趣的文章
Microsoft Remote Desktop移动客户端Q&A
查看>>
SCVMM 2012 R2---安装SCVMM 2012 R2服务器
查看>>
SANS:2014年安全分析与安全智能调研报告
查看>>
WYSE率先支持RemoteFX功能
查看>>
[Err] 1064 - You have an error in your SQL syntax; check the manual that corresponds...
查看>>
MotoRola MT870 ROOT及刷机方法
查看>>
Skype for Business Server 2015-04-前端服务器-7-部署
查看>>
计算机应用专业的学生应该掌握的IT技能
查看>>
【VMCloud云平台】SCDPM(六)额外篇-DPM备份到Azure上
查看>>
新态势感知系列(1):从态势感知到全方位态势感知
查看>>
查看OSSIM系统帮助
查看>>
剧情很有趣:安全专家被骗记
查看>>
LVS+Heartbeat
查看>>
修改Linux机器名
查看>>
数组面试题-子数组之和
查看>>
Sqlserver 2005 配置 数据库镜像:镜像状态
查看>>
[C#][控件]高级控件
查看>>
WTL学习笔记(4)控件加强
查看>>
Create and Alter View
查看>>
项目管理的“三边六拍”!
查看>>