0,皮尔逊相关系数:(python 代码)
#!/usr/bin/env python # -*- coding:utf-8 -*- import math def pearson(vector1, vector2): n = len(vector1) #simple sums sum1 = sum(float(vector1[i]) for i in range(n)) sum2 = sum(float(vector2[i]) for i in range(n)) #sum up the squares sum1_pow = sum([pow(v, 2.0) for v in vector1]) sum2_pow = sum([pow(v, 2.0) for v in vector2]) #sum up the products p_sum = sum([vector1[i] * vector2[i] for i in range(n)]) #分子num,分母den num = p_sum - (sum1*sum2/n) den = math.sqrt((sum1_pow - pow(sum1, 2)/n) * (sum2_pow - pow(sum2, 2) / n)) if den == 0: return 0.0 return num / den if __name__ == '__main__': vector1 = (1, 0, 3, 0, 0, 5, 0, 0, 5, 0, 4, 0) vector2 = (0, 0, 5, 4, 0, 0, 4, 0, 0, 2, 1, 3) vector1 = [2, 7, 18, 88, 157, 90, 177, 570] vector2 = [3, 5, 15, 90, 180, 88, 160, 580] print pearson(vector1, vector2)
https://blog.csdn.net/AlexMerer/article/details/74908435
1,基于用户的协同过滤(user-based collaborative filtering):
找到最相似的用户A, B,把A用户喜欢的推荐给B用户。
2,基于物品的协同过滤(item-based collaborative filtering):
找到最相似的物品item_1、item_2,A用户看了item_1, 就给他也推荐item_2。
3, UserCF, ItemCF:
4, 隐语义模型(latent factor model)
https://blog.csdn.net/sinat_33741547/article/details/52976391