vkantor / MIPT_Data_Mining_In_Action_2016

"Data Mining in Action Course", Moscow Institute of Physics and Technologies
209 stars 175 forks source link

Precision@5 и recall@5 #12

Open bastak opened 7 years ago

bastak commented 7 years ago

Здравствуйте. Когда считаем Precision@5 и recall@5 в сессии, где меньше 5 просмотренных товаров, мы рекомендуем все просмотренные товары и считаем точность и полноту на них, или вообще не учитываем такие сессии, ничего на них не считаем и в оценках средних точности и полноты их не учитываем?

ilirhin commented 7 years ago

Мы рекомендуем все просмотренные товары и считаем точность и полноту на них. Но порядок в котором мы из порекомендуем не совпадёт с тем, в котором они были просмотрены.

evfro commented 7 years ago

@ilirhin мне кажется, вопрос о другом - что делать с теми сессиями, где число просмотренных пользователем товаров меньше 5. Очевидный выход - не учитывать эти сессии в расчетах. Если же пытаться их учитывать, то, вообще говоря, это уже не будет Precision@5 и Recall@5, поскольку 5 рекомендаций просто не наберется. В задании ничего об этом не говорится.

ilirhin commented 7 years ago

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

zachanton commented 7 years ago

Тогда такой вопрос, если в сессии меньше 5 просмотренных товаров, то в precision@5 нам следует делить на 5 или на количество товаров в просмотренных? Ведь, по-сути, мы рекомендуем только их.

jeipiem commented 7 years ago

И если "статистика просмотров и покупок строится только по обучающей выборке, а не по сессии к которой делается рекомендация", то какой смысл имеют предыдущие комментарии? Ведь, например, для расчетов по тестовому файлу мы используем рекомендации по тренировочному файлу В ЦЕЛОМ, без рассмотрения отдельных сессий, так же?

ilirhin commented 7 years ago

Есть обучающая выборка, по ней мы стоим два словаря частот: частоты появлений в просмотренных, частоты появления в покупках. Это в каком-то смысле обучение рекомендательной системы (РС).

Далее нужно сделать применение РС к выборкам (обучающей и тестовой). РС работает так: просмотренные объекты (без дубликатов) в сессии сортируются по убыванию частоты из словаря РС. Это и есть рекомендация.

zachanton commented 7 years ago

@ilirhin а можно еще комментарий по моему вопросу? :)

ilirhin commented 7 years ago

Абсолютно верно замечено, что precision@5 не имеет смысла считать, когда просмотренных меньше 5. Тем не менее подсчитать его всё равно нужно, потому что вот так захотел заказчик :)

senya-ashukha commented 7 years ago

Индустрия =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.

Vasiliy-Molotov commented 7 years ago

Я считал precision@5 = [relevant items among first 5 items] / [min(5, length of recommendation pull)]

jeipiem commented 7 years ago

@Vasiliy-Molotov в 4-м комментарии сказано, что количество просмотренных товаров не важно для вида формул, я понимаю это как указание на деление на 5 :)

ilirhin commented 7 years ago

Именно так :)

bananaconda commented 7 years ago

а если в строке ноль релевантных, то какой для нее recall? ноль, да?

vasanima commented 7 years ago

@bastak @ilirhin @Evfro Имхо, все правильно в том, что для precision@5 мы делим на 5, хотя рекомендаций было меньше. Метрики не должны зависеть и тем более подгоняться под конкретную модель рекомендаций. И это проблема конкретно данной в задании реализации по частотному словарю, которая не умеет выдавать произвольное число рекомендаций. Теоретически было бы правильно добивать рекомендации товарами, которые чаще всего покупались вместе с теми, которые юзер уже просмотрел, IRL такое встречается повсюду. Но эффективность таких рекомендаций и измерять надо видимо по-другому.

evfro commented 7 years ago

@vasanima проблема здесь не в конкретной реализации, а в том, что процедура оценки качества модели не была четко сформулирована, оставляя свободу интерпретации на стороне выполняющих задание. Найти аргументацию можно и под тот, и под другой способ оценки, но в данном случае все упирается в то, что считают "правильным" составители задания, т.к. именно на основе этого принимается решение об успешности выполнения задания студентом.