In the collaborative filtering lesson, I can see that the predict function gives me the predictions for the validation indexes.
preds = learn.predict()
y=learn.data.val_y
sns.jointplot(preds, y, kind='hex', stat_func=None);
What can I do to get predictions for one particular user and one particular movie or even for one given row?
2 Likes
teeyare
(Rahmatallah Tarik)
August 27, 2018, 8:47am
2
I’m also wondering if there’s a way to specify a test set and then call predict with is_test=True. For now to make a prediction on only one observation I do it manually:
def id2idx(uid, mid):
return cf.user2idx[uid], cf.item2idx[mid]
def predict_rating(uidx, midx):
res = (m.u(V(uidx)) * m.i(V(midx))).sum(1)
res = F.sigmoid(res + m.ub(V(uidx)) + m.ib(V(midx))) * (max_rating - min_rating) + min_rating
return to_np(res.squeeze())
predict_rating(*id2idx(15, 1))
mark598
(Mark Dutton)
May 18, 2020, 5:16am
3
Have either of you found the best way to get predictions for all user/movie combinations while making sure the index/embeddings all are synced up?