I am trying to predict the extent of suitability (0.5 to 3.5) for a section of non-fiction books based on a few parameters. This is for a set of subscribers that we want to predict books suitability: based on score I plan to display star ratings: most suitable(2.5 to 3.5), mildly suitable(1.5 to 2.5), not relevant (0.5 to 1.5).
subject: categorical (humor, adventure, mystery, sports, non-fiction)
recency of book: categorical
We initially start with a default profile for all user and after getting feedback from him (as 1, 2 or 3 stars), build a customized profile.
Given that we will initially start with small volume of user data, looking to do a k-NN to identify nearest neighbors on the dimensions, and calculate suitability score based on weighted suitability of those neighbors.
Given the categorical data, I wanted to create custom distance matrices so that I could provide the relative distance between categories. (e.g. to indicate that humor and adventure are close preferences; sports and nonfiction are far apart)
- Is my current approach valid- any feedback or pointers?
- What specific k-NN implementation (package) would allow me to provide my custom distance matrices?