Обработка неполных данных (Разреженность данных )в kNN

Я пытаюсь создать простую рекомендательную систему, используя knn.

Допустим, у меня есть таблица.:

User | Book1 | Book2 | Book3 | Book4 | Book5 | Book6 | Book7 |
1    | 5     | ?     | 3     | ?     | 4     | 3     | 2     |
2    | 3     | 4     | ?     | 2     | 3     | 4     | 2     |
3    | 4     | 2     | 1     | ?     | ?     | 3     | 3     |
4    | 2     | 5     | 3     | ?     | 4     | 1     | 1     |
5    | 1     | 1     | 4     | 3     | 1     | ?     | 1     |
6    | 5     | 2     | 5     | 4     | 4     | 2     | ?     |

Итак, если найти возможные баллы для пользователя 1, я подумал, что просто возьму абсолютную разницу между книгами, которые пользователь 1 читал с другими пользователями. Затем я бы использовал эту разницу, чтобы узнать, какой пользователь из этого списка «ближайший» к пользователю 1. Но в реальной ситуации было бы больше?/неизвестных оценок. Итак, как мне справиться с этими неизвестными оценками при использовании knn?

У меня нет кода, так как я еще не совсем понял, как это реализовать.

Любая помощь приветствуется!

6
задан amit 9 May 2012 в 23:09
поделиться