简易推荐系统功能:
1.基于物品相似度,向同一用户推荐不同的相似商品(user:items=1:N);
2.基于用户相似度,将同一商品推荐给不同的未购买用户(users:item=N:1);
#coding=utf-8
"""
简易推荐系统:
1.基于物品相似度,向同一用户推荐不同的相似商品(user:items=1:N);
2.基于用户相似度,将同一商品推荐给不同的未购买用户(users:item=N:1);
"""
from numpy import *
from numpy import linalg as la
'''加载测试数据集'''
def loadExData():
return np.mat([[0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 5],
[0, 0, 0, 3, 0, 4, 0, 0, 0, 0, 3],
[0, 0, 0, 0, 4, 0, 0, 1, 0, 4, 0],
[3, 3, 4, 0, 0, 0, 0, 2, 2, 0, 0],
[5, 4, 5, 0, 0, 0, 0, 5, 5, 0, 0],
[0, 0, 0, 0, 5, 0, 1, 0, 0, 5, 0],
[4, 3, 4, 0, 0, 0, 0, 5, 5, 0, 1],
[0, 0, 0, 4, 0, 4, 0, 0, 0, 0, 4],
[0, 0, 0, 2, 0, 2, 5, 0, 0, 1, 2],
[0, 0, 0, 0, 5, 0, 0, 0, 0, 4, 0],
[1, 0, 0, 0, 0, 0, 0, 1, 2, 0, 0]])
'''以下是三种计算相似度的算法,分别是欧式距离、皮尔逊相关系数和余弦相似度,
注意三种计