考虑聚类问题时,如何度量元素之间以及簇之间的相似性是一个核心问题。在不同类型的任务中,需要选择合适的度量方式。一个直观的想法是通过某种距离来度量相似性,距离越近,相似性越高,之所以说“某种”距离是因为距离可以用很多种方式来定义。下面列出几种常用的距离的定义。
设C是一个集合,C1,C2,…,Ck是它的一些子集。度量集合C中两个元素p1=(x11,x12,…,x1n)和p2=(x21,x22,…,x2n)之间的距离时,最常用的是欧式距离
这种距离直观易懂且可解释性强。除了欧式距离,还有两种常用的度量方式,一种叫作曼哈顿(Manhattan)距离
一种叫作闵科夫斯基(Minkowski)距离
其中q是大于0的常数。从定义可以看出,前两种距离其实是闵科夫斯基距离的特殊情形。进一步,当元素的坐标在各个方向的重要性不同时,可以采用如下加权距离
来进行度量,其中ωk是介于0和1之间的常数,它表明了不同方向的坐标在元素属性中的重要程度。
还有一种距离叫作余弦距离,或者称为余弦相似性。这种距离在图像识别、文本相似性等任务中很常用。计算余弦距离时,把元素看成空间中的向量,使用余弦定理计算两个向量夹角的余弦,余弦值越大说明角度越小,则两个向量的相似性越高。计算p1和p2余弦距离的公式是
其中表示内积,即
|p1|和|p2|表示它们的长度,例如
除了两点间的距离,还需要用到集合间的距离。用|p1-p2|表示两个点间的距离,距离的具体计算方式可根据问题特性从上述几种距离的定义中选取。对于两个不同的子集Ci和Cj,它们之间的距离dist(Ci,Cj)也有不同的选择。可以采用最小距离
最大距离
平均距离
以及中心距离
|mi-mj|