An easy-to-use Python library for building recommendation systems
Project description
RecTools
RecTools is an easy-to-use Python library which makes the process of building recommendation systems easier, faster and more structured than ever before. It includes built-in toolkits for data processing and metrics calculation, a variety of recommender models, some wrappers for already existing implementations of popular algorithms and model selection framework. The aim is to collect ready-to-use solutions and best practices in one place to make processes of creating your first MVP and deploying model to production as fast and easy as possible.
RecTools allows to work with dense and sparse features easily. There are a lot of useful features such as basic model which is based on random suggestions or popularity, and more advanced, e.g. LightFM. Also it contains a wide variety of metrics to choose from to better suit recommender system to your needs.
For more details, see the Documentation and Tutorials.
Get started
Prepare data with
wget https://files.grouplens.org/datasets/movielens/ml-1m.zip
unzip ml-1m.zip
import pandas as pd
from implicit.nearest_neighbours import TFIDFRecommender
from rectools import Columns
from rectools.dataset import Dataset
from rectools.models import ImplicitItemKNNWrapperModel
# Read the data
ratings = pd.read_csv(
"ml-1m/ratings.dat",
sep="::",
engine="python", # Because of 2-chars separators
header=None,
names=[Columns.User, Columns.Item, Columns.Weight, Columns.Datetime],
)
# Create dataset
dataset = Dataset.construct(ratings)
# Fit model
model = ImplicitItemKNNWrapperModel(TFIDFRecommender(K=10))
model.fit(dataset)
# Make recommendations
recos = model.recommend(
users=ratings[Columns.User].unique(),
dataset=dataset,
k=10,
filter_viewed=True,
)
Installation
RecTools is on PyPI, so you can use pip
to install it.
pip install rectools
The default version doesn't contain all the dependencies, because some of them are needed only for specific models. Available user extensions are the following:
lightfm
: adds wrapper for LightFM model,torch
: adds models based on neural nets,nmslib
: adds fast ANN recommenders.
Install extension:
pip install rectools[extension-name]
Install all extensions:
pip install rectools[all]
Important: If you're using poetry
and you want to add rectools
to your project, then you should either install rectools
without lightfm
extras or use poetry==1.4.0
and add to your poetry.toml
file the next lines:
[experimental]
new-installer = false
Contribution
To install all requirements run
make install
You must have python3
and poetry==1.4.0
installed.
For autoformatting run
make format
For linters check run
make lint
For tests run
make test
For coverage run
make coverage
To remove virtual environment run
make clean
RecTools.Team
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.