ジャッカード係数

二つの集合がどのくらい似ているのか表す指標である、ジャッカード係数(Jaccard index)を紹介します。

Wikipedia: Jaccard index

これは二つの集合$A, B$に対して、その共通部分の元の個数を、和集合の元の個数で割ったものです。
$A, B$のジャッカード係数$J(A, B)$を数式でと次のようになります。

$$
J (A, B) = \frac{|A \cap B|}{|A \cup B|}
$$
単に共通部分の大きさを数えるだけでなく、和集合の元の個数で割ることにより正規化していることがポイントです。
定義から明らかに、 $0\leq J (A, B) \leq 1$ であり、二つの集合に交わりが大きいほど値が大きくなります。
また、二つの集合がどちらも空集合の時は$1$と定義するそうです。(これは知らなかった)
空集合同士で等しいからそれを表現するためと考えると納得です。

よく似た概念に、ジャッカード距離(Jaccard distance)があります。
距離なので、二つの集合が似てるほど値が小さくなって欲しく、差が大きいほど値が大きくなって欲しいので、次のように定義されています。
$$
d_J(A, B) = 1 – J (A, B) = \frac{|A \cup B| – |A \cap B|}{|A \cup B|}
$$

自分はこれを自然言語処理で使うことが多くあります。
テキストを単語の集合としてテキストの類似度を測ったり、
単語を文字の集合として単語の類似を測ったりですね。

コメントを残す

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