LINUX.ORG.RU

Рейтинг, средняя оценка

 , ,


0

1

Здравствуй лорчик. Пытаюсь решить одну проблему, суть такова. Есть музыкальные треки и оценки к ним из разных источников (last.fm, spotify и т.д.) Нужно посчитать одну оценку. Допустим есть три оценки трека из разных источников, нужно посчитать на основании этих данных одну. Сейчас просто считается средняя (оценки приведены к диапазону [0; 1]), но с этим есть проблемы. Не для всех треков есть по три оценки, для некоторых есть оценки только из одного источника, допустим last.fm. И эти оценки могут быть для некоторых исполнителей похожи на оценки spotify, а для некоторых выше оценок spotify. И песни, у которых есть две оценки, будут иметь рейтинг ниже песен, у которых одна оценка, что несправедливо)

Что можно использовать вместо среднего арифметического, чтобы избежать такого негативного эффекта? Вот как это выглядит, трек это точка, его координаты - оценки https://imgur.com/a/Hh9k1jW Когда есть две оценки, все ок, когда всего одна, проблемы.

★★★★★

Последнее исправление: goingUp (всего исправлений: 1)

А что тебе мешает в случае отсутствия оценки не учитывать её при вычислении среднего?

Evgueni ★★★★★
()

Ну только не учитывать такие оценки вообще.

Если мало оценок (вообще одна), то естественно, что это может быть как неадекват с колом, так и «а мне всё нравится» с высшим балом.

И никак ты из этой одной оценки чего-то вразумительного не получишь.

fornlr ★★★★★
()

Просто ты даже проблему описать не можешь.

А тут может быть несколько аспектов

1) при отсутсвии оценки в одном источнике, это может быть причиной малой популярности песни. Поэтому оценка в других источниках так же из-за низкой популярности может скакануть сильно в разные стороны.

2) пользователи какого-то ресурса более «злее-добрее». Возможно тут ещё влияет дискретность оценки, «отлично, но чуть-чуть не дотянули» в 10 бальной системе это 0.9, а в пятибальной это 0.8

fornlr ★★★★★
()
Последнее исправление: fornlr (всего исправлений: 1)

Всё не так! Пиши софтину где ты будешь слушать и оценивать песню локально, играет мызыка такая ты такое думаешь «норм!» и жмак лайкосик! Программа вырезает кусок песни в 5 секунд до и после лайка и строит по отрезку график частот который сохраняет в базу (можно как-то сжать его) затем ты слушаешь вторую песню и опять тоже самое и третью и ещё много много, по итогу у тебя в базе паттерны отрезков песен, затем софтина смотрит на все и выискивает похожие теперь она в состоянии различить какую музыку ты предпочитаешь и объединять разные но похожие стили в разные категории, затем ты ей кормишь тонну музла и говоришь «хочу музон похожий вот на этот и этот сегодня» и онатебе отфильтровывает из нового музона всё что похоже на диапазон ранее залайканных паттернов. Музон это субъективщина ещё та, а во всей песне нам нравиться только определённые временные отрезки и/или их сочетания. Математику тут надо на помойку выкидывать как сущность. Важна не оценка, а на каком этапе прослушивания слушатель возжелал её задать оценку эту

LINUX-ORG-RU ★★★★★
()

Помимо матожидания есть ещё и дисперсия, попробуй использовать ее. Смысл примерно такой, что каждая оценка имеет (чисто пример) дисперсию в еденичку. Тогда если у тебя три оценки использовались тогда дисперсия равна одной трети, если две - половине и если одна - еденице. Не очень научно, но смысл думаю ясен, можно почитать что то про интервальные вычисления

anonymous
()

считается средняя

песни, у которых есть две оценки, будут иметь рейтинг ниже песен, у которых одна оценка

Это с чего вдруг? Или ты настолько одарённая личность что сумму делишь всегда на 3, а не на количество оценок, как положено?

no-such-file ★★★★★
()

Введи коэффициенты и соотношения.

Zhbert ★★★★★
()

Для справедливости оценки необходимо ввести коэффициент количества прослушиваний.

anonymous
()
Ответ на: комментарий от Evgueni

