Я новичок в машинном обучении и недавно изучаю KNN. Я нашел здесь модель совместной фильтрации, основанную на пользователях, с KNN, и у меня возникла путаница: https://github.com/mbodenham/k-nn-movie-recommender
В этой модели будут найдены ближайшие соседи и список не просмотренных фильмов. что целевой пользователь не наблюдал, но соседи смотрели возвращаются. Затем рейтинг этих фильмов прогнозируется средневзвешенным значением рейтинга соседей. Предположим, я ввел пользователя 55, затем вернулись самые близкие пользователи к пользователю 55. После этого возвращаются 10 лучших рекомендаций с прогнозируемыми оценками, основанными на том, что понравилось подобным пользователям.
В этом случае я хотел бы знать, как мы оцениваем модель (например, RMSE). Насколько я понимаю, чтобы оценить модель, данные должны быть разделены на набор поездов и набор тестов. Затем производительность может быть оценена путем сравнения прогнозируемых результатов и фактических результатов. Однако я не совсем уверен, как разделить разреженную матрицу (с индексом, столбцами и значениями, установленными на идентификатор пользователя, идентификатор фильма и рейтинг), используемые в этой модели.
Вот еще одна путаница:
Предположим, в наборе тестов один из тестовых наборов имеет вид (mov ie id = 10, id пользователя = 55, рейтинг = 4.5). Как я могу получить прогнозируемый рейтинг этого mov ie 10 от пользователя 55, чтобы оценить этот тестовый набор? Предсказываемый mov ie контролируется соседями. Если все соседи не смотрят mov ie, как мне получить прогнозируемый рейтинг?