Skip to content

Numpy implementation of Matrix Factorization with Stochastic Gradient Descent used in Recommender Systems

Notifications You must be signed in to change notification settings

GabrielSandoval/matrix_factorization

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Overview

Matrix Factorization with gradient descent (template)

Development Setup

  1. Go to your project directory and download the code

    $ git clone https://github.com/GabrielSandoval/matrix_factorization.git
    
  2. Change to that working directory

    $ cd matrix_factorization
    
  3. Install Anaconda [Windows] [macOS]

  4. Create an environment

    $ conda create --name matrix_factorization
    
  5. Install dependencies

    $ conda install --file requirements.txt
    
  6. Run the code

    $ python train.py
    

Sample Output

------------------- INPUT --------------------
[[5 3 0 1]
 [4 0 0 1]
 [1 1 0 5]
 [1 0 0 4]
 [0 1 5 4]]

--------------- HYPERPARAMETERS ----------------

K: 2
alpha (learning rate): 0.05
beta (regularization): 0.01
target_accuracy: 0.99
max_iterations: 1000
tol: 0.0001

------------------ TRAINING --------------------
Number of training samples: 13

Iteration: 10 ; error = 0.6953
Iteration: 20 ; error = 0.1394
Iteration: 30 ; error = 0.0659
Iteration: 40 ; error = 0.0351
Iteration: 50 ; error = 0.0216
Iteration: 60 ; error = 0.0152
Iteration: 70 ; error = 0.0129
Iteration: 80 ; error = 0.0116
Iteration: 90 ; error = 0.0112
Iteration: 97 ; error = 0.0114
Target error difference (tol) 0.0001 reached.
Training time: 0.0283s

------------------ RESULTS ---------------------

Full matrix:
[[4.98410279 2.99956407 3.36916102 1.01299501]
 [3.99438678 2.42353852 2.04634334 1.01090409]
 [1.00989163 1.0039021  5.03071931 4.98151913]
 [1.01003283 0.79970579 4.07342854 3.99419062]
 [1.46899817 1.01864929 4.98750062 3.99674531]]

-------------- TRAINED PARAMETERS --------------

Bias:
2.769230769230769

Item bias:
[-0.04812197 -0.99631352  1.06112858  0.03967185]

User bias:
[ 0.11894482 -0.24765476  0.30930861 -0.18215793 -0.04182148]

Item latent matrix:
[[-0.36340674  1.34937584]
 [ 0.91397388  1.0049598 ]
 [-0.01623151 -1.28625188]
 [ 0.24713568 -0.96272711]
 [-0.70271012 -0.79869938]]

User latent matrix:
[[-0.06404323  1.57167141]
 [ 0.06188038  0.83756483]
 [-0.93218956 -0.68098678]
 [-0.1048773  -1.44731029]]

About

Numpy implementation of Matrix Factorization with Stochastic Gradient Descent used in Recommender Systems

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages