I'm learning to make a book recommendation system but I am facing some difficulties to evaluate the model. I chose the collaborative filtering item based strategy. The dataset is a matrix (book, user) filled with the ratings of the books. The dataset is something like:
user_a user_b user_c ... user_x
book_1 0 3 5 ... 4
book_2 2 1 0 ... 0
book_3 0 0 0 ... 2
...
Bellow the code to train the model.
from sklearn.neighbors import NearestNeighbors
model = NearestNeighbors(metric='cosine', algorithm='brute')
model.fit(dataset)
# get the index of a book that contains 'harry potter' in its name
title = 'Harry Potter'
mask = books['title'].str.contains(title)
book_isbn = books[mask]['isbn']
mask = X.index.isin(book_isbn)
book_reference = X[mask].head(1)
# find the 5 nearest books from 'harry potter'
k = 5
distances, indices = model.kneighbors(book_reference.values, n_neighbors=k+1)
Well, the thing is 'kneighbors()' function is returning the distances of the 5 nearest vectors(books) from 'book_reference' and their indices. I don't know how evaluate the performance of this model since its not making predictions. How can I do this?