Wie die Kosinusähnlichkeit (http://en.wikipedia.org/wiki/Cosine_similarity)Kosinusähnlichkeit wenn einer der Vektoren nur Nullen
auszudrücken, wenn einer der Vektoren nur Nullen?
v1 = [1, 1, 1, 1, 1]
v2 = [0, 0, 0, 0, 0]
Wenn wir in der klassischen Formel berechnen nach bekommen wir eine Division durch null:
Let d1 = 0 0 0 0 0 0
Let d2 = 1 1 1 1 1 1
Cosine Similarity (d1, d2) = dot(d1, d2)/||d1|| ||d2||dot(d1, d2) = (0)*(1) + (0)*(1) + (0)*(1) + (0)*(1) + (0)*(1) + (0)*(1) = 0
||d1|| = sqrt((0)^2 + (0)^2 + (0)^2 + (0)^2 + (0)^2 + (0)^2) = 0
||d2|| = sqrt((1)^2 + (1)^2 + (1)^2 + (1)^2 + (1)^2 + (1)^2) = 2.44948974278
Cosine Similarity (d1, d2) = 0/(0) * (2.44948974278)
= 0/0
Ich möchte dieses Ähnlichkeitsmaß in einer Clusteranwendung verwenden. Und ich werde oft solche Vektoren vergleichen müssen. Auch [0, 0, 0, 0, 0] vs. [0, 0, 0, 0, 0]
Haben Sie Erfahrung? Da dies eine Ähnlichkeit (keine Entfernung) Maßnahme ist, sollte ich Sonderfall für
d verwenden ([1, 1, 1, 1, 1]; [0, 0, 0, 0, 0]) = 0
d ([0, 0, 0, 0, 0]; [0, 0, 0, 0, 0]) = 1
was über
d ([1, 1, 1 , 0, 0]; [0, 0, 0, 0, 0]) =? usw.