最初のステップは、間隔スケールでユーザー情報を提示し、ピアソン相関係数を使用して友人にユーザーを推奨することです。これにより、2つの間隔変数間の線形関係の度合いが測定されます。 たとえば、Dima、Anna、Petya、Sashaの4人のユーザーがいます。 配列内の数値として表される情報(関心、ブログ、年齢など)を知っています。
<?php
//Dima
$name[0]=array(1,4,5,5,4);
//Anna
$name[1]=array(3,5,6,5,4);
//Petr
$name[2]=array(3,2,4,2,1);
//Sasha
$name[3]=array(5,4,3,1,1);
ピアソン係数は次のようになります。
ここで、xiとyiは量的特性を比較します
nは比較された観測値の数です
2番目のステップでは、値を式に挿入し、Dimaに適したユーザーを確認します。
$n=5;
$x=$name[0];
$y=$name[1];
for ($j=1;$j<count($name);$j++) {
$x=$name[0];
$y=$name[$j];
//begin
$s_x=0;
$s_y=0;
$s_pow_x=0;
$s_pow_y=0;
$s_x_y=0;
//x*y
for ($i=0;$i<5;$xy[$i]=$x[$i]*$y[$i],$i++);
//x pow 2
for ($i=0;$i<5;$x_pow_2[$i]=$x[$i]*$x[$i],$i++);
//y pow 2
for ($i=0;$i<5;$y_pow_2[$i]=$y[$i]*$y[$i],$i++);
//Summa xi
for ($i=0;$i<5;$s_x+=$x[$i],$i++);
//Summa yi
for ($i=0;$i<5;$s_y+=$y[$i],$i++);
//Summa x pow 2
for ($i=0;$i<5;$s_pow_x+=$x_pow_2[$i],$i++);
//Summa y pow 2
for ($i=0;$i<5;$s_pow_y+=$y_pow_2[$i],$i++);
//Summa x*y
for ($i=0;$i<5;$s_x_y+=$xy[$i],$i++);
$r_x_y=(($n*$s_x_y)-($s_x*$s_y))/sqrt((($n*$s_pow_x) - ($s_x*$s_x))*(($n*$s_pow_y) - ($s_y*$s_y)));
print $r_x_y;
}
値が1に近いほど、彼らの興味が彼の興味と一致する可能性が高くなります。
名
| 彼は私たちの友達です
| 出力値
|
アーニャ
| (80%)
| 0.880704845928
|
ペティア
| (0%)
| -0.0800640769025
|
サーシャ
| (0%)
| -0.697424162876
|