資源簡介
使用Java 語言,實現了皮爾森和余弦相似度公式,供大家參考。
代碼片段和文件信息
/**
*class?similarity提供將要比較相似的的向量放到二維數組中,
×然后計算向量直接的?皮爾森pearson,和余弦相似度的計算。
×
×@author?fengsushi
*/
public?class?similarity?{
public?similarity(){System.out.println(“similarity?has?run!!“);}
?//static?int[][]?uiarray={{554113}{544111}{444113}{154123}{453222}{214153}};
?//static?int?row=6;
//?static?int?clo=6;
?//static?double[][]?uiarray={{3.881.5}{3.6333347.291651.3125}{3.871}{3.8083346.6251.625}};
//?static?int?row=4;
?//static?int?clo=3;
?//static?int[][]?uiarray={{2111211212}{5454545454}{4534554453}{2122112212}};
?//static?int?row=4;
?//static?int?clo=10;
private??int[][]?uiarray={{554113}{445224}{544111}{453123}{534141}};//存放要比較相似度的向量
private?int?row=5;//uiarray數組的行列數
private?int?clo=6;
?private?double?av[]=new?double[row];//存放uiarray中每個向量的平均值
?private?double?wei_pearson[]=new?double[row];//存放相似度計算結果,即用pearson公式生成的用戶之間的相似度similarity。
?private?double?wei_consin[]=new?double[row];//存放相似度計算結果,即用余弦公式生成的用戶之間的相似度similarity。
?
?
?/*
?*用pearson公式計算向量之間的相似度
?*/
public?void?pearson(){
//求每個人的平均值
for(int?i=0;i
float?avi=0;//存放每個向量各個元素的平均值
float?sumrate=0;//存放向量各個元素的和
??for(int?j=0;j ?sumrate+=uiarray[i][j]; ??
???????????}
avi=sumrate/clo;
av[i]=avi;
System.out.print(“第“+(i+1)+“:“+av[i]);
???????}?
System.out.println();
System.out.println(“pearson:“);
for(int?i=0;i
?double?sum1=0;
?double?sum2=0;
?double?sum3=0;
?double?sum33=0;
?double?sumji=0;
??for(int?j
- 上一篇:出租屋管理系統手冊
- 下一篇:jsp程序設計課后習題答案
評論
共有 條評論