Jaccard類似度およびCosine類似度のアプリケーションと違い


27

ジャカード類似性コサイン類似性は、アイテムの類似性を比較する2つの非常に一般的な測定値です。ただし、どの状況が他の状況よりも望ましいかについてはあまり明確ではありません。

誰かがこれら2つの測定の違い(定義や計算ではなく、概念や原理の違い)とそれらの望ましい応用を明確にするのを助けることができますか?

回答:


19

ジャカードの類似性は、与えられ sij=pp+q+r

ここで、

p =両方のオブジェクトに対して正の属性の数
q = iの属性1とj
の属性0の数r = iの属性0とj の属性1の数

一方、コサイン類似度=ここで、AとBはオブジェクトベクトルです。ABAB

簡単に言えば、コサインの類似性では、一般的な属性の数が可能な属性の総数で除算されます。一方、Jaccard Similarityでは、共通属性の数は、2つのオブジェクトの少なくとも1つに存在する属性の数で除算されます。

また、類似性の他の多くの尺度があり、それぞれ独自の離心率があります。どちらを使用するかを決定する際には、いくつかの代表的なケースを考え、どのインデックスが最も有用な結果をもたらし、目的を達成するかを考えてみてください。

コサインインデックスは、盗作を識別するために使用できますが、インターネット上のミラーサイトを識別するための適切なインデックスにはなりません。一方、Jaccardインデックスは、ミラーサイトを識別するのに適したインデックスになりますが、コピーパスタ盗作(大規模なドキュメント内)をキャッチするのにはあまり適していません。

これらのインデックスを適用するときは、問題について十分に検討し、類似性を定義する方法を理解する必要があります。定義を念頭に置いたら、インデックスの購入に取り掛かることができます。

編集: 以前、この答えには例が含まれていましたが、最終的には間違っていました。そのことを指摘してくれた複数のユーザーのおかげで、間違った例を削除しました。


2
コサインインデックスが盗作の識別に優れており、ミラーサイトの識別に適していない理由を説明してください。
dharm0us

この答えの一部は直感的ではないと感じています。「たとえば、可能な100個の属性のうち、両方とも10個の属性を持つ2つのオブジェクトがある場合、さらに10個すべての属性が共通します。この場合、Jaccardインデックスは1で、コサインインデックスは0.001です。」これはのようなものに翻訳されますcosine_similarity(10*[1]+90*[0], 10*[1]+90*[0])。もちろん、コサインの類似性もここでは1になります。これは、両方の尺度が両方のベクトルでゼロである要素を無視するためです。
-fsociety

1
この回答は、コサイン類似度について間違っている、user18596の答えをご検討ください
ロビン

「簡単に言えば、コサイン類似度では、共通属性の数を可能な属性の総数で割った」->これはまったく間違っています。表記は、ベクトルの内積とノルムを定義します。
ショーンオーウェン

22

私はステータスを持っていないのでコメントできませんが、チェックされた答えが間違っているだけでなく、質問に答えていません。∥A∥は、AのL2ノルム、つまり、ベクトルAの次元ではなく、ユークリッド空間のベクトルの長さを意味します。つまり、0ビットをカウントせず、1ビットを加算して、平方根。したがって、長さ100のベクトルの10個の属性の例も間違っています。申し訳ありませんが、どのメトリックをいつ使用するかについての本当の答えはありませんが、間違った答えに挑戦することはできません。


2
あなたはまったく正しい。非常に多くの人々が間違った答えを投票しているのは残念です。ウィキペディアの記事で説明されているコサインの類似性は、0ビットを考慮していません。en.wikipedia.org/wiki/Cosine_similarity
neelshiv

11

Jaccardの類似性は、2種類のバイナリケースに使用されます。

  1. 対称、1と0の重要度は等しい(性別、配偶者の有無など)
  2. 非対称、1と0の重要度のレベルが異なる(疾患に対してテスト陽性)

通常、コサイン類似度は、ドキュメントまたは電子メールを比較するためのテキストマイニングのコンテキストで使用されます。2つのドキュメント用語ベクトル間のコサイン類似性が高い場合、両方のドキュメントに共通の単語数が多くなります

もう1つの違いは1です。Jaccard係数は非類似度または距離の尺度として使用できますが、コサイン類似度にはそのような構造はありません。同様のことは、分類法で使用されるTonimoto距離です。


なぜJaccardのみが非類似度の尺度として使用できるのですか?私の理解では、それcosine異なるが無効ではない手段です。
javadba

3

上記のように、チェックされた答えは間違っています。

abAB

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

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

いくつかの比較:

  • ここの分子は同じです。
  • |A||B|
  • |A||B|

Vikram Venkatが指摘したように、1-Jaccardはコサインとは異なり、真のメトリックに対応することを除いて、一方が他方よりも優先されるべき場所について、まだ明確な直感がありません。そして、コサインは自然に実数値のベクトルに拡張されます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.