串行聚类算法

这一类算法比较简单。我们考虑一下规则。

* 在算法中所有特征向量只呈现一次;

* 实际聚类成几类我们事先不知道;(在算法执行过程中,新的类被创建)


我们给出如下记号,d(x,C) 表示 特征向量x与C类之间的不相似度(dissimilarity),我们不考虑它的具体定义,大家可以根据自己的实际情况人为选择。

需要人为定义两个参数:一个阈值,一个是最大类别数。


基本思想是:被考虑的每一个向量,根据它与现存的类之间的不相似度,它要么被分到某个已经创建的类,要么被放到重新创建的一个新类。


设m是目前为止,已经创建的类的个数。看如下算法:

threshold 和maxclass表示的两个预先给定的参数。


m = 1;
C_m = {x_1};
for i = 2 to N
  find C_k : d(x_i, C_k) = min(1<=j<=m){d(x_i, C_j)}
  if (d(x_i. C_k) > threshold) AND (m<maxclass) then
    m = m+1;
    C_m = {x_i};
  else
    C_k = C_k U {x_i};
  end if
end for 


大家根据自己的需要来设计自己的d(x_i, C_j)的定义。


这种方法叫做 BSAS (Basic Sequential Algorithm Scheme)


评价:Sergios 的评价,我稍作理解

* 如果使用similarity表示近邻测度,只需要改下 阈值,以及min改成max就行了。

* 如果我们用类代表的方式给出近邻测度的话,BSAS方法比较适合Compact类型的类,如果有证据表明,某些类不是compact类型的,这个方法就不好了。

* 时间复杂度为O(N),与特征向量的个数一致


这个方法有一些变种的应用,详细参开《Pattern Recognition》



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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值