I do at the moment some data experiments with the Graphlab toolkit. I have at the first next SFrame, with the three columns:
Users Items Rating
The pair in the same row from every Users
and Items
values build the unique key and the Rating
is the corresponded float value. These values are not normalised. First of all, I do someself next normalisation:
- Division of every rating value of specific user by the rating maximum from this user (scale between 0 and 1)
- Take the logarithm by every rating value
Afterward I create a recommender model and evaluate the basic metrics for it.
In this topic I invite everybody to discuss another interesting normalisation methods. If anybody could tell some good method for data preparation, it would be great. The results could be evaluated because of the metrics and I can publish it here.
PS
My dataset is comming from some music site, the users rated some tracks. I have approximately 100 000 users and 300 000 tracks. Total number of ratings is over 3 millions (actually the matrix is sparse). This is the most simple data set, which I analyze now. In the future I can (and will) use some additional information about the users and tracks (f.e. duration, year, genre, band etc). At the moment I just interest to collect some methods for rating normalisation without to use additional information (users & items features). My problem is, the data set doesn't have any Rating
at the first. I create someself the column Rating
, based on the number of events for unique User-Item
pair (I have this information). You can of course understand that some users can hear some tracks many times, and another users only one time. Consequently the dispersion is very high and I want to reduce it (normalise the ratings value).