# prediction_algorithms package

The `prediction_algorithms` package includes the prediction algorithms available for recommendation.

The available prediction algorithms are:

`random_pred.NormalPredictor` | Algorithm predicting a random rating based on the distribution of the training set, which is assumed to be normal.
`baseline_only.BaselineOnly` | Algorithm predicting the baseline estimate for given user and item.
`knns.KNNBasic` | A basic collaborative filtering algorithm.
`knns.KNNWithMeans` | A basic collaborative filtering algorithm, taking into account the mean ratings of each user.
`knns.KNNWithZScore` | A basic collaborative filtering algorithm, taking into account
`knns.KNNBaseline` | A basic collaborative filtering algorithm taking into account a baseline rating.
`matrix_factorization.SVD` | The famous SVD algorithm, as popularized by Simon Funk during the Netflix Prize.When baselines are not used, this is equivalent to Probabilistic Matrix Factorization [SM08] (see note below)..
`matrix_factorization.SVDpp` | The SVD++ algorithm, an extension of `SVD` taking into account implicit ratings.
`matrix_factorization.NMF` | A collaborative filtering algorithm based on Non-negative Matrix Factorization.
`slope_one.SlopeOne` | A simple yet accurate collaborative filtering algorithm.
`co_clustering.CoClustering` | A collaborative filtering algorithm based on co-clustering.

You may want to check the notation standards before diving into the formulas.

- The algorithm base class
- The predictions module
- Basic algorithms
- k-NN inspired algorithms
- Matrix Factorization-based algorithms
- Slope One
- Co-clustering