相似性度量方法
来源:互联网 发布:sql join 多表 编辑:程序博客网 时间:2024/05/11 23:48
欧几里得相似度
# Returns a distance-based similarity score for person1 and person2def sim_distance(prefs,person1,person2): # Get the list of shared_items si={} for item in prefs[person1]: if item in prefs[person2]: si[item]=1 # if they have no ratings in common, return 0 if len(si)==0: return 0 # Add up the squares of all the differences sum_of_squares=sum([pow(prefs[person1][item]-prefs[person2][item],2) for item in prefs[person1] if item in prefs[person2]]) return 1/(1+sum_of_squares)
皮尔逊相似度
# Returns the Pearson correlation coefficient for p1 and p2def sim_pearson(prefs,p1,p2): # Get the list of mutually rated items si={} for item in prefs[p1]: if item in prefs[p2]: si[item]=1 # if they are no ratings in common, return 0 if len(si)==0: return 0 # Sum calculations n=len(si) # Sums of all the preferences sum1=sum([prefs[p1][it] for it in si]) sum2=sum([prefs[p2][it] for it in si]) # Sums of the squares sum1Sq=sum([pow(prefs[p1][it],2) for it in si]) sum2Sq=sum([pow(prefs[p2][it],2) for it in si]) # Sum of the products pSum=sum([prefs[p1][it]*prefs[p2][it] for it in si]) # Calculate r (Pearson score) num=pSum-(sum1*sum2/n) den=sqrt((sum1Sq-pow(sum1,2)/n)*(sum2Sq-pow(sum2,2)/n)) if den==0: return 0 r=num/den return r
Tanimoto系数
#代表交集与并集的比率def tanamoto(v1,v2): c1,c2,shr=0,0,0 for i in range(len(v1)): if v1[i]!=0: c1+=1 # in v1 if v2[i]!=0: c2+=1 # in v2 if v1[i]!=0 and v2[i]!=0: shr+=1 # in both return 1.0-(float(shr)/(c1+c2-shr))
0 0
- 字符串相似性度量方法
- 相似性度量方法
- 图像相似性度量方法
- 常用的相似性度量方法
- 距离和相似性度量方法
- 相似性度量
- 相似性度量
- 相似性度量
- 相似性度量
- 相似性度量
- 相似性度量
- 相似性度量
- 相似性度量
- 相似性度量
- 相似性度量
- 相似性度量
- 相似性度量
- 相似性度量
- 路灯 简单的排序和考虑边界
- hdu5823 color II
- android官方文档之路--AppWidget
- Struts2 实现文件上传(1)
- HDU5532 Almost Sorted Array 最长上升子序列 国庆咸鱼 未完待续
- 相似性度量方法
- 151. Reverse Words in a String
- FFmpeg Dev Intro - av_seek_frame
- 时间类
- 【心情】Priority_queue容器的用法
- GC(G1算法)
- hdu 5213(莫队+容斥)
- Web前端面试指导(二十二):用js实现千位分隔符,怎么实现?
- HDU5533 Dancing Stars on Me 数学 国庆咸鱼