Понимание точности @ K, AP @ K, MAP @ K - PullRequest
1 голос
/ 18 апреля 2019

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

Precision @ k имеет то преимущество, что не требует какой-либо оценки размера комплекта соответствующих документов, но недостатками является то, что он наименеестабильный из обычно используемых оценочных мер и что он не усредняется хорошо, так как общее количество релевантных документов для запроса сильно влияет на точность при k

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

Мне было интересно;скажем, если я запускаю функцию оценки, которая возвращает следующий массив:

Массив Numpy, содержащий оценки точности @ k для каждого пользователя.

А теперь у меня есть массив для всехиз точности @ 3 баллов по моему набору данных.

Если я возьму среднее значение этого массива и среднее значение, скажем, 20 различных баллов: это эквивалентно Средняя средняя точность @K или MAP @ K или я понимаю это слишком буквально?

Я пишу диссертацию с разделом оценки, поэтому точность определений для меня очень важна.

1 Ответ

0 голосов
/ 28 мая 2019

Существуют две средние величины, которые делают понятия как-то неясными, но они довольно просты - по крайней мере, в контексте recsys - позвольте мне уточнить их:

P @ K

Сколько релевантных элементов присутствует в рекомендациях top-k вашей системы

Например, чтобы вычислить P @ 3: , возьмите 3 верхние рекомендации для данного пользователя и проверьте, сколько из них являются хорошими.Это число, деленное на 3, дает вам P @ 3

AP @ K

Среднее значение P @ i для i =1, ..., K .

Например, для расчета AP @ 3: сумма P @ 1, P @ 2 и P @ 3 и деление этого значения на 3

AP @ K обычно рассчитывается для одногопользователь.

MAP @ K

Среднее значение AP @ K для всех пользователей.

Например, чтобы вычислить MAP @ 3: сумма AP @ 3 для всех пользователей и разделить это значение на количество пользователей

Если вы программист, вы можете проверить этот код , который является реализацией функций apk и mapk из ml_metrics, библиотеки, поддерживаемой техническим директором Kaggle.

Надеюсь, это помогло!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...