首先将两个样本映射到特空间中,得到特征向量表示,然后计算两个特征向量之间的相似度。
计算方法:
余弦值越大,两个样本越相似。
代码实现:
public double cosineSimilarity(int[] A, int[] B) {double up=0;double downl=0;double downr=0;for(int i=0;i<A.length;i++){int a=A[i];int b=B[i];up+=a*b;downl+=a*a;downr+=b*b;}downl=Math.sqrt(downl);downr=Math.sqrt(downr);if(downl==0||downr==0){return 2;}else{return up/(downl*downr);}}}