聚类算法的一种。
寻找初始点方式:
(1)选择彼此距离尽可能远的点。
(2)先进行聚类,输出k个簇,再在每个簇中选择一个点。
假设簇满足以质心为期望的正态分布。按上述方式选择初始的k个点。
之后,数据文件中的点按照组块方式读入。
目前内存中有:
1.组块
2.废弃集
3.压缩集
4.留存集
后三者关系如图:
下面开始数据处理。
(1)首先,充分接近某个簇质心的点会被加到该簇中。
(2)对于不充分接近簇质心的点,同留存集中的点一起聚类。
(3)压缩集迷你簇和新的迷你簇(迷你簇含有互相接近,但是不接近于任何簇的点)之间可以进行合并。
(4)不在留存集中的点,也就是一个簇或者迷你簇中的点,会和分配结果一起写到二级存储上。
注意一点,上述操作在每个组块输入后都会进行一次。
当组块输入完成后,会对压缩集和留存集进行操作。具体因需要而异,也可能不进行任何操作。
如何将某点p分给某个簇?
计算p和这个簇质心的马氏距离,选择质心具有最短马氏距离的簇,如果距离小于某个阀值,将p加入簇中。

没有评论:
发表评论