IS 643 - Special Topics: Recommender Systems Department of Data Analytics, City University of New York

Matrix Factorization Method

data("MovieLense")

#subsetting MovieLense data set to a 10 x 20 Matrix
sub_Movies<-MovieLense[c(1:20),c(1:10)]

#converting realRatingmatrix to matrix
Movie_n<-as(sub_Movies, "matrix")

hist(Movie_n, xlab = "Ratings",main = paste("Histogram of Ratings"))

#replacing NA with random ratings
rna<-matrix(sample(1:5,200,replace=TRUE),ncol=10,byrow=FALSE) 

Movie_n[is.na(Movie_n)]<-sample(rna[,1:5]) 
## Warning in Movie_n[is.na(Movie_n)] <- sample(rna[, 1:5]): number of items
## to replace is not a multiple of replacement length
head(Movie_n)
##   Toy Story (1995) GoldenEye (1995) Four Rooms (1995) Get Shorty (1995)
## 1                5                3                 4                 3
## 2                4                2                 5                 1
## 3                3                4                 1                 4
## 4                4                2                 3                 3
## 5                4                3                 3                 1
## 6                4                1                 3                 2
##   Copycat (1995) Shanghai Triad (Yao a yao yao dao waipo qiao) (1995)
## 1              3                                                    5
## 2              1                                                    5
## 3              1                                                    3
## 4              3                                                    3
## 5              2                                                    4
## 6              5                                                    1
##   Twelve Monkeys (1995) Babe (1995) Dead Man Walking (1995)
## 1                     4           1                       5
## 2                     4           4                       4
## 3                     2           3                       3
## 4                     3           3                       1
## 5                     4           5                       2
## 6                     2           4                       4
##   Richard III (1995)
## 1                  3
## 2                  2
## 3                  5
## 4                  5
## 5                  4
## 6                  5
summary(Movie_n)
##  Toy Story (1995) GoldenEye (1995) Four Rooms (1995) Get Shorty (1995)
##  Min.   :1.0      Min.   :1.00     Min.   :1.00      Min.   :1.00     
##  1st Qu.:3.0      1st Qu.:2.75     1st Qu.:2.00      1st Qu.:3.00     
##  Median :4.0      Median :3.00     Median :3.00      Median :4.00     
##  Mean   :3.5      Mean   :3.30     Mean   :2.75      Mean   :3.55     
##  3rd Qu.:4.0      3rd Qu.:4.25     3rd Qu.:3.25      3rd Qu.:5.00     
##  Max.   :5.0      Max.   :5.00     Max.   :5.00      Max.   :5.00     
##  Copycat (1995) Shanghai Triad (Yao a yao yao dao waipo qiao) (1995)
##  Min.   :1.0    Min.   :1.00                                        
##  1st Qu.:2.0    1st Qu.:2.75                                        
##  Median :3.0    Median :3.00                                        
##  Mean   :2.9    Mean   :3.30                                        
##  3rd Qu.:4.0    3rd Qu.:4.25                                        
##  Max.   :5.0    Max.   :5.00                                        
##  Twelve Monkeys (1995)  Babe (1995)   Dead Man Walking (1995)
##  Min.   :1.00          Min.   :1.00   Min.   :1.0            
##  1st Qu.:2.75          1st Qu.:2.00   1st Qu.:3.0            
##  Median :4.00          Median :4.00   Median :4.0            
##  Mean   :3.45          Mean   :3.35   Mean   :3.8            
##  3rd Qu.:4.00          3rd Qu.:4.25   3rd Qu.:5.0            
##  Max.   :5.00          Max.   :5.00   Max.   :5.0            
##  Richard III (1995)
##  Min.   :1.00      
##  1st Qu.:2.00      
##  Median :3.00      
##  Mean   :3.05      
##  3rd Qu.:4.00      
##  Max.   :5.00
str(Movie_n)
##  num [1:20, 1:10] 5 4 3 4 4 4 3 3 5 4 ...
##  - attr(*, "dimnames")=List of 2
##   ..$ : chr [1:20] "1" "2" "3" "4" ...
##   ..$ : chr [1:10] "Toy Story (1995)" "GoldenEye (1995)" "Four Rooms (1995)" "Get Shorty (1995)" ...
#Non Negative Matrix Factorization 
be <- nmf(Movie_n, 10,"lee") #Euclidean distance

