2015年11月18日星期三

BFR算法

聚类算法的一种。
  寻找初始点方式:
   (1)选择彼此距离尽可能远的点。
   (2)先进行聚类,输出k个簇,再在每个簇中选择一个点。

假设簇满足以质心为期望的正态分布。按上述方式选择初始的k个点。
之后,数据文件中的点按照组块方式读入。
目前内存中有:
    1.组块
    2.废弃集
    3.压缩集
    4.留存集


后三者关系如图:


下面开始数据处理。

  (1)首先,充分接近某个簇质心的点会被加到该簇中。
  (2)对于不充分接近簇质心的点,同留存集中的点一起聚类。
  (3)压缩集迷你簇和新的迷你簇(迷你簇含有互相接近,但是不接近于任何簇的点)之间可以进行合并。
  (4)不在留存集中的点,也就是一个簇或者迷你簇中的点,会和分配结果一起写到二级存储上。


注意一点,上述操作在每个组块输入后都会进行一次。
当组块输入完成后,会对压缩集和留存集进行操作。具体因需要而异,也可能不进行任何操作。

如何将某点p分给某个簇?
计算p和这个簇质心的马氏距离,选择质心具有最短马氏距离的簇,如果距离小于某个阀值,将p加入簇中。

没有评论:

发表评论