Смотрите, трек 1 имеет оценки last.fm 0.6, spotify 0.4. Средняя выходит 0.5. Трек 2 имеет только оценку last.fm 0.55. Если учитывать только ее, получится, что Трек 2 лучше, но лучше-то трек 1. И нельзя домножить на какой-то фиксированный коэффициент, потому что для одной группы оценки last.fm и spotify будут совпадать, а для другой различаться в большую или меньшую сторону. Это связано с тем, как эти ресурсы считают рейтинг. Этот коэффициент нужно считать на каждую группу отдельно, возможно по тому, как наклонено облако оценок (смотрите рисунок из ОП). no-such-file Zhbert (как скастовать анонимуса)

goingUp ★★★★★
() автор топика
Ответ на: комментарий от fornlr

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

Просто на spotify могут отсутствовать старые альбомы, а на last.fm новые

пользователи какого-то ресурса более «злее-добрее».

Тут дело в том, как считаются оценки. spotify походу считает их по количеству прослушиваний/слушателей у себя за последние несколько месяцев, last.fm отдает только количество прослушиваний/слушателей за все время. Получается хайповое имеет на spotify оценку повыше, а классика имеет оценку выше на last.fm. Меня бы устроило даже брать только оценки spotify, но их нету для всех треков, и проблема остается той же (см выше).

goingUp ★★★★★
() автор топика
Ответ на: комментарий от LINUX-ORG-RU

Это интересный вариант, но на данный момент нужно что-то для «холодного старта».

goingUp ★★★★★
() автор топика
Ответ на: комментарий от goingUp

Ну и строй боксплот для графика. В чём проблема? Там и среднее и мин/макс для графика будут отображены.

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

Единственная альтернатива — это формирование гипотезы, например: оценка на спотифай всегда на 20% выше аналогичной оценки на last.fm, но эту гипотезу нужно экспериментально подтвердить на тех данных, где присутствуют обе оценки, но тогда смысл в использовании второй выборки (для которой составили гипотезу) как бы исчезает (степень исчезновения зависит от качества гипотезы — как это качество оценивать отдельная и очень непростая тема).

Evgueni ★★★★★
()
Последнее исправление: Evgueni (всего исправлений: 1)
Ответ на: комментарий от anonymous

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

Evgueni ★★★★★
()

Можно, например, посчитать среднее по источнику и прибавлять среднее, если нет оценки.

Еще можно использовать корреляцию источников (схожесть оценок) и считать «среднее» с использованием этой схожести. Тут надо копать теорию, я не знаю.

Можно локализовать по жанрам, или, вообще, прикрутить классификацию. И «среднее» по классам. Тут тоже я ничего не знаю

anonymous
()
Ответ на: комментарий от Evgueni

Есть гипотеза, что оценка spotify на 20% выше для одной группы, и на 20% ниже для другой (числа нужно еще рассчитать) Допустим я нахожу вот эти прямые https://imgur.com/a/0r7OYtE и зная их я могу приблизительно посчитать сколько были бы отсутствующие оценки, а потом среднюю. Но выглядит как-то костыльно, особенно то, что считается средняя. Может есть что-то получше.

goingUp ★★★★★
() автор топика
Ответ на: комментарий от goingUp

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

А зачем? Зачем считать среднюю, если гипотеза работает? Иными словами: проверяешь гипотезу на «хороших данных» и предполагаешь, что она работает везде. Там где нет данных у тебя всё равно ничего и нет, а на «хороших данных» гипотеза и так работает. Так что используй для оценки более качественную выборку и всё. А вот если гипотеза не работает (что такое «работает» это отдельная тема и в темпе вальса тут её на форуме не изложишь, так как есть множество нюансов, которые я и сам все не знаю), то тебе придётся либо сконструировать другую гипотезу (которая учитывает какие-то дополнительные факторы, например, число проголосовавших), либо отказаться от гипотез вообще и просто выводить то, что есть.

IMHO лучше выводить все (три) независимые источника, а не одно число. А если числа нет, то для этого источника выводить оценочный результат посчитанный по твоей гипотезе с помаркой (оценка со ссылкой на алгоритм ей расчёта и статью на arxiv.org)

P.S. И да, волшебной палочки не существует. Если данных нет, то их нет. Это как в БД троичная система: Да/Нет/Не знаю.

Evgueni ★★★★★
()
Последнее исправление: Evgueni (всего исправлений: 5)

Начинай свой рейтинг когда оценок более тридцати. Если ты нииибаца меломан, то для таких есть отдельные загончики, где всё разжуют. И да, вес оценок должен быть разный.

