# Slope One

class `surprise.prediction_algorithms.slope_one.``SlopeOne`

  Bases: `surprise.prediction_algorithms.algo_base.AlgoBase`

  A simple yet accurate collaborative filtering algorithm.

  This is a straightforward implementation of the SlopeOne algorithm [LM07].

  The prediction \(\hat{r}_{ui}\) is set as:

  \[\hat{r}_{ui} = \mu_u + \frac{1}{ |R_i(u)|} \sum\limits_{j \in R_i(u)} \text{dev}(i, j),\]

  where \(R_i(u)\) is the set of relevant items, i.e. the set of items \(j\) rated by \(u\) that also have at least one common user with \(i\). \(\text{dev}_(i, j)\) is defined as the average difference between the ratings of \(i\) and those of \(j\):

  \[\text{dev}(i, j) = \frac{1}{ |U_{ij}|}\sum\limits_{u \in U_{ij}} r_{ui} - r_{uj}\]