Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Precision@5 и recall@5 #12

Open
bastak opened this issue Oct 12, 2016 · 15 comments
Open

Precision@5 и recall@5 #12

bastak opened this issue Oct 12, 2016 · 15 comments

Comments

@bastak
Copy link

bastak commented Oct 12, 2016

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

@ilirhin
Copy link
Collaborator

ilirhin commented Oct 12, 2016

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

@evfro
Copy link

evfro commented Oct 12, 2016

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

@ilirhin
Copy link
Collaborator

ilirhin commented Oct 12, 2016

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

@zachanton
Copy link

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

@jeipiem
Copy link

jeipiem commented Oct 12, 2016

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

@ilirhin
Copy link
Collaborator

ilirhin commented Oct 12, 2016

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

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

@zachanton
Copy link

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

@ilirhin
Copy link
Collaborator

ilirhin commented Oct 12, 2016

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

@senya-ashukha
Copy link
Collaborator

Индустрия =D

On Thu, Oct 13, 2016 at 1:04 AM Ilya [email protected] wrote:

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


You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
#12 (comment),
or mute the thread
https://github.com/notifications/unsubscribe-auth/AKBNU65_0_aHBF_z6BKTM6AuuHQA9sx5ks5qzVlYgaJpZM4KUgic
.

Yours sincerely,
Ashuha Arseniy.

@Vasiliy-Molotov
Copy link

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

@jeipiem
Copy link

jeipiem commented Oct 13, 2016

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

@ilirhin
Copy link
Collaborator

ilirhin commented Oct 13, 2016

Именно так :)

@bananaconda
Copy link

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

@vasanima
Copy link

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

@evfro
Copy link

evfro commented Oct 22, 2016

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

9 participants