Skip to content

Implemented SVD, SVD++ and timeSVD++. Can be used on the netflix data to make predictions. Data can be downloaded from https://minnow.noip.me/~jzhou/courses/S15.BigData/assignments/pmd-project.tar.gz

Notifications You must be signed in to change notification settings

macklin-fluehr/timeSVDplusplus

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Team Members: 5120309085 5120309016 5120309005

Folders:
SVD -- Implementation of the latent factor model with biasis.
SVD++ -- Extension of SVD, which takes implicit feedback into consideration.
timeSVD++ -- Extension of SVD++, which further takes temporal dynamics into consideration. And that's what we use.

More details can be found in the report and the codes.

Performance on the site provided for testing:
SVD -- approximately 0.91564
SVD++ -- approximately 0.91133
timeSVD++ -- approximately 0.904791

Files:
tool_used.txt -- List the tools we used.
5120309085_5120309016_5120309005.txt -- The rating predictions made for the test set.
SVD.h: Headerfile of the class SVD.
SVD.cpp: Implementations of the class SVD.
main.cpp: Generate "train.txt" for training and "cross.txt" for cross validation and generate predictions for "test.txt".
run.sh: Excutable file generated by main.cpp.
Makefile: makefile

Quick Start:

Move "training.txt" and "test.txt" into this folder.
Make.
Run run.sh.


One example of timeSVD++:

linzebing@ufo:~/MMDS/timeSVD++$ make
g++ -std=c++0x -c main.cpp
main.cpp: In function ‘int main()’:
main.cpp:28:29: warning: format ‘%s’ expects argument of type ‘char*’, but argument 3 has type ‘char (*)[2048]’ [-Wformat=]
     while (fscanf(fp,"%s",&s)!=EOF) {
                             ^
g++ main.o -o run.sh
linzebing@ufo:~/MMDS/timeSVD++$ ./run.sh
test_Rmse in step 0: 0.862396
test_Rmse in step 1: 0.837672
test_Rmse in step 2: 0.826663
test_Rmse in step 3: 0.819765
test_Rmse in step 4: 0.814822
test_Rmse in step 5: 0.811096
test_Rmse in step 6: 0.80822
test_Rmse in step 7: 0.805967
test_Rmse in step 8: 0.804171
test_Rmse in step 9: 0.802715
test_Rmse in step 10: 0.801514
test_Rmse in step 11: 0.800517
test_Rmse in step 12: 0.799684
test_Rmse in step 13: 0.798985
test_Rmse in step 14: 0.798395
test_Rmse in step 15: 0.797893
test_Rmse in step 16: 0.797463
test_Rmse in step 17: 0.797094
test_Rmse in step 18: 0.796776
test_Rmse in step 19: 0.796501
test_Rmse in step 20: 0.796262
test_Rmse in step 21: 0.796055
test_Rmse in step 22: 0.795874
test_Rmse in step 23: 0.795716
test_Rmse in step 24: 0.795578
test_Rmse in step 25: 0.795457
test_Rmse in step 26: 0.795351
test_Rmse in step 27: 0.795258
test_Rmse in step 28: 0.795176
test_Rmse in step 29: 0.795103
test_Rmse in step 30: 0.795038
test_Rmse in step 31: 0.79498
test_Rmse in step 32: 0.794928
test_Rmse in step 33: 0.794882

About

Implemented SVD, SVD++ and timeSVD++. Can be used on the netflix data to make predictions. Data can be downloaded from https://minnow.noip.me/~jzhou/courses/S15.BigData/assignments/pmd-project.tar.gz

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C++ 98.7%
  • Makefile 1.3%