CLARANS算法

转载http://www.idataskys.com/%E8%81%9A%E7%B1%BB%E5%88%86%E6%9E%90%E4%B9%8Bclarans%E7%AE%97%E6%B3%95/

CLARANS (A Clustering Algorithm based on Randomized Search,基于随机选择的聚类算法) 将采样技术(CLARA)和PAM结合起来。CLARA的主要思想是:不考虑整个数据集合,而是选择实际数据的一小部分作为数据的代表。然后用PAM方法从样本中选择中心点。如果样本是以非常随机的方式选取的,那么它应当接近代表原来的数据集。从中选出代表对象(中心点)很可能和从整个数据集合中选出的代表对象相似。CLARA抽取数据集合的多个样本,对每个样本应用PAM算法,并返回最好的聚类结果作为输出。 

        CLARA的有效性主要取决于样本的大小。如果任何一个最佳抽样中心点不在最佳的K个中心之中,则CLARA将永远不能找到数据集合的最佳聚类。同时这也是为了聚类效率做付出的代价。 

        CLARANS聚类则是将CLARA和PAM有效的结合起来,CLARANS在任何时候都不把自身局限于任何样本,CLARANS在搜素的每一步都以某种随机性选取样本。算法步骤如下(算法步骤摘自百度文库): 

1、输入参数numlocal和maxneighbor。numlocal 表示抽样的次数, maxneighbor 表示一个节点可以与任意特定邻居进行比较的数目 令:i=1,i用来表示已经选样的次数 mincost为最小代价,初始时设为大数。 

2、设置当前节点current为Gn中的任意一个节点。 

3、令j =1。(j用来表示已经与current进行比较的邻居的个数) 

4、考虑当前点的一个随机的邻居S,并计算两个节点的代价差。

5、如果S的代价较低,则current:=S,转到步骤3。 

6、否则,令j=j+1。如果j<=maxneighbor,则转到步骤4。 

7、否则 ,当j>maxneighbor,当前节点为本次选样最小代价节点. 如果其代价小于mincost,令mincost为当前节点的代价,bestnode为当前的节点。 

8、令 i= i+1,如果i〉numlocal,输出bestnode,运算中止.否则,转到步骤2。 对上面出现一些概念进行说明: 

    (1)代价值,主要描述一个对象被分到一个类别中的代价值,该代价值由每个对象与其簇中心点间的相异度(距离或者相似度)的总和来定义。代价差则是两次随机领域的代价差值。 

    (2)更新邻接点,CLARANS不会把搜索限制在局部区域,如果发现一个更好的近邻,CLARANS就移到该近邻节点,处理过程从新开始;否则,当前的聚类则产生了一个局部最小。如果找到一个局部最小,CLARANS从随机选择的新节点开始,搜索新的局部最小。当搜索的局部最小解达到用户指定的数目时,最好的局部最小作为算法的输出。从上面的算法步骤也可以看出这一思想。在第5步中更新节点current。

  • 2
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值