I have just created an algorithm for item based collaborative filtering, that can take an array of data in the form [username]=>[item]=>[rating] and recommend other items based on the current items the user has rated/bought by calculating a prediction of the rating the user will give that item if he were to use it and rate it.
My question is, how do I check the accuracy of my recommendation system?
Pick a number of random users and items you actually have the rating for and try to predict the rating using your algorithm. Calculate the RMSE between your prediction and the actual rating. The lower the value, the better.
Depending on your algorithm, the fact that you have the rating for the item might introduce a heavy bias to your RMSE. In that case, perform your calculations as if you didn’t know the rating (eg: move everything to a separate database and discard the records you are trying to “predict”).
Interesting read: The Netflix Prize