ROCK算法及Matlab实现

ROCK算法及Matlab实现

——对*分类属性数据*的层次聚类算法

ROCK算法的提出:

  • 基于划分的k-means等算法是聚类大数据集的算法,它处理的数据对象仅限于数值型数据。而实际中大多数数据库和大的数据集不仅包括数值类型的数据,而且包括非数值型数据。如,布尔型(二值型),名义型,被称为分类属性数据
  • 分类属性数据的属性是有限和无序的,且不能比较大小,数据间缺乏一种合理的相似度量,因此用于数值型的聚类算法不适合于处理分类属性数据。
  • 对于包含布尔分类属性的数据,传统算法使用的距离函数度量不能产生高质量的簇。
  • 此外,大多数算法在进行聚类时只估计点与点之间的相似度,也即,在每一步中那些最相似的点合并到一个簇中,这种“局部”方法很容易导致错误。

ROCK算法的解释:

ROCK算法是一种层次聚类算法,针对具有分类属性的数据使用了链接这一概念(指两个对象间共同的近邻数目)

ROCK算法采用一种比较全局的观点,通过考虑成对点的领域情况进行聚类。如果两个相似点同时具有相似的领域,那么这两个点可能属于同一个簇而合并。

该算法属于凝聚型层次聚类算法,在确认两个对象(样本点或簇)之间的关系时考虑了他们共同的邻居(相似样本点)的数量,在算法中叫链接。而一些其他聚类算法只关注对象间的相似度。

ROCK算法中四个相关概念

  1. 邻居(近邻):如果两个样本点的相似度达到了阀值,这两个样本点就是邻居。阀值由用户指定,相似度也由用户指定的相似度函数计算。常用的分类属性的相似度计算方法有:Jaccark系数,余弦相似度。
    Jaccark系数定义为:这里写图片描述
  2. 链接:Links,两个对象的共同邻居数量。两个点有共同邻居,则他们之间才有链接。
  3. 目标函数:最大化下面的目标函数以获得最优的聚类结果,(簇之间的链接点数量最小,而簇内的链接点树最大)
    这里写图片描述
    Ci:第i个簇,k:簇的个数,ni:Ci的大小(样本点的数量)。一般可使用f (θ) = (1-θ)/(1+θ). f(θ)一般具有以下性质:Ci中的每个样本点在Ci中有nif(θ)个邻居。
  4. 相似性的度量:使用以下公式计算所有对象的两两相似度,将相似性最高的两个对象合并,通过该相似性度量不断的凝聚对象至k个簇,最终计算上面目标函数值必然是最大的。
    这里写图片描述

算法思路:

输入:需要聚类的个数k,和相似度阀值&;
算法:开始每个点都是单独的聚类,根据计算点与点间的相似度,生成相似度矩阵。

  • 根据相似度矩阵和相似度阀值&,计算邻居矩阵A,如果两点相似度>=&,取值为1(邻居),否则取值为0;
  • 计算链接矩阵L=A X A;(两个对象的共同邻居矩阵)
  • 计算相似性的度量:将相似性最高的两个对象合并。
  • 回到第2步,进行迭代直到形成k个聚类或聚类数量不再发生变化。

输出:簇和异常值(不一定存在)。

Jaccard系数讲解:
用于比较有限样本集之间的相似性与差异性。值越大,相似度越高。
定义:给定两个集合A、B,Jaccard系数定义为A与B交集大小与A与B并集大小的比值。
J(A,B)=当集合A、B都为空时,J(A,B)定义为1。

ROCK算法的优缺点:
优点:

  1. ROCK算法适用于类别型数据,比如,关键字、比尔值、和枚举值等;
  2. ROCK算法核心思想是利用链接作为相似性的度量,而不是仅仅依赖于距离。

缺点:

  1. 衡量两个数据点是否为邻居的相似度阀值&需要预先指定,阀值对聚类质量影响很大,在对数据集没有充分了解的前提下很难给出合理的阀值;
  2. 在ROCK算法中,相似度函数sim仅被用于最初邻居的判断上,只考虑相似与否,而未考虑相似程度,是算法对&值过于敏感。
  3. ROCK算法还要求用户事先选定聚类簇数k。

参考了两篇很好的文文章:

http://www.cnblogs.com/1zhk/p/4539645.html
https://blog.csdn.net/neuqxzy/article/details/44452901

CSDN下载地址:

https://download.csdn.net/download/qiu1440528444/10490218

  • 1
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值