首页 > 代码库 > mahout中得距离测度

mahout中得距离测度

假设向量1为(a1,a2,...an)

向量2为(b1,b2,...bn)

1、欧式距离测度

公式为

d=sqrt((a1-b1)^2+(a2-b2)^2+…+(an-bn)^2)

mahout类为EuclideanDistanceMeasure

2、平方欧式距离测度

公式为

d=(a1-b1)^2+(a2-b2)^2+…+(an-bn)^2

mahout类为SquaredEuclideanDistanceMeasure

3、曼哈顿距离测度

公式为

d=|a1-b1|+|a2-b2|+…+|an-bn|

mahout类为ManhattanDistanceMeasure

4、余弦距离测度(将向量看成几何中向量,两个向量的余弦夹角,即为它们的距离)

公式为

d=1-(a1b1+a2b2+…+anbn)/(sqrt(a1^2+a2^2+…+an^2)*sqrt(b1^2+b2^2+…+bn^2))

注意:这种距离测度不考虑两个向量的长度,只关注从原点到这两个点的方向。距离测度范围为(0.0到2.0)

mahout类为CosineDistanceMeasure

5、谷本距离测度

余弦距离测度忽略向量长度,在某些情况下不适应,而谷本距离测度既会考虑向量长度,也会考虑向量夹角

公式为:

d=1-(a1b1+a2b2+…+anbn)/(sqrt(a1^2+a2^2+…+an^2)*sqrt(b1^2+b2^2+…+bn^2)-(a1b1+a2b2+…+anbn))

mahout类为TanimotoDistanceMeasure

6、加权距离测度

此种测度可以修改某一维度的权重,比如在x-y坐标系中希望x方向的影响力加倍,就可以设置该维度权重为2。

mahout类为WeightedDistanceMeasure。

mahout中得距离测度