One of the most common applications of AI or advanced stats, depending on how you look at it, is the recommendation engine. All too often the first impulse is to build your own - but it's tough and there is a ready made solution in the form of PredictionIO.
PredictionIO is an open source project that has just reached version 0.7 and been featured on Mozilla Hacks - so why not let even more people know about it.?
It is a machine learning server that allows you to create predictive systems such as personalization, recommendation and content discovery.
The system has a modular design with two "engines" at the moment - one to perform item-recommendation and item-similarity. Each engine can be associated with an algorithm that does the job. The software comes with some default algorithms for each engine but you can add your own. The algorithms include matrix factorization and k-NN methods.
To use the system you need Java 7 and MongoDB and can make use of Hadoop as well but it is now an optional extra. The latest version also supports GraphChi a large-scale graph computation framework.
Once installed you can connect to it via the network and its web UI. Once you have added some data you can select and engine and set it training - this can take some time.
Two sample database are provided. The first well tell you ten other movies you might like if you like a specific movie and a restaurant recommendation engine. There is also a demo website that suggests startups to follow given any that you are already following.
The edit distance is a measure of how close two strings are and it is used in a lot of important applications including spell checkers and genome analysis. Currently the best known algorithm takes O(n [ ... ]