#extract the fitted values of the model
modVal <- fitted(be) 

## visualize the fitted values of the matrix
image.default(modVal,xlab="Fitted Values")

# Estimated target matrix
modVal
##    Toy Story (1995) GoldenEye (1995) Four Rooms (1995) Get Shorty (1995)
## 1          5.050400         2.985457         4.1154412         3.0224039
## 2          4.023885         2.033048         4.9932947         1.0380763
## 3          3.000568         3.986359         0.9819595         4.0021281
## 4          3.967337         1.953885         3.0035478         2.9967732
## 5          4.002471         3.004380         3.0011543         0.9959826
## 6          3.887993         1.165422         3.0709305         1.9932088
## 7          3.022804         3.998341         1.0780371         4.9978878
## 8          3.015928         2.983711         0.9916676         1.0235054
## 9          4.990785         1.281619         3.0395422         4.9507952
## 10         3.990667         2.037433         2.9587739         3.9867390
## 11         4.056132         3.077685         1.9989209         2.9808603
## 12         0.978549         5.029745         4.0095095         4.9950444
## 13         3.015334         2.972373         2.0601645         5.0189801
## 14         2.005497         4.987067         2.0187618         4.0089033
## 15         1.144530         2.809445         1.9902270         5.0300599
## 16         4.971312         2.991440         4.9424279         4.9947995
## 17         4.010838         4.956396         1.1089739         5.0145196
## 18         4.995512         5.014270         2.0057087         3.0003691
## 19         2.983611         3.988723         2.9908162         4.0037600
## 20         2.969320         5.007846         4.8494291         2.9769835
##    Copycat (1995) Shanghai Triad (Yao a yao yao dao waipo qiao) (1995)
## 1       3.0178151                                            5.0077911
## 2       0.9856385                                            4.9940199
## 3       1.0220268                                            3.0059381
## 4       3.0277510                                            3.0144669
## 5       1.9966131                                            3.9994780
## 6       5.0582813                                            0.9574106
## 7       2.9919502                                            2.0030498
## 8       1.9791153                                            5.0077612
## 9       0.9795970                                            4.9002598
## 10      4.9231178                                            0.9786937
## 11      3.9864010                                            3.9848890
## 12      4.9920027                                            1.9934569
## 13      1.0567377                                            1.9789842
## 14      3.0473389                                            4.0058724
## 15      3.9953201                                            3.0402118
## 16      2.0583597                                            3.1297029
## 17      2.0363663                                            3.0127148
## 18      4.9964652                                            4.9980733
## 19      2.9851860                                            2.9956360
## 20      2.9323208                                            2.9933754
##    Twelve Monkeys (1995) Babe (1995) Dead Man Walking (1995)
## 1              3.9473946   1.2029744                4.882149
## 2              3.9598856   3.9906486                4.013240
## 3              2.0037913   3.0183254                3.008878
## 4              3.0388608   3.0053719                1.070078
## 5              3.9957805   4.9984007                2.001150
## 6              2.1820424   4.0158152                3.947589
## 7              4.9615081   4.9729725                5.019854
## 8              2.9709287   3.9910401                3.007764
## 9              4.0296166   0.9762895                5.046083
## 10             4.0001586   2.0033818                4.058252
## 11             4.9187651   3.9770976                5.030735
## 12             3.9651807   3.0017065                5.008623
## 13             1.9819409   3.9869788                2.953451
## 14             4.9906645   1.9868238                3.968346
## 15             1.2102615   3.9673351                3.998435
## 16             5.0214326   5.0214396                4.950371
## 17             3.9796641   1.9824618                2.973120
## 18             0.9937238   5.0019440                4.999742
## 19             4.0205185   5.0063399                3.004660
## 20             3.0905076   1.0272742                3.132242
##    Richard III (1995)
## 1           2.8933645
## 2           2.0072120
## 3           4.9873428
## 4           4.9750483
## 5           4.0008127
## 6           4.9020760
## 7           4.0258619
## 8           5.0164483
## 9           0.9924482
## 10          3.0918869
## 11          3.0117709
## 12          2.9989492
## 13          1.0296438
## 14          1.0097086
## 15          3.0057138
## 16          2.9939519
## 17          2.0339466
## 18          3.9919994
## 19          2.0167040
## 20          2.1614655
 #  W  user feature matrix matrix
