Giter Club home page Giter Club logo

matrix-completion's Introduction

Matrix-Completion

Sometimes also called the Netflix Problem, The main task in this problem is to fill or complete the missing entries of an incomplete matrix M.

In this project we explore and analyze several algorithms to solve the matrix completion problem such as Convex Relaxation, SVD and RPCA, and its corresponding implementation.

For a detailed explanation and formulation of such algoriths refer to the project report. We also made a presentation easy to understand, here project slides.

Here we show some results of the matrix completion applied to an image:

Original Image Incomplete Image

After performing matrix completion on the incomplete image we get:

Original Image Complete Image

And here applied to Movie Recommender System:

Reproducibility

To reproduce the results of the experiments, follow the guidelines below:

Prerequisites

A machine that supports the following packages

  • Pillow
  • numpy
  • cvxpy
  • scikit-image
  • opencv-python

Getting Started

Installation:

  • Clone this repository:
git clone https://github.com/jwilliamn/Matrix-Completion
cd Matrix-Completion
  • Install requirements:
pip install -r requirements.txt

1. Nuclear Norm

Run the notebook: NuclearNorm.ipynb

To change the data distortion modify the following parameter:

noise = [0.1, 0.2, 0.3, 0.4, 0.5, 0.6]

Note: Slow

2. SVT

Run the notebook: SVT_image.ipynb for Image Inpainting, and SVT_movie_recommender.ipynb for Movie Recommender System

Change the following parameter for a different noise levels:

p = [0.1, 0.2, 0.3, 0.4, 0.5, 0.6]

3. RPCA

Run the notebook: RPCA.ipynb

Data set

  • For recommender system we used MovieLens Latest Datasets

    Small version: 100,000 ratings and 3,600 tag applications applied to 9,000 movies by 600 users.

  • Image inpainting, we used the following picture

Note: Only SVT algorithm was applied to both datasets, while Nuclear norm (Convex relaxation) and Robust PCA were applied just to Image.

References:

matrix-completion's People

Contributors

jwilliamn avatar

Watchers

James Cloos avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.