Jaccard 유사성과 코사인 유사성의 적용과 차이점


27

Jaccard 유사성코사인 유사성 은 항목 유사성을 비교하는 동안 매우 일반적인 두 가지 측정입니다. 그러나 어떤 상황이 다른 상황보다 선호되는지는 확실하지 않습니다.

누군가이 두 측정의 차이점 (정의 또는 계산이 아닌 개념 또는 원리의 차이점)과 선호하는 응용 프로그램을 명확히하는 데 도움이 될 수 있습니까?

답변:


19

Jaccard 유사성은 sij=pp+q+r

어디에,

p = 두 객체에 대해 양수인 속성의 수
q = i에 대한 속성 1의 경우 j, j
의 경우 0

반면, 코사인 유사성 = 여기서 A와 B는 객체 벡터입니다.ABAB

간단히, 코사인 유사성에서 공통 속성 수를 가능한 총 속성 수로 나눕니다. Jaccard 유사성에서 공통 속성 수는 두 개체 중 하나 이상에 존재하는 속성 수로 나뉩니다.

그리고 그 자체의 편심을 가진 다른 많은 유사성 측정법이 있습니다. 어떤 것을 사용할 것인지 결정할 때는 몇 가지 대표적인 사례를 생각해보고 어떤 지표가 목표를 달성하기 위해 가장 유용한 결과를 제공 할 수 있는지 알아 봅니다.

코사인 지수는 표절을 식별하는 데 사용될 수 있지만 인터넷의 미러 사이트를 식별하는 데 좋은 인덱스는 아닙니다. Jaccard 인덱스는 미러 사이트를 식별하는 데 좋은 인덱스이지만 복사 파스타 표절 (더 큰 문서 내)을 잡는 데는 그리 좋지 않습니다.

이 지수를 적용 할 때 문제에 대해 철저히 생각하고 유사성을 정의하는 방법을 찾아야합니다. 일단 정의를 염두에두면 인덱스 쇼핑을 시작할 수 있습니다.

편집 : 이전에는이 ​​답변에 예제가 포함되어 있었지만 궁극적으로는 틀 렸습니다. 지적한 여러 사용자 덕분에 잘못된 예를 제거했습니다.


2
왜 코사인 지수가 표절을 식별하는 데 더 좋고 미러 사이트를 식별하는 데 좋지 않은지 설명해 주시겠습니까?
dharm0us

이 답변의 일부는 직관적이지 않은 것 같습니다. 예를 들어, 100 개의 속성 중 10 개의 속성을 가진 두 개의 객체가있는 경우 10 개의 속성이 모두 있습니다.이 경우 Jaccard 인덱스는 1이되고 코사인 인덱스는 0.001이됩니다. " 이것은 다음과 같이 번역됩니다 cosine_similarity(10*[1]+90*[0], 10*[1]+90*[0]). 물론 두 코사인이 두 벡터에서 모두 0 인 요소를 무시하기 때문에 코사인 유사도 1이됩니다.
fsociety

1
이 답변은 코사인 유사성에 대해 잘못되었습니다. user18596의 답변을 고려하십시오
Robin

"코사인 유사성에서 공통 속성 수를 가능한 총 속성 수로 나눕니다."-> 이것은 완전히 틀립니다. 이 표기법은 벡터 내적 및 표준을 정의합니다.
Sean Owen

22

상태가 없어서 댓글을 달 수 없지만 답변이 틀리거나 질문에 답변하지 않습니다. ∥A∥는 A의 L2 규범, 즉 벡터 A의 차원이 아니라 유클리드 공간에서 벡터의 길이를 의미한다. 즉, 0 비트를 세지 않고 1 비트를 더하고 제곱근. 따라서 100- 길이 벡터의 10 가지 속성 예제도 잘못되었습니다. 죄송합니다. 어떤 측정 항목을 사용해야하는지에 대한 실제 답변이 없지만 잘못된 답변을 그대로 유지하도록 할 수는 없습니다.


2
당신 말이 맞아요 너무 많은 사람들이 틀린 답을 투표하는 것은 부끄러운 일입니다. Wikipedia 기사에 설명 된 코사인 유사성은 0 비트를 고려하지 않습니다. en.wikipedia.org/wiki/Cosine_similarity
neelshiv

11

Jaccard 유사성은 두 가지 유형의 이진 경우에 사용됩니다.

  1. 대칭, 1과 0의 중요성이 동일 함 (성별, 결혼 여부 등)
  2. 1과 0의 중요도가 다른 비대칭 (질병에 양성 검사)

코사인 유사성은 일반적으로 문서 또는 전자 메일을 비교하기 위해 텍스트 마이닝 컨텍스트에서 사용됩니다. 두 문서 항 벡터 사이의 코사인 유사성이 높으면 두 문서 모두 공통된 단어 수를 갖습니다.

또 다른 차이점은 1-Jaccard 계수는 비 유사성 또는 거리 측정으로 사용될 수 있지만 코사인 유사성은 그러한 구성을 갖지 않습니다. 비슷한 것은 도니 모토 거리로 분류법에서 사용됩니다.


Jaccard 만 다른 방법으로 사용할 수있는 이유는 무엇입니까? 나의 이해는 즉 cosineA는 다른 하지만 잘못된 측정.
javadba

3

위에서 언급했듯이 확인 된 답변이 잘못되었습니다.

어디 와 있는 바이너리 벡터, 그들은하자 따라서 설정을 고려 값 1과 인덱스의 집합으로 해석 될 수 와 .abAB

인 Jaccard 유사성은 다음에 의해 주어진다

J(A,B)=|AB||AB|=|AB||AB|+|AB|+|BA|

코사인 유사성은

C(A,B)=|AB||A||B|=|AB|(|AB|+|AB|)(|AB|+|BA|)

일부 비교 :

  • 여기서 분자는 동일합니다.
  • 분모는 의 크기에 따라 산술적으로 커집니다. 그리고jaccard에서, 그러나 코사인에서 기하학적으로.|A||B|
  • 코사인의 분모는 의 항목 수에만 의존합니다. 의 항목 수 . 교차점에 의존하지 않습니다.|A||B|

Vikram Venkat이 지적했듯이 1-Jaccard는 코사인과 달리 진정한 메트릭에 해당한다는 점을 제외하고는 하나가 다른 것보다 선호되어야 할 위치에 대한 명확한 직관이 없습니다. 코사인은 자연스럽게 실제 값 벡터로 확장됩니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.