最近在研究推荐系统的相关知识,了解到了几个相似度的算法。
欧式距离
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)
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于