10M MovieLens dataset

We worked until now with a small sample of the total GroupLens dataset of movie ratings. As presented in the beginning, we worked with 100,004 entries, with rating from 671 users to 9,066 movies.

We will work now with a bigger set of the data, the 10M version, which approximates more to the full dataset. The 10M version contains 10 million entries, with rating from 72,000 users to 10,000 movies. The size of the dataset poses a new challenge, since it requires much more processing power from the computer.

Our goal will be applying an algorithm to study the internal structure of the data and predict ratings for movies, based on available data of other users and movies ratings and minimize the residual mean squared error of the predictions.
We start by downloading this set and doing some preprocessing.

Creation of the training and testing set. The test set will be 10% of the MovieLens data.

We can look the size of the training dataset.

From previous analysis, the Movie and User Regularized model achieved the highest accuracy and will be applied to the 10M dataset.
Our first step will be applying 10-fold cross validation to tune the best $\lambda$ parameter for our regularization model.

The optimal tunned parameter is $\lambda = 4.75$. We apply this $\lambda$ to the entire training set to fit the model and predict it on the test set.

We achieved a very good RMSE. In comparison to the small dataset, the 10M set presented a better result.

Movie, User and Genre effect

In previous analysis we verified that there is correlation between the rating and movie genres. This was reinforced by looking at the matrix factorization.
We now try to improve our prediction model by adding the $b_{g}$ genre effect.
The size of the dataset prevent us from using time and memory consuming actions, so we will proceed with the genres as their original info. We group together each different genre or combination of genres and look for their average values, applying to the model.
At the end we also apply regularization to the data.
We start by tunning the $\lambda$ parameter with 10-fold cross validation.

The best $\lambda$ tunned is 4.75. We now test our prediction on the test set.

Movies recommendation application

Including the genres as predictors in the model, we can try some direct approach.
One application is analyzing a user profile, by finding which genres a specific user watched more and applying the model only to those movies that include the most watched genre(s).
Other application is to apply the model in the search tool, for each individual genre. Here we will present an example, with a user searching for romance movies to watch. We look at the dataset and show those with the highest prediction.