いろいろな類似度
協調フィルタリグとか、テキストマイニング、クラスター分析などで よく出てくる共起性とか類似性とかの いろいろ
・共起頻度
- 集合表記: |A ∩ B| (共起している要素の数)
- ベクトル表記: Va・Vb (内積)
Σ(a_i*b_i)なので、各次元の値が{0,1}で 1が<起こった>なら 共起個数を数えているに等しい。
・ユークリッド距離:
単純だが現実のデータ間の類似度が表現できないと言われている。なぜ??。 正規化されてればOKだそうだ。
- ベクトル表記: |Va - Vb|
√( Σ(a_i - b_i)^2 ) :CityBlock距離でやることも
・標準化ユークリッド距離
・Karl Pearson距離(scaled Euclidean距離)
- 標準偏差でユークリッド距離を基準化
・cosine距離
- 集合表記: |A ∩ B| / |A|*|B|
- ベクトル表記: Va・Vb / |Va| * |Vb| (ベクトルのなす角θのcosine)
内積の定義は cosθ*|Va| * |Vb| なので、定義式がcosθを求めているのは自明。
{0,1}の2項空間なら、角度だけ気にすればよい。(長さの差はバリエーション少ないので、無視しても問題ないという判断であろう)
・ピアソン相関(積率相関係数)
- ベクトル表記:AとBの共分散 / Aの標準偏差 * Bの標準偏差
これは、A={a_i}の相加平均をAveA=1/N*Σa_iと表すと、平均からのズレベクトルAA={a_i - AveA}が定義できる。同様にBB={b_i - AveB}。
AAとBBのcosine距離(Vaa・Vbb / |Vaa| * |Vbb|)と同義。
1/n*Σ(AA_i*BB_i)/(√(1/n*ΣAA_i^2) * √(1/n*ΣBB_i^2)) = Σ(AA_i*BB_i)/(√ΣAA_i^2 * √ΣBB_i^2)
・Jaccard係数
- 集合表記: |A ∩ B| / |A ∪ B| (どちらかが出現場合に対する共起の割合)
- ベクトル表記: Va・Vb / ( |Va| + |Vb| - Va・Vb )
・一致係数
- 集合表記: (|A ∩ B|+|not (A ∪ B)|) / 全体
・Simpson係数
- 集合表記: |A ∩ B| / min( |A|,|B| )