Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > Алгоритмы > Рейтинговая система. Формула. |
Автор: DiMoN_TD 14.1.2013, 10:57 |
Добрый день. Пишется некий агрегатор по объединению некоторых магазинов. Появилась необходимость в рейтинге этих магазинов на основе голосов пользователей. Идея оценки такая, что пользователь должен проголосовать за каждый Параметр магазина отдельно, такие как: обслуживание клиентов, время доставки, цены и т.п. Причем у каждого Параметра есть свой "вес" по отношению к другим Параметрам. Т.е., например, обслуживание клиентов оценивается выше, чем скорость доставки. Я, к сожалению, плох в математике и поиски в интернете не дали особого результата по нахождению подобных формул для подсчета рейтинга, т.к. все подобные ресурсы держат формулы в секрете по понятным причинам. А рейтинг должен учитывать: 1. N-е кол-во параметров 2. Вес параметров 3. Кол-во голосов 4. Вес голоса (чем пользователь "круче", тем вес голоса выше) При этом формула по возможности должна иметь коэффициент, который бы не позволял "богатым богатеть". Если у кого-то есть наработки или ссылки или же есть возможность составить подобную формулу за N-ое вознаграждение - буду очень признателен. |
Автор: nworm 14.1.2013, 13:10 |
МНК. Обычно строится методом наименьших квадратов зависимость. Просто потому что дальше уже сложно. Ну и не все доходят. Есть большая теория на эту тему. Эконометрика, Машинное обучение, Распознавание образов. Самая всеми любимая задача - построить предсказатель роста продаж в зависимости от кучи факторов. (Экономической выгоды от какой-то заявки на тендер и т.д.) Особенности. Как Вашу задачу наиболее оптимально решать не знаю. Возможно, здесь нужна какая-то надстройка над методом наименьших квадратов. Если, например, много типов магазинов, то они несравнимы. Теория говорит, что в этих случаях надо строить разные формулы. Если смотреть по предпочтениям людей, например, к новостям. То люди любят порнографию, ещё эротику больше других новостей. Не знаю с чем это связано, наверное, с желанием размножаться, вызванным естественным отбором. У Вас тут сексшопы должны как-то выпадать. Вот эту формулу, её потом надо будет корректировать, вероятнее всего. Есть ещё проблема переобучения (слишком сложная формула - плохая) и недообучения (слишком простая формула - плохая). |
Автор: DiMoN_TD 14.1.2013, 13:24 |
nworm, Что-то очень далеко вы завернули. Агрегировать мы будем магазины одного типа, которые предоставляют продукцию из одной сферы. Поэтому в данном случае формула будет содержать строгое кол-во параметров и строгий вес каждого параметра для магазинов. В конечном итоге пользователь, который воспользовался услугой магазина должен установить оценку для каждого параметра. Например (по 10-бальном шкале): Фидбэк: 8 (вес данного параметра, пускай будет 5 из 10, т.е. 0.5) Цена: 9 (вес = 1) Скорость доставки: 5 (вес = 0.4) Качество: 9 (вес = 1) Соответственно мы должны, исходя из этих оценок по каждому параметру, с учетом весов - вычислить общую оценку пользователя и далее общий рейтинг магазина с учетом других голосов пользователей. |
Автор: Pavia 14.1.2013, 13:42 |
a1. N-е кол-во параметров от произведения a2. Вес параметра a3. Кол-во голосов a4. Вес голоса (чем пользователь "круче", тем вес голоса выше) результат есть сумма по параметрам сумма по голосам ((a4*a2)/a3)/a1 Как видно цикл вложенный. Единственно что я бы ещё по рекомендовал с экспонетами поиграться. |
Автор: DiMoN_TD 14.1.2013, 14:56 | ||
Извините, но это как раз второстепенный вопрос в ДАННОЙ теме. Меня конкретно интересует формула для расчета рейтинга, а уже где ее буду применять - это вопрос как раз уже решенный. Или может я неправильно понимаю, и вы можете мне разъяснить более подробно свое сообщение? |
Автор: nworm 14.1.2013, 15:26 |
DiMoN_TD Всё нормально я написал. В случае если не хотите заморачиваться - применяете МНК для линейного полинома. В основном так все и решают. И можно с экспонентами не заморачиваться. То есть строите формулу с суммой примерно как у Pavia Дальше строите таблицу с голосами пользователей и желаемыми ответами. Загоняете таблицу в Экзель. Нажимаете кнопки чтобы применить МНК и всё. Получаете веса. |
Автор: Фантом 14.1.2013, 15:31 | ||
Хорошо, если он уже решен, однако ответ Вы тут не сообщили. Дело в том, что общую формулу расчета рейтинга искать бессмысленно, формула сильнейшим образом зависит от того, для чего Вы собираетесь этот рейтинг использовать. Например, если рейтинг предназначен для выплаты премий наиболее успешным сотрудникам, то в рейтинге необходимо учитывать не время доставки само по себе, а скорость (в буквальном смысле) этой доставки - отношение расстояния до клиента к времени доставки, с поправкой на пробки, если доставка на автомобиле . А вот если рейтинг предназначен для оценки эффективности магазина в целом, то в рейтинг должно входить именно время доставки, а также, например, удовлетворенность клиента товаром (которая от доставщика, естественно, не зависит никак). И т.д. и т.п. Так что Вы попросту не сформулировали задачу полностью. |
Автор: _Y_ 14.1.2013, 23:16 |
Мне кажется, что от многой мудрости много печали. Я бы взял самый простой вариант и топал от него. Что-нибудь типа: рейтинг магазина = среднее по пользователям(средняя оценка пользователем * рейтинг пользователя) где средняя оценка пользователем = среднее по параметрам оценки(оценка по каждому параметру * вес параметра) При этом вес параметра вам придется выбирать самим - никто кроме вас не решит, какой параметр важнее. А вот рейтинг пользователя - область давно и хорошо окученая. Мне больше всего нравится самообучающийся рейтинг пользователя. Принцип такой: пользователь получает тем более высокий рейтинг, чем лучше он своими оценками угадывает конечный результат - вам ведь интересно мнение массового покупателя, а на уникальных оригиналов можно и... внимания не обращать. |