• home
  • about
  • 全ての投稿
  • ソフトウェア・ハードウェアの設定のまとめ
  • 分析関連のまとめ
  • ヘルスケア関連のまとめ
  • 生涯学習関連のまとめ

集合の類似度

date: 2021-11-17 excerpt: 集合の類似度について

tag: statisticsjaccarddicesimpson集合の類似度


集合の類似度について

概要

  • 2つの集合\(X\), \(Y\)の類似度を測る指標
  • jaccard, dice, simpsonなどがある

定義

jaccard

\[\frac{|X\cap Y|}{|X\cup Y|}\]

dice

\[\frac{2|X\cap Y|}{|X|+|Y|}\]

simpson

\[\frac{|X\cap Y|}{\min(|X|,|Y|)}\]

各種指標のゆるさ、厳しさ

シミュレーションを行うと、simpson > dice > jaccardの順でゆるい

data = []
for i in range(10000):
    X = set(random.sample(string.ascii_lowercase, random.randint(10, 15)))
    Y = set(random.sample(string.ascii_lowercase, random.randint(10, 15)))
    jaccard = len(X & Y) / len(X | Y)
    simpson = len(X & Y) / min(len(X), len(Y))
    dice = 2*len(X & Y) / (len(X) + len(Y))
    data.append( (jaccard, simpson, dice) )
df = pd.DataFrame(data)
df.columns = ["jaccard", "simpson", "dice"]
df

google colab

  • colab

参考

  • Jaccard係数、Dice係数、Simpson係数


statisticsjaccarddicesimpson集合の類似度 Share Tweet