anonymous
()
Ответ на: комментарий от goingUp

Для усреднения малого числа результатов из непонятно как коррелирующих между собой источников все алгоритмы плохи, поэтому лучше оставиться на простейшем (если уж непременно хочется выводить одно число, а не все имеющиеся) aka среднеарифметическом.

Для одного числа IMHO лучше выводить результат наиболее надёжного источника (какой из источников надёжнее нужно естественно определить в результате исследований, например, с помощью опроса фанатов экспертов), а не среднее.

Evgueni ★★★★★
()
Последнее исправление: Evgueni (всего исправлений: 4)
Ответ на: комментарий от Evgueni

Надежнее по идее spotify, но у него нет всех оценок, особенно русскоязычных групп. Если брать только last.fm, то «топы» оккупируют более старые группы, просто потому, что за 5 лет они набрали больше прослушиваний, чем другие за год.

Есть вариант брать не среднюю, а максимальную оценку, это очень просто и решит кое-какие проблемы, надо попробовать.

goingUp ★★★★★
() автор топика
Последнее исправление: goingUp (всего исправлений: 2)
Ответ на: комментарий от Evgueni

например, с помощью опроса экспертов

Опять ненавзчивое навязывание мнения экспертов.

«ненавзчивое навязывание» - хороший оксюморон.

anonymous
()
Ответ на: комментарий от goingUp

Есть вариант брать не среднюю, а максимальную оценку, это очень просто и решит кое-какие проблемы, надо попробовать.

Почему не пробовать систему оценки в «субъективно оцениваемых» видах спорта (например, фигурное катание): отбросить минимум и максимум и сумма/среднее от оставшихся.

anonymous
()
Ответ на: комментарий от goingUp

базовая нормализация - это zscore = (x-mean)/std, как я понял тут её надо применять к группам сайт+исполнитель, тогда средний zscore будет иметь смысл. понятно что такой подход плох для мелких групп - базовое решение это подставлять (объединять) статистику (mean,std, но не х) от более крупных групп там где мало данных

anonymous
()
Ответ на: комментарий от goingUp

Есть вариант брать не среднюю, а максимальную оценку, это очень просто и решит кое-какие проблемы, надо попробовать.

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

Evgueni ★★★★★
()
Ответ на: комментарий от anonymous

Если у вас есть гипотеза которая объясняет всё, то эксперты не нужны. Если нет, то эксперты — это всё, что у вас есть. Возможно иногда правда лучше, чтобы их не было, но эту гипотезу тоже _нужно_ проверить прежде чем принять.

Evgueni ★★★★★
()

Ничего у тебя не получится априори. Ты хочешь найти магический алгоритм вывода некой «объективной хорошести» песни на основании субъективных оценок пользователей. И почему-то называешь это средним. Давай уж определимся, что ты хочешь получить. Если ты хочешь получить среднее значение из трех источников, то и бери среднее значение, а не рассуждай на тему того какая там композиция «на самом деле» лучше другой. На каком «самом деле»? Как ты это определил? Нету никакого «самого дела», когда речь идет о субъективной оценке композиции.

А если ты все-таки хочешь совершенно не среднее, а свой совершенно новый алгоритм оценки композиций на основании каких-то эмпирических закономерностей, то было бы неплохо для начала эти закономерности тут изложить.

morse ★★★★★
()
Последнее исправление: morse (всего исправлений: 1)
Ответ на: комментарий от Evgueni

Эксперты - это всего лишь выборка с претензией на «генеральную». Если у тебя есть только эксперты, то у тебя нет самой совокупности, точнее, есть вся совокупность - это эксперты.

«Вся совокупность - это эксперты» - это уже интересно. Но плохо, когда совокупности еще нет, а эксперты уже есть, и задвигают гипотезы для будущей совокупности.

anonymous
()
Ответ на: комментарий от anonymous

Прежде чем делать выводы по теме и ставить эксперименты для начала в теме надо разобраться aka понаблюдать. Например (история от Конрада Лренца), понаблюдать как ведут себя рыбки в зависимости о раскраски. Конрад Лорец понаблюдал и сделал вывод, что чем более яркий раскас (плакатные цвета), тем рыбки в аквариуме агрессивнее. Всё, он теперь эксперт, хотя чтобы подтвердить эту гипотезу ему нужно было посчитать число укусов за какой-то промежуток времени. Это было сделано и было продемонстрировано, что яркие рыбки кусаются значимо чаще, но экспертом он стал раньше.

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

Evgueni ★★★★★
()
Последнее исправление: Evgueni (всего исправлений: 2)
Ответ на: комментарий от anonymous

Говоря иначе эксперт создает «совокупность» и «совокупность» без эксперта это как эйлеровая константа возведенная в комплексное число.

anonymous
()
Ответ на: комментарий от anonymous

Не понял, а в чём проблема у эйлеровой константы возведённой в комплексное число? Меня лично ТФКП всегда восхищала.

Evgueni ★★★★★
()
Ответ на: комментарий от anonymous

Когда источников три или меньше (этот случай), то отбрасывания максимума и минимума работает очевидно как-то не так хорошо :)

В этом смысле оставления максимальной/минимальной оценки может иметь хоть какой-то смысл, если скажем показать, что со временем оценка растёт/падает больше, чем разность результатов из разных источников.

Evgueni ★★★★★
()
Последнее исправление: Evgueni (всего исправлений: 2)
Ответ на: комментарий от Evgueni

Пошутил.

https://ru.wikipedia.org/wiki/Эйлер,_Леонард
https://ru.wikipedia.org/wiki/Эйлерова_характеристика
https://ru.wikipedia.org/wiki/Формула_Эйлера
...

Когда-то труды Эйлера по интегральному исчислению читал - КРАСОТИЩА /«Не то что нынешнее племя», спорящее об switch/.

У меня и ныне имеется директория в которой собраны труды гениев.
А на форумам после 5 постов как правило начинаются «разборки и „выяснения „кто умнее“.
Вот как вы думаете кто из любящих поспорить „умнее“?

anonymous
()
Ответ на: комментарий от Evgueni

Я к тому, что «экперт» без совокупности не нужен. Эксперт - это следствие существования совокупности.

Применительно к теме. ТСу надо сперва собрать базу, потом строить теории. Теоретическая база - тоже база. И только потом начинать «наблюдать» и «систематизировать».

anonymous
()
Ответ на: комментарий от anonymous

Возможно, что у нас разное понимание что означает понятие «эксперт». Для данного конкретного случая мне кажется что, чтобы быть «экспертом» достаточно прослушать относительно большое число композиций и уметь отсортировать прослушанные песни в соответствии со своим «вкусом». Всё. Другое дело, что в деятельность «эксперта» вполне может вмешиваться погода на Марсе и поэтому следует учитывать мнение и других «экспертов» по этому вопросу отбрасывая совсем уж нестабильных и выдающих рандом.

Evgueni ★★★★★
()
Последнее исправление: Evgueni (всего исправлений: 2)
Ответ на: комментарий от Evgueni

оставления максимальной/минимальной оценки может иметь хоть какой-то смысл

Неопределенное значение - это одновременно и минимальное, и максимальное и еще какое-то значение. То есть отбрасываем. Как тебе такая гипотеза от эксперта навязываещего совокупность?

Отбрасывание минимального и максимального - это попытка привести к «нормальному» виду, отбрасыванием как бы статистических выбросов.

anonymous
()
Ответ на: комментарий от anonymous

В данном обсуждаемом случае распределение очевидно не нормальное, так как выборка представляет набор оценок из _разных_ (трёх или менее) источников. Там очевидно имеется корреляция, но как нам тут уже продемонстрировал исследователь вопроса, она далека от линейной.

Evgueni ★★★★★
()
Последнее исправление: Evgueni (всего исправлений: 1)
Ответ на: комментарий от goingUp

Если учитывать только ее, получится, что Трек 2 лучше, но лучше-то трек 1

Нет, «лучше» именно трек 2, если под «лучше» понимается более высокая средняя температура по больнице оценка, а не твои субъективные ощущения. Если тебе кажется что 0.4 spotify ничего не значит, то зачем ты вообще берёшь оценку со spotify? Ну можешь брать взвешенное среднее и давать spotify меньший вес, например.

Это связано с тем, как эти ресурсы считают рейтинг

А это должно учитываться при нормализации оценок, когда ты приводишь их к интервалу [0,1].

no-such-file ★★★★★
()
Ответ на: комментарий от anonymous

