2014-11-11 5 views

ответ

2

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 равно нулю.

Геометрически x.y является нулевым, если и только если x и y перпендикулярны.

Так как x и y являются битовыми векторами (т.е. значения которых в каждом измерении может быть только 0 или 1), x.y равный нулю означает

x1*y1 + x2*y2 + ... + xn*yn = 0 

Если хи * уг = 1 * 1 = 1, то вся сумма была бы положительной. Для всей суммы равного нуля, не член х * уг не может быть равен 1. Они все должны быть равны 0:

Так

x1*y1 = 0 
x2*y2 = 0 
... 
xn*yn = 0 

Другими словами, если х являются 1, то уг должен быть 0 и наоборот.

Так есть тонны примеров, когда сходство Танимото равно косинус подобие:

x = (0,1,0,1) 
y = (1,0,0,0) 

, например.

+0

Не является ли формула для сходства косинусов неправильной? правильная формула: «x.y/| x | * | y |» –

+0

@SanketDeshmukh: Ой, ты прав. Спасибо за исправление. – unutbu

0

Несмотря на то, что была представлена ​​общая форма расстояния Танимото, вы всегда должны помнить, что в вычислительной форме существует двоичная форма и непрерывная форма.

Бинарная форма:

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) включает только подсчет числа единиц в векторах. Если для || X || и || У || вы должны указать, что квадратный корень из (X1^2 + X2^2 + ... Xp^2) требуется, так как || X || - длина вектора X от начала координат (также называемая нормой). Принимать квадратные корни для двоичной формы не нужно и будет дорого вычислить (расточительно) для большого интеллектуального анализа данных, поскольку иррациональные математические функции дороги. Однако для непрерывного варианта вы должны использовать квадратный корень.

Таким образом, всегда помните, что для расстояния Танимото существует два типа: двоичный и непрерывный.

+0

Можете ли вы привести пример расчета для непрерывной формы Tanimoto? как X.Y становится числовым из вектора? ty – MonsterMMORPG

+0

X.Y - это точечное произведение, которое равно X1 * Y1 + X2 * Y2 + ... + XP * YP. Точечный продукт является суммой многих произведений и является скалярным (одно вещественное число). Другими обозначениями, используемыми в матричной алгебре, являются X^TY или X'Y – wrtsvkrfm

Смежные вопросы