From 96454bc3c672a003eb60db927879474845f8f968 Mon Sep 17 00:00:00 2001 From: shelldweller Date: Mon, 13 Sep 2021 21:17:53 -0600 Subject: [PATCH] added pagebreak and moved the graphs around to fit better. --- movielens-recommendation-system.Rmd | 9 +++++---- movielens-recommendation-system.pdf | Bin 188771 -> 188721 bytes 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/movielens-recommendation-system.Rmd b/movielens-recommendation-system.Rmd index e611d2f..8601429 100644 --- a/movielens-recommendation-system.Rmd +++ b/movielens-recommendation-system.Rmd @@ -90,6 +90,7 @@ rm(dl, ratings, movies, test_index, temp, movielens, removed) The resulting working set `edx` is further split into a training set and a test set which will be used to evaluate various methods. The test set comprises of 20% of the `edx` working set. No attempt is made to ensure that all the users and movies in the test set are also in the training set. This leads to a fortunate insight later, and thus has been included as part of the discovery process. +\newpage ## Analysis ### Outline of Steps Taken @@ -171,10 +172,6 @@ rmse_results <- bind_rows(rmse_results, tibble(method="Movie Effect Model", RMSE = bi_rmse)) -# How many NA values do we need to get rid of? -nas <- sum(is.na(predicted_ratings)) -paste("There are", as.character(nas), "NA values in our predictions, which need to be removed.", sep= " ") - # Plot movie and user histograms to get an idea of what is going on edx %>% group_by(userId) %>% summarize(reviews = n()) %>% ggplot(aes(reviews)) + geom_histogram(color = "black", bins = 50) + scale_x_log10() + ggtitle("Number of reviews per user") + xlab("Number of reviews (log scale)") + @@ -183,6 +180,10 @@ edx %>% group_by(userId) %>% summarize(reviews = n()) %>% ggplot(aes(reviews)) + edx %>% group_by(movieId) %>% summarize(reviews = n()) %>% ggplot(aes(reviews)) + geom_histogram(color = "black", bins = 50) + scale_x_log10() + ggtitle("Number of reviews per movie") + xlab("Number of reviews (log scale)") + ylab("Count of movies") +# How many NA values do we need to get rid of? +nas <- sum(is.na(predicted_ratings)) +paste("There are", as.character(nas), "NA values in our predictions, which need to be removed.", sep= " ") + ``` Not very many `NA` values are being generated. This is most likely due to movies and/or users in the training set that are not present in the test set, or vice versa. This was avoided in the original data set by using the `inner_join` function. Instead, we attempt to remove any movies or users with extremely low rating counts. The assumption is that movies with only a few ratings affect the mean and therefore the error without contributing much to the overall effect. The same could be said for users who have only rated a few movies. Removing these low-frequency observations prevents `NA` values in the predicted ratings and allows the RMSEs to be calculated. A more rigorous approach needs to be formulated as this is only a temporary workaround. diff --git a/movielens-recommendation-system.pdf b/movielens-recommendation-system.pdf index 45236e656b6c5bc15b428d8ae70cf23fc4121be8..6c86e91673417dc2f603c125ec1bac0daec5f32c 100644 GIT binary patch delta 17127 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