This package is an implementation of several of the most common collaborative filtering algorithms. They are basically devided in the following classes.
Some schemes such as STINonPersonalized automatically fall back on PerItemAverage when they can't provide an enhanced prediction.
Using them is simple. They all feed off an EvaluationSet you must provide which is simply a hash table providing (one-dimensional) ratings about the items in your data set. Once created, you can keep the algorithms in sync and avoid calling the constructor each time, which would be costly, by calling the addedUser and RemovedUser. If a user changes, simply call removedUser on the evaluation as it were before the change, and then addedUser with the evaluation after the change. The method completeUser provides you with a prediction as an array. We assume that item ids go from 0 to n-1, so you need, at some point, a map from your real it idems to 0,..., n-1.
Some algorithms use evaluation objects (which are TIntFloatHashMap) as keys. Thus, you must make sure you keep the same objects in your EvaluationSet and if not, either call removedUser when you discard one and addedUser after you've added a new one, or simply call the constructor all over again.
CFS objects that do not explicitely overwrite addedUser and removedUser should be treated with caution: they probably do not (yet) implement these methods.