Функция подобия для логического пользовательского рекомендации Mahout - PullRequest
2 голосов
/ 23 сентября 2011

Я использую Mahout , чтобы создать систему рекомендаций для пользователей, которая работает с логическими данными.

Я использую GenericBooleanPrefUserBasedRecommender, NearestNUserNeighborhood и сейчас пытаюсь выбрать наиболееподходящая функция подобия пользователя.

Было предложено использовать либо LogLikelihoodSimilarity, либо TanimotoCoefficientSimilarity.Я попробовал и то и другое, и получаю [субъективно оцененные] значимые результаты в обоих случаях.Однако RMSE рейтинг для того же набора данных лучше, чем LogLikehood.Число «без рекомендаций» одинаково в обоих случаях.

Кто-нибудь может порекомендовать, какая из этих функций подобия наиболее подходит для этого случая?

1 Ответ

6 голосов
/ 23 сентября 2011

(я разработчик.) Если бы я оказался на необитаемом острове с одной метрикой подобия для данных без рейтингов / префов, это было бы логарифмической вероятностью.Я бы вообще ожидал, что это будет лучший показатель сходства.

Проблема с тестом, который вы делаете, заключается в том, что, возможно, совсем не очевидно, что он не имеет смысла для такого рода рекомендаций / данных.RMSE - это среднеквадратичная ошибка, и она сравнивает фактическую и прогнозируемую оценки для данных испытаний, которые не были проведены.Но у вас нет оценок.Они все "1.0".На самом деле, RMSE всегда равно 0!

Это не так, так как для того, чтобы иметь что-то для ранжирования, эти рекомендатели будут ранжироваться по некоторой значимой функции сходства.Но они не оценивают рейтинги / привилегии вообще.Итак, RMSE означает здесь присед.

Единственная метрика, которую вы действительно можете использовать, это, я думаю, тест точности / отзыва в этом случае.Даже это проблематично.Эта и другие забавные темы описаны в книге, которую я буду бесстыдно рекламировать: Mahout в действии

...