4

1 と 4、3 と 4 についても同様に、PHP で 1 (ID1) と 3 (ID1) の間のコサイン類似度を計算したいと思います。式は次のようになります。

類似度 = (1.1 * 3.1 + 1.4 * 3.4)/(((1.1)^2+(1.3)^2+(1.4)^2)^0.5)(((3.1)^2+ (3.4)^2)^ 0.5) = (4*4+8*4)/(((16+16+64)^0.5)(16+16)^0.5))

私のデータセットは次のようになります。

ID1    ID2    Value  
1      1       4     
1      3       4     
1      4       8     
3      1       4     
3      4       4    
4      1       8     
4      3       4  

このためにPHPでコサイン類似度を計算するコードはありますか?

4

1 に答える 1

4

数式は、プログラミング言語に関係なく、数学では一般的です。

長さ n の 2 つのベクトルがある場合:

u = (u1, u2, ...., un) and v = (v1, v2, ...., vn)

次に、コサイン類似度 (別名内積) は次のとおりです。

u1*v1 + u2*v2 + .... + un*vn
_____________________________
     len(u) * len(v) 

どこでlen(u) = sqrt(u1*u1 + u2*u2 + .... + un*un); 同様にlen(v)

于 2013-05-28T23:48:29.093 に答える