显然,如果a=1,聚类w的代表点就是w.mean即其中心点,此时类似于
Centroid-base即proach,即中心点代表簇,当a=0,此时类似于All-pointsapproach,即所有点代表簇。
簇之间的距离定义为:
两个簇的代表点之间的最小距离,即:
点到簇的距离与此类似,是该点到最近的簇的代表点的距离。
c个代表点体现了簇的物理几何形状;向中心收缩可以降低异常点的影响。
两个
簇组合后的新簇,则重新选择c个点作为簇的代表。
(4)数据取样:
在对大规模数据库进行聚类分析时,数据取样是一种常用的提高聚类效率的方法,即对整个数据库进行数据取样,然后对取样数据库进行聚类分析,而对未被取样的数据进行聚类标注。
这样,对大规模数据库的聚类分析就转化为对较小规模的取样数据库的聚类分析。
由于没有考虑到整个数据库的数据,聚类质量必然会受到影响。
但是,只要取样均匀且取样率适当,则取样数据库也可以较好地反映整个数据库状况,从而在保证聚类质量的同时提高聚类效率。
定理1:
对一个簇U,如果取样大小s满足:
那么,样本中属于簇u的点的个数小于f|u|的概率小于3,0<=3<=1
因此,采用chernoffbounds来确定的最小的取样数据量:
这就表示着如果我们只关心数据点数目大于的聚类,且最小的聚类至少有E个
数据点,那么我们只需要一个独立于原始数据点个数的取样数目。
(5)分区方法
分区过程如下:
将所有样本分成p个分区,每个分区大小n/p。
每个分区内作聚类,直到分区内的簇的个数为n/pq,q>1。
或者指定一个距离阈值,当最近簇距离大于阈值,则停止。
在CUREI法中,
Firstpass每个分区:
略1。
曲
Secondpass总聚类:
qq
p,q的最好选值:
使n/pq为k的2~3倍。
其优点是:
减少执行时间;减少输入数据,保证可以在内存中存放所有聚类的代表点。
(6)标记数据所属的簇
因为CURESc个点来代表一个聚类,因此在聚类完成后,对未参加聚类的数据或新增的数据进行标注从而计算聚类的可信度时,其可以准确的识别非球状数据
集,使得标注更加准确。
(7)异常点的处理
1•随机取样,过滤了大多数的异常点;
2•异常点所在的簇的点个数少于正常簇的点的个数,此时分两个阶段消除异常
点。
a.第一阶段:
增长速度慢的簇作为异常,以点的个数作为阈值。
Fraction(簇
的个数为初始簇个数的比例;比如:
1/3)的取值很重要;当簇的个数减少到fraction时,开始作消除异常点的操作。
b.第二阶段:
在第一阶段中,可能有些相近的异常点已经组合,所以进行第二阶段中异常点形成的簇非常小,很容易鉴别。
数据取样算法:
在对大规模数据库进行聚类分析时,数据取样是一种常用的提高聚类效率的方法,即对整个数据库进行数据取样,然后对取样数据库进行聚类分析,而对未被取样的数据进行聚类标注。
这样,对大规模数据库的聚类分析就转化为对较小规模的取样数据库的聚类分析。
由于没有考虑到整个数据库的数据,聚类质量必然会受到影响。
但是,只要取样均匀且取样率适当,则取样数据库也可以较好地反映整个数据库状况,从而在保证聚类质量的同时提高聚类效率。
与以前的基于取样的聚类算法相比。
取样算法:
这种算法只需扫描一遍被取样数据库,而且使用恒定的内存空间,便可以从N个记录中随机取出n个取样记录。
其基本思想是:
从第N-n+1条记录开始,做下列操作。
设当前处理的是第t个记录(n+1可以证明该算法能够得到均匀的取样结果。
确定取样率很重要。
为保证聚类质量,取样数据库应该能够有效地代表原数据库。
若取样率太低,取样数据库必然会丢失原数据库的某些特质,导致聚类效果失真。
测试方法:
对图形(事实上相当于2维的数据库数据)进行聚类
输入:
左图
输出:
类似右图,即把两组点分开,可以用颜色的不同来表示
㈤卩)
Figure3:
Problemof
一个图形约有几万个点,取样数目在k*500至k*1000(k为分组的数目),左右,可以自己掌握。
(注:
专业文档是经验性极强的领域,无法思考和涵盖全面,素材和资料部分来自网络,供参考。
可复制、编制,期待你的好评与关注)