mahout Recommende Evaluator - тестовая часть данных

1

Как я могу проверить свой рекомендатель на mahout только с частью данных, скажем:

user_id, item_id, feature
1, 1, 1
1, 2, 0
1, 3, 1
2, 1, 1
2, 2, 0

И я хочу получить точность, проверяя только записи с функцией = 1.

Я использую GenericRecommenderIRStatsEvaluator -

        RecommenderIRStatsEvaluator evaluator =
       new GenericRecommenderIRStatsEvaluator();
        IRStatistics stats = evaluator.evaluate(
       recommenderBuilder, modelBuilder, model, null, 10,
         GenericRecommenderIRStatsEvaluator.CHOOSE_THRESHOLD,
       1.0);
        System.out.println(stats.getPrecision())

Как я могу это сделать?

Теги:
recommendation-engine
mahout

2 ответа

1
Лучший ответ

Я не уверен, есть ли автоматизированный способ сделать это, но если вы хотите сделать это вручную

Чтобы вычислить точность, вам нужно вычислить истинные положительные значения TP и ложные срабатывания FP.

То есть истинными позициями TP являются правильные ответы (feature = 1)

ложные срабатывания - это неправильные ответы, полученные вашим рекомендателем (на основе моего понимания является функция = 0)

И для вычисления точности вы вычисляете P = TP/(TP + FP); Так вы можете вычислить точность вручную

0

Если вы хотите разделить свои данные на тесты и обучение и рассчитать среднюю абсолютную разницу, обратитесь к классу RecommendedenderEvaluator в Mahout.

Также я ответил на ваш вопрос, чтобы получить точность и вспомнить значения в другом потоке. Однако я не считаю, что точность и ценность отзыва будут сильными показателями производительности.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню