Convert.
MovieLensConverter converter = new MovieLensConverter(); converter.convert(pathToPreferences, pathToMovieGenres, convertedOutputPath); |
Configuration and Train.
OnlineCF recommender = new OnlineCF(); recommender.setInputPreferences(convertedOutputPath); recommender.setIteration(150); recommender.setMatrixRank(3); recommender.setSkipCount(1); // after how many steps we should synchronize values in each task recommender.setUpdateFunction(MeanAbsError.class); recommender.setOutputPath(outputFileName); recommender.train(); |
Load.
recommender.load(pathToTrainedModel, false); |
Predict.
// estimate score double estimatedScore = recommender.estimatePreference(userId, itemId); // estimate user similarities double userSimilarity = recommender.calculateUserSimilarity(user1, user2); // Pair<K, V> - where K predicted similar user, V predicted similarity score List<Pair<Long, Double>> similarUsers = recommender.getMostSimilarUsers(userId, count); // estimate item similarities double itemSimilarity = recommender.calculateItemSimilarity(item1, item2); // Pair<K, V> - where K predicted similar item, V predicted similarity score List<Pair<Long, Double>> similarItems = recommender.getMostSimilarItems(itemId, count); |