协同过滤推荐算法实现。
已有训练好的推荐模型。模型的输入:
1、食谱id的索引(数据清洗出的新数据(约1000条)在原数据(约17万条)的索引),类型为tensor数组。
2、用户id。类型是long数组,长度等于食谱id,即一个用户id的重复。
首先获取食谱id的索引:
从数据清洗同学给的新数据中,提取出纯id的csv文件,再利用python转化为npy文件。
pdata = pd.read_csv("id.csv", header=None)
npdata = pd.DataFrame(pdata).values
npdata = npdata.ravel() #降维[[...]]->[...]
np.save("indexT.npy", npdata)
直接转换得到的是二维numpy数组:
需要降成一维(其实就是双括号改为单括号),否则模型读取会出错。
然后已有文件recipe_index_list_new.npy:[172946]recipe在原数据中和现数据中的索引对应关系。
利用这个文件,和上面获得的清洗后的食谱id的npy文件,就可以获得模型需要的新数据的索引。
data = np.load("recipe_index_list_new.npy")
for i in npdata:
x = np.where(data == i)
print (x[0])