两个对象可以具有相同的余弦和Tanimoto系数距离度量,其中
Tanimoto distance measure, d(x,y) = x.y / (|x|*|x|) + (|y|*|y|)- x*y
和
cosine measure, d(x,y) = x.y /(|x|* |x|) * (|y| *|y|)
答案 0 :(得分:3)
The Tanimoto similarity coefficient(不真正的距离测量)已定义 通过
d(x,y) = x.y / ((|x|*|x|) + (|y|*|y|)- x.y)
用于位向量x和y。
现在将其与cosine similarity coefficent,
进行比较 d(x,y) = x.y / (|x| * |y|)
分母的差异为x.y
个词。如果x.y
为零,则Tanimoto和余弦相似系数将相同。
当且仅当x.y
和x
垂直时,y
几何为零。
由于x
和y
是位向量(即每个维度中的值只能是0或1),x.y
等于零意味着
x1*y1 + x2*y2 + ... + xn*yn = 0
如果xi * yi = 1 * 1 = 1,则整数总和为正。如果整个总和为零,没有术语 xi * yi可以等于1.它们必须全部等于0:
所以
x1*y1 = 0
x2*y2 = 0
...
xn*yn = 0
换句话说,如果xi为1,则yi必须为0,反之亦然。
因此,有很多例子,Tanimoto相似度等于余弦相似度:
x = (0,1,0,1)
y = (1,0,0,0)
例如。
答案 1 :(得分:0)
尽管呈现了Tanimoto距离的一般形式,但您必须始终记住,在计算上,存在二元形式和连续形式。
二进制形式是:
d(x,y) = n(X ∩ Y) / [ n(X) + n(Y) - n(X ∩ Y) ]
而连续形式是:
d(x,y) = X.Y / (||X|| + ||Y|| - X.Y )
差异很明显。如果编码器正在为你工作,你必须告诉他们n(X∩Y),n(X),n(Y)只涉及计算向量中的1的数量。而|| X ||和|| Y ||你必须声明(X1 ^ 2 + X2 ^ 2 + ... Xp ^ 2)的平方根是必需的,因为|| X ||是来自原点的向量X的长度(也称为范数)。对于二进制形式采用平方根是不必要的,并且对于大数据挖掘来说计算成本高(浪费),因为非理性数学函数是昂贵的。但是,对于连续变体,必须使用平方根。
总之,请记住,对于Tanimoto距离,有两种类型:二进制和连续。