いろいろな類似度

協調フィルタリグとか、テキストマイニングクラスター分析などで よく出てくる共起性とか類似性とかの いろいろ

共起頻度
 - 集合表記:   |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| )