I'm trying to convince myself that that collaborative filtering works as well as I hoped. I'm impressed by the neural net beating the state of the art, but how good is that?
I added a column to the validation set like this:
review = pd.DataFrame(val)
review['prediction'] = nn.predict([val['userId'], val['movieId']])
Eyeballing the result:
I'm sure there's a better way to do this:
errors = review.apply(lambda x: np.sqrt(np.abs(np.square(x['rating']) - np.square(x['prediction']))), axis=1)
Can you think of a better way to visualize the performance of the model?