Apache Mahout Algorithms
Apache Mahout implements core algorithms for collaborative filtering and recommendation, clustering and classification.
The algorithms for recommendation, which is also called "recommender engines", are divided into two different types. One is the collaborative filtering recommendation, and the other is the content based recommendation. The collaborative filtering recommender is to find new and desirable items for users based on the user's relationship to items. This relationship can the user's preference values or ratings of items or only association between the user and the items. The content based recommendation is based on the user's relationship to the properties of items. The properties can be the color of items, the shape of items, the price of items and etc. Currently, Mahout has implemented only the algorithms for collaborative filtering recommendation. The algorithms for collaborative filtering filtering recommendation, which has been implemented by Mahout, include User based recommender, Item based recommender, Slope-one recommender, Singular value decomposition based recommender, Linear based item based recommender and Cluster based recommender. The last three algorithms are new and experimental recommenders, which are still evolving.
The algorithms for clustering currently implemented in Mahout include K-means, Fuzzy K-means, Canopy, Mean Shift, Dirichlet, Latent Dirichlet Allocation (LDA), Spectral, Minhash and Top Down.
And currently Mahout classification algorithms include naive Bayes, complementary naive Bayes, Stochastic Gradient Descent (SGD), random forests and online passive aggressive.