сорян, группировка по сайт+исполнитель даст локальные рейтинги относительно «средней» песни исполнителя.. чтобы вывести стандартизованные рейтинги песен для всего сайта, нужно определить кластера песен которые рейтингуются по-разному, и нормализовать по ним..

anonymous
()
Ответ на: комментарий от Evgueni

В данном обсуждаемом случае распределение очевидно не нормальное

Не правильно выразился. Отбрасывание мин/макса сохраняет медиану. То есть это хорошо работает там, где медиана близка к среднему.

anonymous
()
Ответ на: комментарий от anonymous

В данном случае IMHO (три или меньше разных источников с непонятно какой корреляцией) выбор медианы ничем не лучше максимального/минимального значения.

Evgueni ★★★★★
()
Последнее исправление: Evgueni (всего исправлений: 1)
Ответ на: комментарий от Evgueni

Среднее значение, минимум или максимум сильно подвержены ошибкам из-за стат выбросов. В то время медиана - нет. Это как бы защита от «плохих» экспертов. Естественно, что все стат. методы плохо работают на «плохих»/«маленьких» выборках.

anonymous
()
Ответ на: комментарий от anonymous

группировка по сайт+исполнитель даст локальные рейтинги относительно «средней» песни исполнителя

Да, я тоже так подумал

нужно определить кластера песен которые рейтингуются по-разному, и нормализовать по ним..

Я так понял кластеры нужны «большие», типа там новые исполнители, «средние», старые?

Я тут подумал, наверное можно пофиксить рейтинг last.fm, чтобы учитывалось, как давно выпущен альбом (даты можно получить) и оценивать популярность не в количестве прослушиваний, а в количестве прослушиваний в год. no-such-file натолкнул на мысль.

goingUp ★★★★★
() автор топика

В том виде, как описано, проблема не решаема. Лучше всего азять просто больше различных источников. При отсутствии «лучшего» источника, информация просто не полна. В таких случаях обычно имеет смысл делать второй параметр — надёжность оценки (чем больше источников — тем выше. Можно некоторым давать больше вес надёжности, чем другим).

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

anonymous
()
Ответ на: комментарий от morse

А если ты все-таки хочешь совершенно не среднее, а свой совершенно новый алгоритм оценки композиций на основании каких-то эмпирических закономерностей, то было бы неплохо для начала эти закономерности тут изложить.

Меня устраивает среднее, но не устраивает ситуация, когда для среднего не хватает данных

трек 1 имеет оценки last.fm 0.6, spotify 0.4. Средняя выходит 0.5. Трек 2 имеет только оценку last.fm 0.55. Если учитывать только ее, получится, что Трек 2 лучше, но лучше-то трек 1.

Трек 1 лучше судя по last.fm. Если бы у него была оценка spotify, скорее всего она была бы где-то 0.36. no-such-file

goingUp ★★★★★
() автор топика
Ответ на: комментарий от no-such-file

Если тебе кажется что 0.4 spotify ничего не значит, то зачем ты вообще берёшь оценку со spotify? Ну можешь брать взвешенное среднее и давать spotify меньший вес, например.

Оценка spotify меня устраивает, можно было бы даже брать только spotify, но они есть не для всех треков. + выше написал, почему считаю трек 1 лучше.

goingUp ★★★★★
() автор топика
Ответ на: комментарий от goingUp

трек 1 имеет оценки last.fm 0.6, spotify 0.4

Трек 1 лучше судя по last.fm. Если бы у него была оценка spotify

Ты окончательно запутался. По изначальным данным оценка на spotify у него таки есть.

anonymous
()
Ответ на: комментарий от goingUp

Оценка spotify меня устраивает, можно было бы даже брать только spotify, но они есть не для всех треков.

В таком случае наиболее разумным будет как раз таки и использовать spotify там, где есть. Далее — на всей выборке выявить закономерность чисто эмпирически. Например, если в 90% случаев оценка на spotify в 1.3-1.5 раз ниже, чем на lastfm, то можно просто использовать оценку из lastfm, поделенную на 1.4. Это даст для большинства случаев приемлимый результат. Но естественно худший, нежели если бы данные полноценно были.

anonymous
()
Ответ на: комментарий от anonymous

Да, сори. Должно быть:
Трек 1 лучше судя по last.fm. Если бы у второго трека была оценка spotify, скорее всего она была бы где-то 0.36.

goingUp ★★★★★
() автор топика
Последнее исправление: goingUp (всего исправлений: 1)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.