Реализация оценщика Mahout

Я хотел бы взвесить все мои значения PearsonItemSimilarity между двумя предметами по количеству общих оценок, деленных на 50.

Или, другими словами, обновите общее сходство Пирсона между двумя элементами (например, элементами a и b) соответствующим образом -- подобие_new_ab = сходство_ab*numCoRatings_ab/50

  1. Как получить количество сопоставлений между двумя играми, используя существующую структуру mahout.

  2. Может ли кто-нибудь связать меня (или проиллюстрировать) с примером реализации rescorer?

Мои доводы в пользу этого следующие:

Я утверждаю, что большинство рассчитанных подобий Пирсона основаны на небольшом количестве (в большинстве случаев 1 или 2) коратингов. Это привело бы к тому, что игры имели бы общую корреляцию Пирсона, равную 1, друг с другом, чего на самом деле, вероятно, не было бы, если бы существовало больше коратингов.

Чтобы объяснить это, я хотел бы изменить эти «наивные» сходства Пирсона на сходство, которое также основано на количестве совместных оценок.

Я думал, что это то, для чего был создан счетчик, но, похоже, я ошибался.


person nicolai.tesela    schedule 19.08.2011    source источник
comment
список пользователей mahout является лучшей целью для этого вопроса. Не знаю, отвечает ли кто-нибудь здесь на вопросы по существу.   -  person bmargulies    schedule 20.08.2011
comment
Я знаю, Бенсон! Здесь или [email protected] все в порядке.   -  person Sean Owen    schedule 20.08.2011


Ответы (1)


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

Это не имеет никакого отношения к Rescorer, в чем ваш вопрос?

person Sean Owen    schedule 20.08.2011
comment
Спасибо, Шон, метод getNumUsersWithPreferenceFor() DataModel будет весьма полезен. Я утверждаю, что большинство рассчитанных подобий Пирсона основаны на небольшом количестве (в большинстве случаев 1 или 2) коратингов. Это привело бы к тому, что игры имели бы общую корреляцию Пирсона, равную 1, друг с другом, чего на самом деле, вероятно, не было бы, если бы существовало больше коратингов. Чтобы объяснить это, я хотел бы заменить это наивное сходство Пирсона на сходство, которое также основано на количестве совместных оценок. Я думал, что это то, для чего был создан счетчик, но, похоже, я ошибался. - person nicolai.tesela; 22.08.2011
comment
Для этого -- может быть, лучше просто скопировать реализацию и таким образом изменить ее поведение. В этих случаях возвращайте NaN. Это более прямо. Кроме того, взгляните на аргумент Weighting, который учитывает это по-другому. - person Sean Owen; 22.08.2011