Algorithm Summary

LKPY provides general algorithmic concepts, along with implementations of several algorithms. These algorithm interfaces are based on the SciKit design patterns [BLB+13], adapted for Pandas-based data structures.

All algorithms implement the standard interfaces.

Basic Algorithms

bias.Bias([items, users, damping])

A user-item bias rating prediction algorithm.


Recommend the most popular items.

basic.TopN(predictor[, selector])

Basic recommender that implements top-N recommendation using a predictor.

basic.Fallback(algorithms, *others)

The Fallback algorithm predicts with its first component, uses the second to fill in missing values, and so forth.


CandidateSelector that selects items a user has not rated as candidates.


The memorized algorithm memorizes socres provided at construction time.

k-NN Algorithms

user_knn.UserUser(nnbrs[, min_nbrs, ...])

User-user nearest-neighbor collaborative filtering with ratings.

item_knn.ItemItem(nnbrs[, min_nbrs, ...])

Item-item nearest-neighbor collaborative filtering with ratings.

Matrix Factorization

als.BiasedMF(features, *[, iterations, reg, ...])

Biased matrix factorization trained with alternating least squares [ZWSP08].

als.ImplicitMF(features, *[, iterations, ...])

Implicit matrix factorization trained with alternating least squares [HKV08].

funksvd.FunkSVD(features[, iterations, ...])

Algorithm class implementing FunkSVD matrix factorization.

Add-On Packages

See add-on algorithms for additional algorithm families and bridges to other packages.