2010-12-07 4 views
3

я эту проблему при расчете Jaccard расстояния для наборов (бит-векторы):Jaccard Расстояние

p1 = 10111;

р2 = 10011.

Размер пересечения = 3; (Как мы могли бы найти его?)

Размер союза = 4, (Как мы могли бы найти его?)

Jaccard схожесть = (пересечение/объединение) = 3/4.

Jaccard Distance = 1 - (сходство с Jaccard) = (1-3/4) = 1/4.

Но я не понимаю, как мы могли бы узнать «пересечение» и «Союз» двух векторов.

Пожалуйста, помогите мне.

Спасибо большое.

ответ

6

Размер перекрестка = 3; (Как мы могли бы найти его?)

Количество установленных битов p1&p2 = 10011

Размер унии = 4, (Как мы можем найти его?)

Количество набор бит p1|p2 = 10111

Вектор здесь означает двоичный массив, где i-й бит означает i-й элемент, присутствующий в этом наборе.

+3

Примечание: если вы не знаете, как вычислить число `1 `bits, читайте это: http://www-graphics.stanford.edu/~seander/bithacks.html#CountBitsSetNaive – ruslik 2010-12-07 16:04:25

+0

Многое большое спасибо всем вам, ребята, я ценю вашу помощь.: D – Visitor 2010-12-07 16:18:38

2

Если p1 = 10111 и р2 = 10011,

Общее количество каждой комбинации атрибутов для p1 и p2:

  • М11 = общее количество атрибутов, где p1 & р2 имеют значение 1,
  • М01 = общее количество атрибутов где p1 имеет значение 0 & р2 имеет значение 1,
  • М10 = общее количество атрибутов где p1 имеет значение 1 & p2 имеет значение 0,
  • M00 = общее количество атрибутов, где p1 & р2 имеют значение 0.

Jaccard коэффициент подобия = J = пересечение/объединение = М11/(М01 + М10 + М11) = 3/(0 + 1 + 3) = 3/4,

Jaccard distance = J '= 1 - J = 1 - 3/4 = 1/4, Или J' = 1 - (M11/(M01 + M10 + M11)) = (M01 + M10)/(M01 + M10 + M11) = (0 + 1)/(0 + 1 + 3) = 1/4

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