In [2]:
#!/usr/bin/python
# -*- coding: utf-8 -*-
__author__ = '3404199'
import numpy as np
import Parser
import itertools
import Tools
from Models import *
In [2]:
datafile = r"../ml-100k/u.data"
# Best config from GridSearch
config = [10,20,0.1,0.1]
# Now learn the model for the whole data
model = SVDGD(datafile, epochs=config[0], nZ=config[1], lambda_4=config[2], learning_rate=config[3])
In [5]:
print "Global bias: {:1.3f}".format(model.mi)
In [16]:
save_dir = "../export_data"
if not os.path.isdir(save_dir):
os.makedirs(save_dir)
# Export user_bias
np.savetxt("{}/user_bias.csv".format(save_dir),model.user_bias,delimiter=",")
# Export item_bias
np.savetxt("{}/item_bias.csv".format(save_dir),model.item_bias,delimiter=",")
# Export user_latent
np.savetxt("{}/user_latent.csv".format(save_dir),model.user_latent[1:,:],delimiter=",")
# Export item_latent
np.savetxt("{}/item_latent.csv".format(save_dir),model.item_latent[1:,:],delimiter=",")
In [13]:
model.user_latent[1:,:].shape
Out[13]:
In [5]:
pairs_lt = Tools.folder2pairs(r"../ml-100k/")
m_score = 0.0
for pair in pairs_lt:
bias = Bias(Parser.MatrixParser.txttocsc(pair[0]), "item_{}.png".format(pair[2]), case='item')
score = bias.predict(Parser.MatrixParser.txttocsc(pair[1]))
print pair[2], score
m_score += score
print "Mean Item", m_score/len(pairs_lt)
In [7]:
pairs_lt = Tools.folder2pairs(r"../ml-100k/")
m_score = 0.0
for pair in pairs_lt:
bias = Bias(Parser.MatrixParser.txttocsc(pair[0]), "item_{}.png".format(pair[2]), case='user')
score = bias.predict(Parser.MatrixParser.txttocsc(pair[1]))
print pair[2], score
m_score += score
print "Mean user", m_score/len(pairs_lt)
In [8]:
datafile = r"../ml-100k/u.data"
In [9]:
biasI = Bias(Parser.MatrixParser.txttocsc(datafile), "tmp.png", case='item')
biasU = Bias(Parser.MatrixParser.txttocsc(datafile), "tmp.png", case='user')
In [13]:
np.transpose(biasI.pred).shape
Out[13]:
In [15]:
save_dir = "../export_data"
# Export user_bias
np.savetxt("{}/user_biasBasic.csv".format(save_dir),np.transpose(biasU.pred),delimiter=",")
# Export item_bias
np.savetxt("{}/item_biasBasic.csv".format(save_dir),np.transpose(biasI.pred),delimiter=",")
In [ ]: