# Basic and Utility Algorithms¶

The lenskit.algorithms.basic module contains baseline and utility algorithms for nonpersonalized recommendation and testing.

## Personalized Mean Rating Prediction¶

class lenskit.algorithms.basic.Bias(items=True, users=True, damping=0.0)

A user-item bias rating prediction algorithm. This implements the following predictor algorithm:

$s(u,i) = \mu + b_i + b_u$

where $$\mu$$ is the global mean rating, $$b_i$$ is item bias, and $$b_u$$ is the user bias. With the provided damping values $$\beta_{\mathrm{u}}$$ and $$\beta_{\mathrm{i}}$$, they are computed as follows:

\begin{align*} \mu & = \frac{\sum_{r_{ui} \in R} r_{ui}}{|R|} & b_i & = \frac{\sum_{r_{ui} \in R_i} (r_{ui} - \mu)}{|R_i| + \beta_{\mathrm{i}}} & b_u & = \frac{\sum_{r_{ui} \in R_u} (r_{ui} - \mu - b_i)}{|R_u| + \beta_{\mathrm{u}}} \end{align*}

The damping values can be interpreted as the number of default (mean) ratings to assume a priori for each user or item, damping low-information users and items towards a mean instead of permitting them to take on extreme values based on few ratings.

Parameters: items – whether to compute item biases users – whether to compute user biases damping (number or tuple) – Bayesian damping to apply to computed biases. Either a number, to damp both user and item biases the same amount, or a (user,item) tuple providing separate damping values.
mean_

The global mean rating.

Type: double
item_offsets_

The item offsets ($$b_i$$ values)

Type: pandas.Series
user_offsets_

The item offsets ($$b_u$$ values)

Type: pandas.Series
fit(data)

Train the bias model on some rating data.

Parameters: data (DataFrame) – a data frame of ratings. Must have at least user, item, and rating columns. the fit bias object. Bias
predict_for_user(user, items, ratings=None)

Compute predictions for a user and items. Unknown users and items are assumed to have zero bias.

Parameters: user – the user ID items (array-like) – the items to predict ratings (pandas.Series) – the user’s ratings (indexed by item id); if provided, will be used to recompute the user’s bias at prediction time. scores for the items, indexed by item id. pandas.Series

## Fallback Predictor¶

The Fallback rating predictor is a simple hybrid that takes a list of composite algorithms, and uses the first one to return a result to predict the rating for each item.

A common case is to fill in with Bias when a primary predictor cannot score an item.

class lenskit.algorithms.basic.Fallback(algorithms, *others)

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

fit(ratings, *args, **kwargs)

Train a model using the specified ratings (or similar) data.

Parameters: ratings (pandas.DataFrame) – The ratings data. args – Additional training data the algorithm may require. kwargs – Additional training data the algorithm may require. The algorithm object.
load(file)

Load a fit algorithm from a file. The default implementation unpickles the object and transplants its parameters and model into this object.

Parameters: file (path-like) – the file to load.
predict_for_user(user, items, ratings=None)

Compute predictions for a user and items.

Parameters: user – the user ID items (array-like) – the items to predict ratings (pandas.Series) – the user’s ratings (indexed by item id); if provided, they may be used to override or augment the model’s notion of a user’s preferences. scores for the items, indexed by item id. pandas.Series
save(path)

Save a fit algorithm to a file. The default implementation pickles the object.

Parameters: file (path-like) – the file to save.

## Memorized Predictor¶

The Memorized recommender is primarily useful for test cases. It memorizes a set of rating predictions and returns them.

class lenskit.algorithms.basic.Memorized(scores)

The memorized algorithm memorizes socres provided at construction time.

fit(*args, **kwargs)

Train a model using the specified ratings (or similar) data.

Parameters: ratings (pandas.DataFrame) – The ratings data. args – Additional training data the algorithm may require. kwargs – Additional training data the algorithm may require. The algorithm object.
predict_for_user(user, items, ratings=None)

Compute predictions for a user and items.

Parameters: user – the user ID items (array-like) – the items to predict ratings (pandas.Series) – the user’s ratings (indexed by item id); if provided, they may be used to override or augment the model’s notion of a user’s preferences. scores for the items, indexed by item id. pandas.Series