因学习mahout重新学习与理解聚类中的距离的设定。
由于一般把文档等数据抽象成为向量来表示。直观的,用矩阵以及线性空间中的相关知识来理解距离。由于线性空间、度量空间的一些特性。我们可以把一个新的数据集,利用我们容易理解的,已知的空间特性,来类比和学习。
常用距离以及对应的范数
距离 | 范数 | 范数 |
曼哈顿距离(绝对值之和) | 1范数 | 范数 |
欧氏距离(几何距离) | 2范数 | 范数 |
欧氏距离(几何距离) | 2范数 | 范数 |
欧氏距离(几何距离) | 2范数 | 范数 |
一些基本知识:
如果线性空间上定义了范数,则称之为赋范线性空间。利用范数可以诱导出度量: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||(该距离甚至是平移不变的),但是反过来距离未必可以由范数来诱导。”