Jaccard類似性指数の簡単な説明


Jaccard 類似性インデックスは、 2 つのデータセット間の類似性の尺度です。

Paul Jaccardによって開発され、インデックスの範囲は 0 から 1 です。1 に近づくほど、2 つのデータ セットは類似します。

Jaccard 類似性インデックスは次のように計算されます。

Jaccard 類似度= (両方のセットの観測値の数) / (いずれかのセットの数)

または、表記形式で書くと次のようになります。

J(A, B) = |A∩B| / |A∪B|

2 つのデータセットがまったく同じメンバーを共有する場合、その Jaccard 類似性インデックスは 1 になります。逆に、共通のメンバーがない場合、それらの類似性は 0 になります。

次の例は、いくつかの異なるデータセットの Jaccard 類似性インデックスを計算する方法を示しています。

例 1: Jaccard の類似性

次の 2 つのデータ セットがあるとします。

 A = [0, 1, 2, 5, 6, 8, 9]
B = [0, 2, 3, 4, 5, 7, 9]

それらの間の Jaccard 類似度を計算するには、まず両方のセットの観測値の合計数を求め、次にいずれかのセットの観測値の合計数で割ります。

  • 両方の観測値の数: {0, 2, 5, 9} = 4
  • いずれかの観測値の数: {0、1、2、3、4、5、6、7、8、9} = 10
  • ジャカード類似度: 4/10 = 0.4

Jaccard の類似性指数は0.4であることがわかります。

例 2: Jaccard の類似性 (続き)

次の 2 つのデータ セットがあるとします。

 C = [0, 1, 2, 3, 4, 5]
D = [6, 7, 8, 9, 10]

それらの間の Jaccard 類似度を計算するには、まず両方のセットの観測値の合計数を求め、次にいずれかのセットの観測値の合計数で割ります。

  • 両方の観測値の数: {} = 0
  • いずれかの観測値の数: {0、1、2、3、4、5、6、7、8、9、10} = 11
  • ジャカード類似度: 0/11 = 0

Jaccard 類似性インデックスは0であることがわかります。これは、2 つのデータセットが共通のメンバーを共有していないことを示しています。

例 3: 文字の Jaccard 類似性

数値ではなく文字を含むデータセットに対して Jaccard 類似性インデックスを使用することもできることに注意してください。

たとえば、次の 2 つのデータ セットがあるとします。

 E = ['cat', 'dog', 'hippo', 'monkey']
F = ['monkey', 'rhino', 'ostrich', 'salmon']

それらの間の Jaccard 類似度を計算するには、まず両方のセットの観測値の合計数を求め、次にいずれかのセットの観測値の合計数で割ります。

  • 両方の観測値の数: {‘monkey’} = 1
  • どちらか一方の観測値の数: {‘cat’, ‘dog’, hippopotamus’, ‘monkey’, ‘rhino’, ‘ostrich’, ‘salmon’} = 7
  • ジャカード類似度: 1/7 = 0.142857

Jaccard の類似性インデックスは0.142857であることがわかります。この数値は非常に低いので、2 つのセットがかなり異なっていることを示しています。

ジャッカード距離

Jaccard距離は2 つのデータセット間の非類似性を測定し、次のように計算されます。

Jaccard 距離 = 1 – Jaccard 類似度

この測定により、2 つのデータセットがどのように異なるか、またはそれらがどの程度異なるかがわかります。

たとえば、2 つのデータセットの Jaccard 類似性が 80% である場合、それらの Jaccard 距離は 1 – 0.8 = 0.2、つまり 20% になります。

追加リソース

次のチュートリアルでは、さまざまな統計ソフトウェアを使用して Jaccard の類似性を計算する方法を説明します。

R で Jaccard 類似度を計算する方法
Python で Jaccard の類似性を計算する方法

コメントを追加する

メールアドレスが公開されることはありません。 が付いている欄は必須項目です