検索
連載

ジャッカード距離(Jaccard distance)とは? ジャッカード係数との違いAI・機械学習の用語辞典

用語「ジャッカード距離」について説明。集合間の「異なり」(=非類似度)を評価する尺度で、「2つの集合がどれだけ異なっているか」を測定するために使用される。集合間の「重なり」(=類似性)を測定するジャッカード類似度と対になる概念。値は0〜1で、1に近いほど「異なっている(=似ていない)」を意味する。

PC用表示 関連情報
Share
Tweet
LINE
Hatena
「AI・機械学習の用語辞典」のインデックス

連載目次

用語解説

 数学/統計学/機械学習におけるジャッカード距離Jaccard distance)とは、2つの集合が「どのくらい異なっているか」の計算値で差異を表す尺度である。具体的には、「2つの集合全体(=和集合:)」から「共通部分(=積集合:)」を除いた要素数を、「2つの集合全体(=和集合:)」に含まれる要素数で割ることで計算される(図1)。このジャッカード距離の値は、01の範囲に正規化され、0なら「完全に同じ集合(=全く異なっていない)」、1なら「全く共通点のない集合(=完全に異なっている)」を意味する。

図1 ジャッカード距離のイメージ
図1 ジャッカード距離のイメージ

 ジャッカード距離の計算値は、1からジャッカード類似度(=ジャッカード係数)を引いたものと同じである。つまりジャッカード距離は、集合間の「重なり」(=類似性:similarity)を測定するジャッカード類似度と対になる概念であり、反対に集合間の「異なり」(=非類似度dissimilarity、言い換えると「距離」)を測定する。よってジャッカード距離は、ジャッカード類似度と同じような用途で逆の指標として使える、と考えるとよいだろう。

定義と数式

 すでに図1と冒頭の解説で計算方法に言及しているが、あらため数式としてまとめ、計算例を示しておく。

 この2つの集合のジャッカード距離、すなわち「この2つの集合がどれだけ異なっているか」を求める数式は、以下のように表される。なお、は「集合全体」(=和集合:「または」と同じ意味)を、は「集合の共通部分」(=積集合:「かつ」と同じ意味)を表し、|……|は集合の要素数を表す。

 つまり、|A ∪ B|は「集合Aと集合Bの両方(=集合全体)」に含まれる要素数を表し、|A ∩ B|は「集合Aと集合Bの共通部分」に含まれる要素数を表す(なお、集合の「対称差」を意味するデルタ記号Δを使うことで、|A ∪ B| − |A ∩ B||A Δ B|と表記することもできる)。この数式によって計算されるジャッカード距離の値は、先ほども説明した通りに01の範囲に収まるようになる。

 例えば、集合A{1, 2, 3}、集合B{2, 3, 4}である場合、A ∪ B{1, 2, 3, 4}4要素であり、A ∩ B{2, 3}2要素である。従って、この場合のジャッカード距離は、以下の計算で0.5となる。

 この結果は、「集合Aと集合Bが半分程度、異なっている」ことを意味する。つまり、2つの集合は「異なっていない(=似ている)」とも「異なっている(=似ていない)」とも言えない中間的な状態にある。

 前述した通り、ジャッカード距離は、値が0に近いほど異なっていないことを、1に近いほど異なっていることを示す。ただし、中間的な値については、具体的な解釈が状況によって異なるため、目的に応じて柔軟に判断することが重要である。

 前掲の図1の例も同様に説明すると、以下のようになる。

  • 集合A{犬, 虎, 猫, 馬}、集合B{犬, 虎, 猫, 馬}である場合、A∪B{犬, 虎, 猫, 馬}4要素であり、A∩B{犬, 虎, 猫, 馬}4要素となるので、ジャッカード距離は(4−4)÷4=0.0である。
  • 集合A{犬, 虎, 猫}、集合B{虎, 猫, 馬}である場合、A∪B{犬, 虎, 猫, 馬}4要素であり、A∩B{虎, 猫}2要素となるので、ジャッカード距離は(4−2)÷4=0.5である。
  • 集合A{犬, 猫}、集合B{虎, 馬}である場合、A∪B{犬, 虎, 猫, 馬}4要素であり、A∩Bは空集合({ })の0要素となるので、ジャッカード距離は(4−0)÷4=1.0である。

用途

 ジャッカード距離は、主にクラスタリング(例:図1のような「動物のグループ分け」)や、文書比較、レコメンデーション(推薦)システムなどで広く利用されている。

 例えば、文書比較では、各文書を単語の集合として捉え、その集合間のジャッカード距離を計算することで、文書同士の違い(=類似度)を評価できる。レコメンデーションシステムでは、ユーザーの行動を集合として表現し、その集合間のジャッカード距離を計算することで、似た(=異なっていない)行動を取るユーザーに対して、似たコンテンツを推薦することが可能となる。

API

 ジャッカード距離は、主要ライブラリにおける以下のクラス/関数で定義されている。

 なお、ジャッカード類似度が計測できれば1からジャッカード類似度を引けばよいだけなので、ジャッカード類似度のクラスや関数でも応用可能である。

「AI・機械学習の用語辞典」のインデックス

AI・機械学習の用語辞典

Copyright© Digital Advantage Corp. All Rights Reserved.

[an error occurred while processing this directive]
ページトップに戻る