DIANA(Divisive Analysis)是一种自顶向下层次聚类算法。
DIANA用到如下两个定义:
1、簇的直径:在一个簇中的任意两个数据点都有一个欧氏距离,这些距离中的最大值是簇的直径
1、平均相异度(平均距离):
算法描述:
输入:包含n个对象的数据集,终止条件簇的数目k
输出:k个簇,达到终止条件规定簇数目
1、将所有对象整个当成一个初始簇
2、For ( i=1;i!=k;i++) Do Begin
3、在所有簇中挑选出具有最大直径的簇;
4、找出所挑出簇里与其他点平均相异度最大的一个点放入splinter group,剩余的放入old party中。
5、Repeat
6、在old party里找出到splinter group中点的最近距离不大于old party中点的最近距离的点,并将该点加入splinter group
7、Until 没有新的old party的点被分配给splinter group;
8、Splinter group 和old party为被选中的簇分裂成的两个簇,与其他簇一起组成新的簇集合
9、END
算法性能:
缺点是已做的分裂操作不能撤销,类之间不能交换对象。如果在某步没有选择好分裂点,可能会导致低质量的聚类结果。
大数据集不太适用。