Skip to content

A recommender system for cosmetic products, implemented from scratch using Python.

License

Notifications You must be signed in to change notification settings

mwritescode/BeautyRec

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

57 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Python Matplotlib Python

BeautyRec 💋

This project, developed for the first part of the Combinatorial Decision Making and Optimization course of my Master's degree, aims to create a cosmetic recommender system based on some Sephora product ratings, which I scraped from the website using Selenium. I then implemented a recommender system using two different algorithms, Funk SVD and an Autoencoder, which were both implemented from scratch using only pandas and numpy.

In particular, the focus of this project is on the optimization algorithms: Funk SVD is implemented with SGD, while the Autoencoder can be trained either with RMSProp or with Adam. In order to run this code the following libraries are required:

  • pandas
  • selenium
  • numpy
  • matplotlib

Which can be easily installed using the requirements.txt file like this:

  pip install -U pip
  pip install -r requirements.txt

Note however that selenium can be omitted, if you do not intend to scrape your own data, but just want to use what I provided. Otherwise, in order to start a web browser, the Selenium module needs a web driver, which you should download from here.

Finally, to launch either the Funk SVD of the Autoencoder, you should run python main.py with different command line arguments, which are depicted below:

usage: main.py [-h] [--model {mf,autoenc}] [--optimizer {adam,rmsprop}]

optional arguments:
  -h, --help            show this help message and exit
  --model {mf,autoenc}
                        Model to be used for the recommender system
  --optimizer {adam,rmsprop}
                        Optimizer should only be specified when using --model autoenc.
                        Since the matrix factorization method uses sgd by default,
                        if it is specified along with --model mf it will be ignored.

To-Do

As I said, the project was initially developed for the Combinatorial Decision Making and Optimization course, thus it heavily focuses in the optimization algorithms instead of on actually making recommendations. However, I would love to expand this project in order to actually get interesting recommendations, which I hope to make accessible to the general public using a web app.

About

A recommender system for cosmetic products, implemented from scratch using Python.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published