備忘録

物忘れが酷いので

ピアソン相関

 

サンプルを比較するために使えます

f:id:monowasure78:20130208223526p:plainからなる数値列に対して、ピアソン相関係数は

\frac{\sum_{i=1}^n (x_i - \overline{x})(y_i - \overline{y} ) }{\sqrt{\sum_{i=1}^n (x_i - \overline{x})^2}\sqrt{\sum_{i=1}^n (y_i - \overline{y})^2}}

で与えられます。

集合知プログラミング」という本によると、

\frac{\sum_{i=1}^n x_i y_i -\frac{\sum_{i=1}^n x_i \sum_{i=1}^n y_i}{n}}{\sqrt{(\sum_{i=1}^nx_i^2 - \frac{(\sum_{i=1}^n x_i)^2}{n})(\sum_{i=1}^n y_i^2 - \frac{(\sum_{i=1}^n y_i)^2}{n})}}

で与えられる。

こちらの利点は1回のループで相関係数を求められることです。

この本のMovieLensというサイトのデータを用いた演習でそれぞれの時間を計測したところ、

上:14808ms

下:13709ms

と差がでました。

より大きなデータでは、影響があるかもしれません。

 

(メモ)

協調フィルタリングで類似度を求めるときはある程度共通するアイテムの数があるときのみ求め、少ない時は0とすべき。

 

 

集合知プログラミング

集合知プログラミング

 

 

ユークリッド距離

n-次元ベクトル\vec~{P},\vec~{Q}があった時、P,Qの座標を

x = (x_1,x_2,...,x_n) , y = (y_1,y_2,...,y_n)とすると

ベクトルの距離

\sqrt{\sum_{i=0}^n ( x_i - y_i )^2} 

ユークリッド距離(ユークリッド空間での距離)です。

n個の要素を持ったものの類似度などを求めるのに使えます。色とか。