w <- basis(be)
basismap(be)

hist(w)

# movie coef matrix
h <- coef(be) 
hist(h)

coefmap(be)

# recommended Movies
lkmovie <- data.frame(t(h))
lkmovie
##                                                                X1
## Toy Story (1995)                                     3.928324e+01
## GoldenEye (1995)                                     2.982646e-05
## Four Rooms (1995)                                    1.874090e-03
## Get Shorty (1995)                                    2.239509e+00
## Copycat (1995)                                       7.519155e-01
## Shanghai Triad (Yao a yao yao dao waipo qiao) (1995) 4.873701e+00
## Twelve Monkeys (1995)                                2.771271e+01
## Babe (1995)                                          4.934640e-01
## Dead Man Walking (1995)                              3.223790e+00
## Richard III (1995)                                   3.641006e+00
##                                                                X2
## Toy Story (1995)                                     1.519349e+01
## GoldenEye (1995)                                     1.296708e+01
## Four Rooms (1995)                                    1.277781e+00
## Get Shorty (1995)                                    1.411720e-01
## Copycat (1995)                                       5.939791e+00
## Shanghai Triad (Yao a yao yao dao waipo qiao) (1995) 7.377078e+00
## Twelve Monkeys (1995)                                2.226405e-06
## Babe (1995)                                          4.960292e-04
## Dead Man Walking (1995)                              4.925161e+00
## Richard III (1995)                                   2.419400e+00
##                                                                X3
## Toy Story (1995)                                     5.612999e-01
## GoldenEye (1995)                                     5.819213e+00
## Four Rooms (1995)                                    1.734588e-03
## Get Shorty (1995)                                    6.243095e-01
## Copycat (1995)                                       9.139777e-04
## Shanghai Triad (Yao a yao yao dao waipo qiao) (1995) 1.057104e-03
## Twelve Monkeys (1995)                                6.311675e+00
## Babe (1995)                                          1.438621e+01
## Dead Man Walking (1995)                              4.953390e+00
## Richard III (1995)                                   2.112955e+01
##                                                                X4
## Toy Story (1995)                                     2.843040e-01
## GoldenEye (1995)                                     3.825216e-03
## Four Rooms (1995)                                    1.732067e+01
## Get Shorty (1995)                                    2.837974e+00
## Copycat (1995)                                       1.937301e+01
## Shanghai Triad (Yao a yao yao dao waipo qiao) (1995) 7.799018e-03
## Twelve Monkeys (1995)                                1.259029e-04
## Babe (1995)                                          5.811568e-01
## Dead Man Walking (1995)                              7.051410e-02
## Richard III (1995)                                   2.406988e+01
##                                                                X5
## Toy Story (1995)                                     1.805627e-01
## GoldenEye (1995)                                     2.670155e+01
## Four Rooms (1995)                                    1.228487e+01
## Get Shorty (1995)                                    6.021420e+00
## Copycat (1995)                                       6.470924e+00
## Shanghai Triad (Yao a yao yao dao waipo qiao) (1995) 6.534205e-01
## Twelve Monkeys (1995)                                2.369507e+01
## Babe (1995)                                          1.810970e-01
## Dead Man Walking (1995)                              7.948202e-01
## Richard III (1995)                                   3.854882e-06
##                                                                X6
## Toy Story (1995)                                     1.356537e-01
## GoldenEye (1995)                                     1.130664e+01
## Four Rooms (1995)                                    5.466037e-05
## Get Shorty (1995)                                    8.791832e-03
## Copycat (1995)                                       7.481909e-01
## Shanghai Triad (Yao a yao yao dao waipo qiao) (1995) 3.192493e+01
## Twelve Monkeys (1995)                                4.703035e+00
## Babe (1995)                                          5.792429e+00
## Dead Man Walking (1995)                              8.998678e-01
## Richard III (1995)                                   8.322027e+00
##                                                                X7
## Toy Story (1995)                                     4.705694e+00
## GoldenEye (1995)                                     3.436639e-10
## Four Rooms (1995)                                    1.867240e+01
## Get Shorty (1995)                                    2.614931e+00
## Copycat (1995)                                       3.371310e-01
## Shanghai Triad (Yao a yao yao dao waipo qiao) (1995) 1.554437e+01
## Twelve Monkeys (1995)                                5.613847e+00
## Babe (1995)                                          8.621408e-02
## Dead Man Walking (1995)                              1.864561e+01
## Richard III (1995)                                   9.540865e-01
##                                                               X8
## Toy Story (1995)                                      8.53377011
## GoldenEye (1995)                                      1.24078993
## Four Rooms (1995)                                     5.64496634
## Get Shorty (1995)                                     0.89481418
## Copycat (1995)                                        0.63561327
## Shanghai Triad (Yao a yao yao dao waipo qiao) (1995)  0.03640003
## Twelve Monkeys (1995)                                 0.03467208
## Babe (1995)                                          29.57233105
## Dead Man Walking (1995)                               2.01774847
## Richard III (1995)                                    0.49886187
##                                                                X9
## Toy Story (1995)                                     1.186179e+00
## GoldenEye (1995)                                     8.082464e+00
## Four Rooms (1995)                                    1.219773e-03
## Get Shorty (1995)                                    3.956436e+01
## Copycat (1995)                                       9.782332e-04
## Shanghai Triad (Yao a yao yao dao waipo qiao) (1995) 5.579416e+00
## Twelve Monkeys (1995)                                2.458269e-01
## Babe (1995)                                          2.979034e-01
## Dead Man Walking (1995)                              7.063829e+00
## Richard III (1995)                                   2.472713e-02
##                                                               X10
## Toy Story (1995)                                      0.019288326
## GoldenEye (1995)                                      0.143054061
## Four Rooms (1995)                                     0.003710578
## Get Shorty (1995)                                    16.084501163
## Copycat (1995)                                       23.809932707
## Shanghai Triad (Yao a yao yao dao waipo qiao) (1995)  0.003610830
## Twelve Monkeys (1995)                                 0.945665882
## Babe (1995)                                          15.743318167
## Dead Man Walking (1995)                              33.480028267
## Richard III (1995)                                    0.086808519
fmat<-lkmovie[,c("X3","X6")]
fmat
##                                                                X3
## Toy Story (1995)                                     5.612999e-01
## GoldenEye (1995)                                     5.819213e+00
## Four Rooms (1995)                                    1.734588e-03
## Get Shorty (1995)                                    6.243095e-01
## Copycat (1995)                                       9.139777e-04
## Shanghai Triad (Yao a yao yao dao waipo qiao) (1995) 1.057104e-03
## Twelve Monkeys (1995)                                6.311675e+00
## Babe (1995)                                          1.438621e+01
## Dead Man Walking (1995)                              4.953390e+00
## Richard III (1995)                                   2.112955e+01
##                                                                X6
## Toy Story (1995)                                     1.356537e-01
## GoldenEye (1995)                                     1.130664e+01
## Four Rooms (1995)                                    5.466037e-05
## Get Shorty (1995)                                    8.791832e-03
## Copycat (1995)                                       7.481909e-01
## Shanghai Triad (Yao a yao yao dao waipo qiao) (1995) 3.192493e+01
## Twelve Monkeys (1995)                                4.703035e+00
## Babe (1995)                                          5.792429e+00
## Dead Man Walking (1995)                              8.998678e-01
## Richard III (1995)                                   8.322027e+00
aheatmap(fmat)