(4)结果验证。一旦用聚类算法得到结果,就需要验证其正确性。
(5)结果判定。在许多情况下,应用领域的专家必须用其他实验数据和分析判定聚类结果,最后做出正确的结论。
聚类分析有很多种算法,每种算法都是优化了某一方面或某几方面的特征。聚类算法的优劣标准本身就是一个值得研究的问题,对于聚类的评价有不同的标准。现在通用的聚类算法都是从几个方面来衡量的,而没有完全使用量化的客观标准。下面给出六条关于聚类的主要标准:
(1)处理大的数据集的能力。
(2)处理任意形状,包括有间隙的嵌套的数据的能力。
(3)算法处理的结果与数据输入的顺序是否相关,也就是说算法是否独立于数据输入顺序。
(4)处理数据噪声的能力。
(5)是否需要预先知道聚类个数,是否需要用户给出领域知识。
(6)算法处理有很多属性数据的能力,也就是对数据维数是否敏感。
对于一个聚类算法可以从以上几个方面综合考虑。
2.2 聚类方法的数据结构
基于内存的聚类算法有以下两种代表性的数据结构:
数据矩阵(对象与变量结构):它用p个变量表现n个对
(1) 象,这种数据结构是关系表的形式,或看成n×p的矩阵。
x11 … x 1f … x1p : : : : : xi1 … xif … xip : : : : : xn1 … xnf … xnp |
(2) 相异度矩阵(对象–对象结构):存储n个对象两两之间的近似性,表现形式是一个n×n维的矩阵。
0 d(2,1) 0 d(3,1) d(3,2) 0 : : : d(n,1) d(n,2) … … 0 |
这里d(i,j)是对象i和对象j之间相异性的量化表示,通常为非负值,当两个对象i,j越相似,其值越接近0;反之,则值越大。
2.2.1 区间标度变量
区间标度变量是一个粗略线性标度的连续变量。用来计算相异度d(i,j),其距离度量包括欧几里德距离,曼哈坦距离和明考斯基距离。
首先实现数据的标准化,给定一个变量f的度量值,可以进行一下转化:
(1)计算平均的绝对偏差Sf:
Sf = (|x1f-mf|+|x2f-mf|+……+|xnf-mf|)/n
这里x1f,……,xnf是f的n个度量值,mf是f的平均值。
(2)计算标准化的度量值:
Zif = (xif-mf)/sf