Может, я не прав, но мне кажется, что годик назад сильно-красных было от силы человек 15-20, да и красных было сотни три.
Обычно когда происходит инфляция, с этим что-то делают.
Можно, например, поднять границы до 2300 и 2700 соответсвенно.
№ | Пользователь | Рейтинг |
---|---|---|
1 | tourist | 3993 |
2 | jiangly | 3743 |
3 | orzdevinwang | 3707 |
4 | Radewoosh | 3627 |
5 | jqdai0815 | 3620 |
6 | Benq | 3564 |
7 | Kevin114514 | 3443 |
8 | ksun48 | 3434 |
9 | Rewinding | 3397 |
10 | Um_nik | 3396 |
Страны | Города | Организации | Всё → |
№ | Пользователь | Вклад |
---|---|---|
1 | cry | 167 |
2 | Um_nik | 163 |
3 | maomao90 | 162 |
3 | atcoder_official | 162 |
5 | adamant | 159 |
6 | -is-this-fft- | 158 |
7 | awoo | 155 |
8 | TheScrasse | 154 |
9 | Dominater069 | 153 |
10 | nor | 152 |
Может, я не прав, но мне кажется, что годик назад сильно-красных было от силы человек 15-20, да и красных было сотни три.
Обычно когда происходит инфляция, с этим что-то делают.
Можно, например, поднять границы до 2300 и 2700 соответсвенно.
Название |
---|
рейтинг неадекватен!
10/10)))
Не нравится быть Международным гроссмейстером =) ?
Не нравится.
Да, мне тоже не нравится быть мастером когда знаеш что это больше не круто как было раньше. :(
Инфляция, на мой взгляд, не только у красных проявляется :)
Um_nik, ты че тут самый умный что ли?
Поддерживаю! Хорошо бы, если бы красных было 100 — 200.
Как то маловато, только 3e-6% от населения планеты. Можно цвет в относительном выражении определять, скажем 1-2% от активных пользователей и переодически откалибровывать.
В качестве временного решения пойдет, а в долгосрочной перспективе все-таки лучше лечить не симптомы, а причину.
Я могу ошибаться, но причина мне видится следующим образом: на КФ сейчас огромный приток участников, имеющих уровень, мягко говоря, далекий от уровня международных гроссмейстеров, и вот эти самые участники с низким
рейтингомуровнем "кормят" более сильных.Потенциальное решение проблемы: ввести начальную калибровку (контестов 5-10), во время которой не будет "перетекания" рейтинга. Таким образом, после этой калибровки все вновь зарегистрированные участники окажутся примерно на своем месте, при этом никого не "накормят". В долгосрочной перспективе, кажется, возможна даже дефляция рейтинга.
P.S. Источник идеи с калибровкой именно тот, о котором все подумали.
Если модель рейтинга статистически правильная, большое количество новичков не должно особо влиять на рейтинг топовых участников (ещё такой аргумент — в предыдущие пару лет тоже был приток участников, но такой сильной инфляции не было). Впрочем, сложно сказать, не зная формул; с формулами можно было бы проделать симуляции и понять, откуда возникли проблемы.
Как мне кажется, сильным источником инфляции могут быть командные контесты (VK Cup). Там из-за пересчёта рейтинга на команду получается гораздо больше высокорейтинговых участников, => больше прибавка рейтинга в топовом диапазоне. Хотя, опять же, без формул — это всё спекуляции.
Это капитанство.
Аргумент, мягко говоря, очень сомнительный (см. ниже).
Когда-то MikeMirzayanov упоминал, что сумма рейтингов участников раунда остается (почти?) неизменной. Этого уже достаточно, чтобы вычислить то, сколько рейтинга новый участник в среднем отдает всем остальным: начальный рейтинг минус матожидание его равновесного рейтинга*.
Существует общая проблема всех комьюнити: снижение "качества его участников" с увеличением его популярности. Вот и с КФ происходит то же самое: средний уровень участников в ранние годы его существования был намного выше.
*
Равновесный рейтинг — такой рейтинг, при котором матожидание его изменения после контеста будет равно нулю.Такие контесты могут быть только источником нерелевантных изменений рейтинга, но никак не инфляции (см. утверждение о неизменности суммы рейтингов).
Расскажите это любителям систем рейтнигов, основанных на персентилях (например, starcraft).
Вот это уже интереснее, и выглядит очень странно. Такая модель не может быть статистически корректной по очевидным причинам, и совершенно непонятно, зачем так делать.
Почему? Если сила команд систематически переоценивается (что, похоже, как раз наш случай, по крайней мере в high-rating range), то генерирует инфляцию в чистом виде. Если я одиночный участник, и рейтинги большинства остальных участников переоценены на 10% (а мой — нет), то моему рейтингу от этого станет сильно лучше. И я заберу кучу рейтинга у команд из 2х слабых участников, потому что их рейтинг оценен выше моего, что далеко от истины.
Не говоря уж о том, что непонятно, как именно реализован принцип "сумма рейтингов неизменна" для командных контестов. Если "сумма рейтингов команд неизменна" — то там может быть много интересных спецэффектов.
Я, кстати, правильно вообще понимаю смысл, который Вы вкладываете в выражение "статистически корректная система рейтинга"? У меня понимание такое: "система рейтинга, позволяющая корректно оценить статистическую вероятность победы одного участника над другим (при условии, что их рейтинги равновесны)".
Сомневаюсь, что у всех такие же хорошие знания математики в целом и статистики в частности, как и у Вас, выпускника МГУ. Лично я вижу только одну явную проблему: у участника с неизменным уровнем рейтинг должен постепенно падать, из-за повышения уровня других участников и "перетягивания" ими рейтинговых очков.
Согласен.
Но ведь с повышением уровня одних, может опускаться уровень других. Так что не думаю, что рейтинг у участника с неизменным уровнем должен падать.
Возможно, кормят не те участники, у которых низкий скилл, а те, которые постоянно мигрируют между дивизионами. Ведь, как мне кажется, участник поднимается в первый див за счет рейтинга, взятого во втором, а потом, когда падает, часть его рейтинга остается в первом. При этом в другую сторону рейтинг не мигрирует. Можно просто убрать этот канал, например, пересчитывая рейтинг тех, кто падает во второй дивизион не с первым, а со вторым. И тогда в первом дивизионе рейтинг будет распределяться лишь между его участниками, при этом в соответствии со скиллом. А так как средний участник попадает в див 1 с рейтингом 1700-1750, то ситуация с инфляцией пропадет сама собой, такое распределение рейтинга все сделает само.
Кажется, нужно быть совсем дураком, чтобы сделать перетекание рейтинга между дивизионами строго однонаправленным.
Оно и не является строго однонаправленным (при статистически правильной системе рейтинга), так как существуют смешанные раунды. По идее, так как из второго дивизона утекает рейтинг в нормальных раундах, разница в рейтинге между участниками первого и второго дивизионов завышена, что должно проявляться в общих раундах.
Но, как можно заметить, в смешанных раундах происходит ещё более сильная утечка рейтинга в первый дивизион, а решение только задач, которые обычно даже не попадают в Div 1 по сложности, позволяет фиолетовому сделать +100 или даже больше. Так что получается что, как это странно бы не звучало, рейтинг течёт куда он должен течь.
Просто читал, что рейтинг пересчитывается в зависимости от ожидаемого места по текущему рейтингу и того, которое получил участник в результате контеста. А потом сумму рейтингов участников до контеста распределяют по рейтингу после контеста. Но со смягчающим коэффициентом, чтобы неудачные раунды не сильно меняли рейтинг. Ну, это как я понял. И других причин в инфляции рейтинга мой скудный моск выдвинуть не может. Только если есть новички, которые создают по фейковому аккаунту после каждого испорченного раунда. Сделать привязку к номеру мобильного, как в вк или телеграме, и не париться.
Вот именно по этой причине я очень долго не регистрировался в ВК.
Мне кажется дело в том, что уровень новичков переоценен. Например, я за мои первые четыре контеста падал неуклонно почти до серого, допустим после этого если б я создал новый аккаунт, то 300 рейтинга оставил бы сообществу, обесценивая рейтинг. А если бы начальный рейтинг был равен нулю, то обогнав хотя бы пару человек на своем первом контесте, то создал бы дефляцию рейтинга. Пример: 50 новичков собрались писать свой первый контест, после раунда сумма их рейтингов должно быть примерно 50*Х, Х — начальный рейтинг, на данный момент Х=1500. И этот Х надо подобрать чтобы избежать инфляции/дефляции. Но все равно количество красных будет расти пропорционально, но не быстро как последние времена. Сейчас: написал хорошо +200, после написал как обычно -100. А должно было быть -200.
46 — Международный гроссмейстер
677 — Гроссмейстер
722 — Международный мастер
1465 — Мастер
7460 — Кандидат в мастера
10486 — Эксперт
20344 — Специалист
11066 — Ученик
4623 — Новичок
Новичков мало )))
PS: могут быть неточности
А вот и наглядная статистическая иллюстрация к тому, что я сказал выше. Прошу обратить внимание на то, насколько сильно отличаются количество участников выше и ниже стартовой черты. Хотя, по идее, эти количества должны быть примерно равны.
Для сравнения ранжировка участников TopCoder Algorithm:
24 — 3000+
576 — 2200-2999
4635 — 1500-2199
9972 — 1200-1499
19093 — 900-1199
29727 — 1-899
Здесь учтены даже те участники, которых TopCoder не показывает в рейтинговых таблицах потому, что они не участвовали более полугода. Данные взял тут: http://community.topcoder.com/tc?module=AdvancedSearch
Судя по этим данным, разница между TopCoder и CodeForces небольшая. Поэтому, если на CodeForces есть проблема с инфляцией рейтинга, то она должна быть и на TopCoder. Но что-то я не нахожу обсуждение этой проблемы на форумах TopCoder... Нашел только короткое упоминание инфляции в этой статье о рейтинге на TopCoder. Может это не такая уж большая проблема как кажется?
Ну на КФ получается в диапазоне от 0 до 1199 примерно 8% всех участников, а на ТК там около 75%, что выглядит более логичным.
Мне кажется, говоря о малом количестве серых и светло-зеленых на codeforces, вы забываете принципиальную разницу между cf и tc.
На топкодере можно за один контест стать глубоко серым (Рейтинг 442 за один контест)
На codeforces чтобы стать серым, нужно упорно и долго писать контесты плохо, поэтому их не так много (нужно писать много контестов, но при этом не прокачиваться и писать их плохо).
В результате имеем некие нелогичности:
1. Чтобы стать новичком надо слить несколько контестов, а поначалу начинающие именуются экспертами и специалистами. Большинство кстати там и остаются, порешав 1-2 контеста и забив.
2. Рейтинг не соотвествует скиллу. Решая на том же уровне (или выше) мой рейтинг 3-4 года назад был примерно на 250 очков ниже. А растет видимо только за счет новых участников.
На топокдере такого не было. Хотя я начал участвовать там на пике числа активных пользователей.
Что-то у Вас не то со статистикой. Во вкладке "Рейтинг" всего 551 красный. В то время, как у Вас их аж 723.
Мне кажется, что их 551, потому что появился новый функционал. Теперь можно не отображать тех, кто не участвовал полгода и более. Поэтому у вас их 551, а у него 723. Он писал комментарий до этого обновления Codeforces, а вы посчитали "красных" уже после его.
Комментарий написан 5 недель назад ))
Я голосую за отсечку в 2398.
Хотя, пацаны, давайте после контеста решим, сейчас что-то голова не думает.
все-таки на 2300 согласился?
Да, давайте 2300, будем чуть лояльнее к людям. 2398 многовато, наверно.
давайте проведем контест на доказательство оптимальной отсечки
Во-первых, можно убирать из рейтинга тех, кто давно не писал соревнования, по примеру топкодера — думаю, это даст сокращение в верхах на 10-25% Во-вторых, я сейчас напишу контест, и одним красным станет меньше =)
MikeMirzayanov уже несколько раз упоминал о том, что планирует опубликовать формулы пересчета рейтинга для дальнейшего обсуждения сообществом — чтобы общими усилиями найти способ сделать их лучше. Ждем...
А общие причины инфляции уже объяснил AlexanderBolshakov. Ситуацию усугубляет мультоводство — одно из его проявлений в том, что некоторые новички создают аккаунт, а когда рейтинг падает — "начинают заново", вместо того, чтобы использовать старый аккаунт.
Если все будет продолжаться так же, как сейчас, то довольно скоро разве что IGM будет иметь значение, которое раньше имел красный цвет, а красный сам по себе не будет говорить вообще ни о чем)
Кроме того ребята пытаются самоутвердиться за счет побед в контестах Div2(ведь 5 топовых участников получают поздравления на главной), это объясняет большое число "черных" участников в соревнованиях второго дивизиона. Когда же аккаунт переходит в "фиолетовые", заводят новый, чтобы снова участвовать в Div2.
Насколько я понимаю, VK поборол создание "левых" аккаунтов требованием привязывать мобильный телефон (не уверен, давно не являюсь полноценным пользователем VK), можно перенять опыт.
Да у них много причин, были ведь уже темы-сознания. Вне конкурса нету азарта; весело взламывать ребят из второго дивизиона; как в онлайн-играх, интересно начать заново и чего я только не читал.
У меня весьма посредственные понимания того, как работает система рейтинга (особенно когда это вообще секретная информация, как в случае с СF), но вроде именно эти (плюсовые) фейки на инфляцию не сильно влияют.
Т.е. если они пишут второй див, выходят в первый, сливаются опять во второй, опять в первый — то там, возможно, идет какая-то перекачка рейта между дивизионами. А если человек банально регистрируется на 1 раунд, получает свой базовый рейт, пишет раунд в хороший плюс и выбрасывает акк — он вроде даже борется с инфляцией, нет? Его профиль забрал немного рейтинга из системы благодаря успешному раунду, дальше профиль умер — и с ним из оборота выпал и этот отобранный рейтинг.
Да, похоже, ты прав :)
Я целиком за. Предлагаю границы 2700 и 2400 соответственно. А то красных развелось под 800 человек...
Давайте чуть позже, у меня в этом году задача — не вылететь из красных :)
Думаю, надо не границы двигать, а корректирующими коэффициентами загонять в правильные рамки.
У меня не очень большой опыт с ЭЛО-подобными рейтингами, но один раз я делал его имлементацию для игры в "Чапаева". Но ЭЛО рейтинг придумывался как распределённая система — что бы в ситуации с ОТСУТСТВИЕМ централизованной базы данных получался какой-то близкий к правде показатель уровня игры (в шахматы). На Codeforces централизованная база присутствует, поэтому никто не мешает этим воспользоваться для выпрямления ситуации с рейтингами.
Ещё надо отбросить идею про то, что "если я хорошо выступил, рейтинг упасть не должен". Если человек выступил лучше, чем от него можно было ожидать, он не должен упасть в рэнкинге участников, а с рейтингом может случится всё, что угодно — может и упасть. В конце-концов, это просто число. Если бы такая идея была принята "массами", то можно было бы спокойно домножать на корректирующий коэффициент после каждого события.
По-хорошему, тех, кто давно не участвовал в соревнованиях (включая меня) надо вообще рейтинг медленно возвращать к медиане, но так как такая идея будет слишком непопулярна, то хотя бы убирать из рэнкингов. Например после шести месяцев тишины звание меняется на "почётный кандидат в мастера" или "кандидат в мастера на пенсии" и человек исчезает из рейтингов. Если разрешить постепенное сокращение рейтинга, то при понимании почему так происходит и при наличии поля с историческим максимальным рейтингом, меня бы это не напрягало.
Начинающие участники должны получать рейтинг максимально близкий к медиане. Насколько я понимаю, сейчас это не так, соответственно медиана и подтягивается к этому рейтингу.
По поводу того, сколько "должно быть" красных — не знаю, но я бы отталкивался от персентилей и считал бы от активных участников.
По-моему, идея отойти от ЭЛО достаточно интересная. В спорте, например, распространена система типа "сумма каких-нибудь очков за последние N недель/лет".
Можно по итогам каждого раунда начислять "первоначальный" рейтинг: взять какую-нибудь систему аналогичную рейтингу ITMO, где первое место получает 200 очков, все, кто набрал ≤ 0 баллов получают 0, а остальные, в зависимости от результата получают от 0 до 200. Итоговый рейтинг считать как сумма 11 лучших результатов за последний год.
Во-первых, инфляции такая система подвержена значительно меньше. Во-вторых, участники, которые очень долго не писали раунды, автоматически пропадут из рейтинга. В-третьих, на мой взгляд самое важное, любой (даже самый плохой) результат в раунде не ухудшает рейтинг, а значит решается известная проблема отказа от участия в раунде из-за страха перед потерей рейтинга, когда человек решает задачу А минут 50, наконец додумывает, но понимает, что сдав её сейчас и ничего больше не решив, у него будет низкий результат, ведущий к потере рейтинга, и вообще забивает на раунд.
Проблему здесь вижу в том, что если участник пишет в год 2-3 раунда, то его рейтинг никогда не вырастет. Другая проблема в том, что рейтинг не может упасть ниже 0.
Um_nik, Кодефорсы — это сайт для саморазвития, решения задач и для общения с умными людьми, а не для любования собственным рейтингом.
Я точно так же говорю после каждого слива)
Сразу вспомнилось, как некоторые игроки в доту говорят, что им на рейтинг по фигу, а играют они для удовольствия (с обладателями такого же рейтинга).
Если что, насчет тебя я никаких намеков не делал :).
Ну, если вы считаете что надо поднять границу "красноты", то, я думаю, целесообразней будет поднять все границы, а не только для гроссмейстера и международного гроссмейстера. Типа вот так:
Как считаете?
Участник с 1200 рейтинга — это новичок-ученик или ученик-новичок, судя по вашей схеме? А каким будет его цвет?
а почему вы спрашиваете?
Потому что пересечение Новичка и Ученика в 1200. Написал бы levonog:
1199- - Новичок
, и не было бы вопроса.Подумал, что здесь не помешает пара ссылок.
http://codeforces.me/blog/entry/102
http://codeforces.me/blog/entry/1510
http://codeforces.me/blog/entry/16986
P.S. Интересно, почему их раньше здесь никто не оставил.
Проблема есть. Мы внимательно читаем все советы и мнения. Скоро что-нибудь придумаем! Спасибо за то, что обратили внимание на это.
А когда изменится граница цветов?
вот этот человек CMaster попал в Div1, решив на контесте Codeforces Round 305 (Div. 2) только Div2A.
Только Div2A, Карл!
Ничего, что он сделал 10 взломов, что дороже задачи B?
А ничего, что в 2011 году для попадания в Div1 нужно было решать по меньшей мере 3 задачи на Div2-раунде? И эти 3 задачи еще нужно было решать с хорошим временем.
Раз на раз не приходтся, че шум разводить-то :)
Думаешь что рейтинг зависит только от количество задач?
Или же завидуешь что у меня рейтинг выше чем у тебя ?
Вот dreamoon_love_AA вчера победил в раунде, не решив даже задачу А... Такие сейчас времена, привыкай.
"даже" :D
Я не решил А и попал в Div 1.
Я где-то видел парня, который из фиолетового стал жёлтым, ничего не решив в Codeforces Round 305 (Div. 1). Ничего, Карл! Если найду, будет Upd со ссылкой. Upd. Извиняюсь, это баг CFа. Но всё равно выглядит довольно забавно, особенно если зайти в ссылку "соревнования". sheisactually14
Ничего не понимаю. У него же ни взломов, ни задач решенных нет. Может это и есть причина возникновения инфляции?
Я не понимаю, почему нельзя сделать распределение мест на контесте вначале по задачам, а потом по баллам. Это бы стимулировало больше к решению задач, а не к поиску ошибок у других.
Видел одного кто ничего не сдал но стал меж. мастером (у него было 17 взломов). Взломы решают!
Кажется ты его преследуешь : http://codeforces.me/blog/entry/16592?#comment-214679
предлагаю сделать такие изменеия:
1) сумма рейтингов всех участников после контеста стает меньше (на число пропорциональное количеству участников), чем была до контеста
2) стартовый рейтинг давать меньше (например 1300), если человек может попасть в див. 1, то ему не большая разница написать 1 контест или 2-3
А вот концептуально иное предложение: почему бы не сделать красными просто топ-256? Оранжевые -- топ-2048, и так далее.
Думаю, это не очень хорошо, ведь со временем количетсво настоящих гроссмейтеров, как и должно быть, растет: остаются старые, но и приходят новые. Только если попробовать это количество связать с общим количеством пользователей codeforces или с количеством участников первого дивизиона. Например, 1% от всех участников — гроссмейстеры (сейчас 1.26% гроссмейстеров).
О, тот, кто сможет написать бота для авторег, сможет стать красным:)
И всех сделать красными! СЧАСТЬЕ ДЛЯ ВСЕХ, ДАРОМ, И ПУСТЬ НИКТО НЕ УЙДЕТ ОБИЖЕННЫЙ!
Но старые уходят на пенсию, у них появляется работа, жёны, дети, они отходят от дел. Не все, конечно, но большинство. Если реализовать при этом выпиливание из рейтинга тех, кто давно не участвовал, как на ТС, то будет как раз самое то, я думаю.
Но ведь количество пользователей Codeforces повышается, значит и количество красных должно повышаться.
Смотрите рассуждения чуть выше на эту тему. Кратко: если рассматривать красный цвет, как некую планку, то, независимо от общего числа пользователей, количество красных не должно особо расти.
Если проблема еще актуальна, можно сделать подвижными планки между рангами или обновлять их достаточно часто. Так, чтобы поддерживать процентное соотношение рангов.
из реитинга убрали всех кто давно не писал контест.
Может изначально давать не 1500 рейтинга, а 0. Ведь слабые участники просто отдают рейтинг более сильным, а потом создают новые аккаунты. Возможно проблема как раз в этом.
Например, человек упал на 500 и создал новый аккаунт. Эти 500 рейтинга не исчезают и делают инфляцию
Вряд ли получится просто так взять и сделать подобные изменения; если представить, что получилось бы — конечно, сейчас это должно на некоторое время резко все перевернуть, потому что будет почти нереально в первых контестах уйти в минус, и каждый новый аккаунт будет вытягивать из системы кучу рейтинга, должна получиться даже дефляция.
В долгосрочной перспективе — через какое-то время все стабилизируется, 0 станет тем, чем сейчас является 1500; будут люди, которые уходят в минус, забрасывают аккаунты — и опять начнется инфляция. Если главная причина именно в этом, конечно.
Вопрос в том, сколько времени нужно на стабилизацию после таких сильных изменений — вероятно, весьма много.
А еще на волне дефляции появилась бы куча пользователей, которые создают фэйки, чтобы писать контесты — потому что из-за дефляции им трудно написать на основном акке в плюс, писать контесты им хочется, но их рейтинг почему-то волнует их больше :D
Когда-то мы дождемся того, что MikeMirzayanov опубликует формулы — тогда и узнаем, в чем настоящая причина инфляции :)
вряд ли дело в формулах.
А почему их не публикуют?
Но если знать формулы — можно что-то считать, моделировать, видеть конкретные результаты — какое изменение как и на что повлияет, как все будет работать в будущем, какие должны быть тенденции и т.д.
А без всего этого получается только угадывать — предположим, что формулы не противоречат здравому смыслу и более-менее похожи на ..., тогда логично предположить вот это и вот это, а вот это должно работать примерно вот так.
в наплыве юзеров с низким рейтингом. А наплыв получается из-за того, что многие крупные международные компании сейчас вообще не смотрят на разделы резюме, посвященные опыту работы, зато отдельной строкой просят дать ссылку на аккаунты на кодфорсес и топкодере. ...Карл!
Не знаю писал ли кто-то эту идею, но мне кажется, что надо считать участников не по отправке хотя бы одной задачи, а по регистрации(ну или другой, более хороший способ). На каждом контесте(див1) минимум треть участников ничего не отправляет и не теряет рейтинг. То есть получается так: "Я не знаю как решать задачи, ничего не отправлю и не потеряю рейтинг, а если знаю как решать, то отправлю и поднимусь в рейтинге"