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

转载于:https://www.cnblogs.com/1zhk/p/4539645.html

ROCK 聚类算法‏相关推荐

  1. 聚类算法:Hierarchical Clustering层次聚类

    1. 层次聚类 1.1 层次聚类的原理及分类 1)层次法(Hierarchicalmethods):先计算样本之间的距离.每次将距离最近的点合并到同一个类.然后,再计算类与类之间的距离,将距离最近的类 ...

  2. 数据挖掘中聚类算法概述

    1 聚类方法概述 聚类方法是将物理或抽象对象的集合组成为由类似的对象组成的多个类的过程被成为聚类.由聚类所组成的簇是一组数据对象的集合,这些对象与同一簇中的对象彼此类似,与其他簇中的对象相异.在许多应 ...

  3. 聚类算法学习指南(二)

    http://hi.baidu.com/catfool/blog/item/c06bec3931a0efcad4622524.html 聚类算法学习指南(二) 2009-05-06 20:49 下图 ...

  4. 基于GPU的K-Means聚类算法

    聚类是信息检索.数据挖掘中的一类重要技术,是分析数据并从中发现有用信息的一种有效手段.它将数据对象分组成为多个类或簇,使得在同一个簇中的对象之间具有较高的相似度,而不同簇中的对象差别很大.作为统计学的 ...

  5. 数据分析方法-聚类算法

    文章目录 一.定义 二.聚类.分类区别分类 三.聚类常用算法 1.划分聚类 k-means.k-medoids.k-modes.k-medians.kernel k-means 2.层次聚类 Aggl ...

  6. 【机器学习-西瓜书】九、K-means;聚类算法划分

    推荐阅读: 原型聚类:聚类划分:K-means 9.4 原型聚类 原型聚类亦称基于原型聚类(prototype-based clustering),原型指的是样本空间中具有代表性的点.基于原型的定义是 ...

  7. python机器学习案例系列教程——聚类算法总结

    全栈工程师开发手册 (作者:栾鹏) python教程全解 一.什么是聚类? 聚类(Clustering):聚类是一个人们日常生活的常见行为,即所谓"物以类聚,人以群分",核心的思想 ...

  8. 聚类算法(4)--Hierarchical clustering层次聚类

    目录 一.层次聚类 1.层次聚类的原理及分类 2.层次聚类的流程 3.层次聚类的优缺点 二.python实现 1.sklearn实现 2.scipy实现 树状图分类判断 一.层次聚类 1.层次聚类的原 ...

  9. 聚类算法分类及如何选择某类方法

    聚类算法分类: (1)划分聚类算法:也称为基于距离的聚类算法,此类算法中,簇的数量是随机选择的或最初给定的.属于这一类的算法有K-Meansl,PAM,CLARANSI等. K-means聚类算法的不 ...

最新文章

  1. C#拉姆达(=)表达式
  2. R语言使用ggplot2包使用geom_density()函数绘制密度图(自定义颜色填充、线条色彩、分组、均值线)实战(density plot)
  3. SQL查询四舍五入 解决方法
  4. 计算机多媒体理论知识,计算机多媒体技术07311.doc
  5. SAP Spartacus元素被选中后,focus颜色的css实现
  6. 联想拯救者y7000加内存条_短测联想拯救者Y7000,到底值不值得买?
  7. 题解P3745期末考试
  8. 51单片机中断interrupt……using……
  9. 基于注解的 Spring MVC 简单入门
  10. VC被控制时关闭极域电子教室、破解联想硬盘保护系统密码(上)
  11. 谷歌大脑新工作:把注意力放在MLP上!
  12. 基于asp.net固定资产管理系统设计
  13. vue 解决跨域问题
  14. H5大番薯(源码+数据库脚本)
  15. 使用Oracle的sshUserSetup.sh脚本配置SSH互信
  16. 【Android Camera】SOF Freeze
  17. excel的最大行数和列数
  18. 光合作用9月五星推荐图书
  19. 对抗样本论文学习:Deep Neural Networks are Easily Fooled
  20. 乘”公“而上,Golff腾飞AMA实录

热门文章

  1. Win10 + Python + GPU版MXNet + VS2015 + RTools + R配置
  2. 企业分布式微服务云SpringCloud SpringBoot mybatis (九)服务链路追踪(Spring Cloud Sleuth)...
  3. jquery等待特定元素加载再执行相关函数
  4. 如何在ubuntu上安装nvidia-docker同时与宿主共享GPU cuda加速
  5. WKWebView自适应大小
  6. 正确配置Linux系统ulimit值的方法
  7. 12本最优秀的Android开发电子书强力推荐
  8. J2EE JVM加载class文件的原理机制
  9. Populating Next Right Pointers in Each Node II
  10. 使用Eclipse与Pydev开发Python