Я хочу создать базовую систему рекомендаций фильмов. Я искал и нашел apache mahout. Я использовал какой-то метод, но я не знаю, как я могу использовать эти результаты.
import java.io.File;
import java.io.IOException;
import org.apache.mahout.cf.taste.common.TasteException;
import org.apache.mahout.cf.taste.eval.RecommenderBuilder;
import org.apache.mahout.cf.taste.eval.RecommenderEvaluator;
import org.apache.mahout.cf.taste.impl.eval.RMSRecommenderEvaluator;
import org.apache.mahout.cf.taste.impl.model.file.FileDataModel;
import org.apache.mahout.cf.taste.impl.neighborhood.NearestNUserNeighborhood;
import org.apache.mahout.cf.taste.impl.recommender.GenericUserBasedRecommender;
import org.apache.mahout.cf.taste.impl.similarity.PearsonCorrelationSimilarity;
import org.apache.mahout.cf.taste.impl.similarity.TanimotoCoefficientSimilarity;
import org.apache.mahout.cf.taste.model.DataModel;
import org.apache.mahout.cf.taste.neighborhood.UserNeighborhood;
import org.apache.mahout.cf.taste.recommender.Recommender;
import org.apache.mahout.cf.taste.similarity.UserSimilarity;
public class error {
public static double evaluate(DataModel model){
RecommenderEvaluator evaluator = new RMSRecommenderEvaluator();
RecommenderBuilder builder = new RecommenderBuilder() {
@Override
public Recommender buildRecommender(DataModel model) throws TasteException {
UserSimilarity similarity = new TanimotoCoefficientSimilarity(model);
UserNeighborhood neighborhood = new NearestNUserNeighborhood(50, similarity, model);
return new GenericUserBasedRecommender(model, neighborhood, similarity);
}
};
double score = 0;
try {
score = evaluator.evaluate(builder, null, model, 0.7, 1.0);
} catch (TasteException e) {
}
System.out.println(score);
return score;
}
public static void main(String[] args) throws IOException, TasteException {
DataModel model = new FileDataModel(new File("u1.base"));
evaluate(model);
}
}
и такие результаты
03 июня 2014 г. 14:06:44 org.slf4j.impl.JCLLoggerAdapter info INFO: создание FileDataModel для файла u1.base ... 03 июня 2014 г. 14:06:44 org.slf4j.impl.JCLLoggerAdapter info INFO: Прочитано строк: 80000 03 июня 2014 г. 14:06:44 org.slf4j.impl.JCLLoggerAdapter info INFO: Обработано 943 пользователя 3 марта 2014 г. 14:06:44 org.slf4j.impl.JCLLoggerAdapter info ИНФОРМАЦИЯ: Начало оценки с использованием версии 0.7 FileDataModel[dataFile:C:\Users\HydrojaN\Documents\NetBeansProjects\JavaApplication1\u1.base] 03 декабря 2014 г. 14:06:44 org.slf4j.impl.JCLLoggerAdapter info INFO: Обработано 943 пользователя 03.03.2014 14:06:44 org.slf4j.impl.JCLLoggerAdapter info INFO: Начало оценки 941 пользователя 03.03.2014 2: 18:44 org.slf4j.impl.JCLLoggerAdapter info INFO: время запуска 941 задачи в 4 потоках 03 марта 2014 г. 14:06:45 org.slf4j.impl.JCLLoggerAdapter info INFO: среднее время на рекомендацию: 193ms Şub 03 , 2014 14:06:45 org.slf4j.impl.JCLLoggerAdapter info ИНФОРМАЦИЯ: Приблизительный объем используемой памяти: 86 МБ / 276 МБ
1.0364950141746245
03.06.2014 14:07:49 org.slf4j.impl.JCLLoggerAdapter info INFO: Результат оценки: 1.0364950141746245 УСПЕШНАЯ СБОРКА (общее время: 1 минута 5 секунд)