From RecSysWiki
Jump to navigation Jump to search

Crab is a flexible, fast recommender engine for Python that integrates classic information filtering recommendation algorithms in the world of scientific Python packages (Numpy, Scipy , Matplotlib). The engine aims primarily to provide a rich set of components from which you can construct a customized recommender system from a set of algorithms. It is designed for scability, flexibility and performance making use of scientific optimized python packages in order to provide simple and efficient solutions pluggable that are accessible to everybody and reusable in various contexts: science and engineering.


The engine is open-source by BSD license and takes user's preferences for items and returns estimated preferences for other items. For instance, a web site that sells movies could easily use Crab to figure out, from past purchase data, which movies a customer might be interested in watching to. Technically, Crab would work as a toolkit with several recommender algorithms and extensible interfaces as also with support to data models such as databases, text files, etc. The output can be easily in a future release provided by web services via REST or SOAP. Another important feature is to give the machine learning developer the tools for evaluate the techniques by using perfomance metrics widely used in the recommenders field as well as providing the base interfaces in order to implement custom recommender algorithms.

Currently in Development

  • Support for Data Models (text files and Dictionary Models)
  • Support for commonly used pairwise metrics such as Cosine, Pearson, Euclidean, Tanimoto, etc.
  • Base interfaces for Similarities and Recommenders
  • Collaborative Filtering methods: Item-Based and User-Based.

External links