最近在研究推荐系统的相关知识,了解到了几个相似度的算法。
欧式距离
import numpy as np from numpy import linalg as la def euclidSimilar(inA, inB): return 1.0/(1.0+la.norm(inA-inB))
皮尔逊相关系数
import numpy as np from numpy import linalg as la def pearsonSimilar(inA, inB): if len(inA) < 3: return 1.0 return 0.5+0.5*np.corrcoef(inA,inB,rowvar=0)[0][1]
余弦相似度
import numpy as np from numpy import linalg as la def cosSimilar(inA, inB): inA=np.mat(inA) inB=np.mat(inB) num=float(inA*inB.T) denom=la.norm(inA)*la.norm(inB) return 0.5+0.5*(num/denom)
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于