因学习mahout重新学习与理解聚类中的距离的设定。
由于一般把文档等数据抽象成为向量来表示。直观的,用矩阵以及线性空间中的相关知识来理解距离。由于线性空间、度量空间的一些特性。我们可以把一个新的数据集,利用我们容易理解的,已知的空间特性,来类比和学习。
对于数值的属性来说:
常用距离以及对应的范数
距离 | 范数 |
|
Minkowski距离(闵可夫斯基) | p范数 |
|
曼哈顿距离(绝对值之和) | 1范数 |
|
欧氏距离(几何距离) | 2范数 |
|
切比雪夫距离 | 无穷范数 | 两个点有一个属性值不同时,它们就是不同的 |
平方欧氏距离 |
| 加大了距离较远的点的权重 |
加权欧氏距离 |
| 对每个属性来区分重要性 |
|
|
|
通过加权来区分属性的重要性。
对于文档来说,
常常用相似度来比较
使用最多的是向量余弦的相似度,它考虑数据之间的夹角。这不考虑向量的长度,适用于某些数据。
其它的一些:
Tanimoto距离:结合空间距离和夹角距离的特点。
对于布尔属性和符号属性,即无序范畴属性。则距离要进行新的定义(参见Web Mining书)
属性对称的话:则可以用简单匹配距离。
属性不对称:Jaccard距离。
一些基本知识:
如果线性空间上定义了范数,则称之为赋范线性空间。利用范数可以诱导出度量:d(x,y)=║x-y║,进而诱导出拓扑,因此赋范线性空间是度量空间。
在理解一些其它的定义时,就可以用线性空间来更加理论化的理解了。
最常用的范数就是p-范数。若x=[x1,x2,...,xn]^T,那么
║x║p=(|x1|^p+|x2|^p+...+|xn|^p)^{1/p}
可以验证p-范数确实满足范数的定义。
其中三角不等式的证明不是平凡的,这个结论通常称为闵可夫斯基(Minkowski)不等式。
当p取1,2,∞的时候分别是以下几种最简单的情形:
1-范数:║x║1=│x1│+│x2│+…+│xn│
2-范数:║x║2=(│x1│^2+│x2│^2+…+│xn│^2)^1/2
∞-范数:║x║∞=max(│x1│,│x2│,…,│xn│)
范数与距离之间的关系。
“范数||.||一定可以诱导出距离:d(x-y)=||x-y||(该距离甚至是平移不变的),但是反过来距离未必可以由范数来诱导。”