Open bastak opened 7 years ago
Мы рекомендуем все просмотренные товары и считаем точность и полноту на них. Но порядок в котором мы из порекомендуем не совпадёт с тем, в котором они были просмотрены.
@ilirhin мне кажется, вопрос о другом - что делать с теми сессиями, где число просмотренных пользователем товаров меньше 5. Очевидный выход - не учитывать эти сессии в расчетах. Если же пытаться их учитывать, то, вообще говоря, это уже не будет Precision@5 и Recall@5, поскольку 5 рекомендаций просто не наберется. В задании ничего об этом не говорится.
Да, но все формулы останутся корректными, если в сессии была хоть одна покупка, поэтому при оценке участвуют все сессии, где есть покупки, независимо от того, есть ли в них просмотренные объекты и сколько их.
Тогда такой вопрос, если в сессии меньше 5 просмотренных товаров, то в precision@5 нам следует делить на 5 или на количество товаров в просмотренных? Ведь, по-сути, мы рекомендуем только их.
И если "статистика просмотров и покупок строится только по обучающей выборке, а не по сессии к которой делается рекомендация", то какой смысл имеют предыдущие комментарии? Ведь, например, для расчетов по тестовому файлу мы используем рекомендации по тренировочному файлу В ЦЕЛОМ, без рассмотрения отдельных сессий, так же?
Есть обучающая выборка, по ней мы стоим два словаря частот: частоты появлений в просмотренных, частоты появления в покупках. Это в каком-то смысле обучение рекомендательной системы (РС).
Далее нужно сделать применение РС к выборкам (обучающей и тестовой). РС работает так: просмотренные объекты (без дубликатов) в сессии сортируются по убыванию частоты из словаря РС. Это и есть рекомендация.
@ilirhin а можно еще комментарий по моему вопросу? :)
Абсолютно верно замечено, что precision@5 не имеет смысла считать, когда просмотренных меньше 5. Тем не менее подсчитать его всё равно нужно, потому что вот так захотел заказчик :)
Индустрия =D
On Thu, Oct 13, 2016 at 1:04 AM Ilya notifications@github.com wrote:
Абсолютно верно замечено, что precision@5 не имеет смысла считать, когда просмотренных меньше 5. Тем не менее подсчитать его всё равно нужно, потому что вот так захотел заказчик :)
— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/vkantor/MIPT_Data_Mining_In_Action_2016/issues/12#issuecomment-253353392, or mute the thread https://github.com/notifications/unsubscribe-auth/AKBNU65_0_aHBF_z6BKTM6AuuHQA9sx5ks5qzVlYgaJpZM4KUgic .
Yours sincerely, Ashuha Arseniy.
Я считал precision@5 = [relevant items among first 5 items] / [min(5, length of recommendation pull)]
@Vasiliy-Molotov в 4-м комментарии сказано, что количество просмотренных товаров не важно для вида формул, я понимаю это как указание на деление на 5 :)
Именно так :)
а если в строке ноль релевантных, то какой для нее recall? ноль, да?
@bastak @ilirhin @Evfro Имхо, все правильно в том, что для precision@5 мы делим на 5, хотя рекомендаций было меньше. Метрики не должны зависеть и тем более подгоняться под конкретную модель рекомендаций. И это проблема конкретно данной в задании реализации по частотному словарю, которая не умеет выдавать произвольное число рекомендаций. Теоретически было бы правильно добивать рекомендации товарами, которые чаще всего покупались вместе с теми, которые юзер уже просмотрел, IRL такое встречается повсюду. Но эффективность таких рекомендаций и измерять надо видимо по-другому.
@vasanima проблема здесь не в конкретной реализации, а в том, что процедура оценки качества модели не была четко сформулирована, оставляя свободу интерпретации на стороне выполняющих задание. Найти аргументацию можно и под тот, и под другой способ оценки, но в данном случае все упирается в то, что считают "правильным" составители задания, т.к. именно на основе этого принимается решение об успешности выполнения задания студентом.
Здравствуйте. Когда считаем Precision@5 и recall@5 в сессии, где меньше 5 просмотренных товаров, мы рекомендуем все просмотренные товары и считаем точность и полноту на них, или вообще не учитываем такие сессии, ничего на них не считаем и в оценках средних точности и полноты их не учитываем?