[!] ОБНОВЛЕНИЕ: NaughtyListed

Правка ru5, от nileq, 2026-05-27 14:12:48

Привет, Codeforces!


Помните этот пост?

Если нет, кратко напомню. Последние 3–4 дня я делаю расширение для Codeforces, которое показывает ваше чистое место в standings без подозрительных участников.


Как это работает?

Идея довольно простая:

  1. Расширение берёт standings соревнования на Codeforces.
  2. Проходит по каждому handle.
  3. Делает предсказание с помощью ML-модели, используя историю выступлений пользователя в предыдущих соревнованиях.

Среди признаков: наличие skipped contests, резкие rating deltas вроде +100 или +200 после более стабильных изменений типа +10/+20, поведение рейтинга после первых 5 соревнований, когда он становится более устойчивым, и другие признаки.

Полный список признаков можно посмотреть в cheating_dataset.csv, который я использовал для обучения классификатора.

Интересно, что расширение можно использовать не только во время соревнования, но и после него — чтобы находить подозрительные профили в standings. По текущим тестам модель показывает достаточно неплохую точность.


Примеры использования

Покажу несколько примеров:

Возьмём пользователя с высоким score. Чем выше score, тем увереннее модель. Например: studyyyzz.

Посмотрим его профиль:

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

Как видно, расширение уже работает достаточно неплохо.


FAQ

  • Как установить расширение?
    Инструкция по установке есть в этом посте.

  • Модель всегда права?
    Нет. Это ML-модель, а ML-модели не могут предсказывать со 100% точностью. Пожалуйста, не обвиняйте людей только потому, что модель пометила их как подозрительных.

  • Можно ли улучшить расширение?
    Да, конечно. Проект open-source. Вы можете посмотреть реализацию и предложить улучшения здесь: тык

Теги cheaters

История

 
 
 
 
Правки
 
 
  Rev. Язык Кто Когда Δ Комментарий
ru5 Русский nileq 2026-05-27 14:12:48 0 (опубликовано)
en2 Английский nileq 2026-05-27 14:12:35 0 (published)
ru4 Русский nileq 2026-05-27 14:11:57 1060
en1 Английский nileq 2026-05-27 14:09:56 2237 Initial revision for English translation (saved to drafts)
ru3 Русский nileq 2026-05-27 14:05:43 548 Мелкая правка: 'чшить его.' -> 'чшить его. [*тык*](https://github.com/nileqq/NaughtyListed)'
ru2 Русский nileq 2026-05-26 21:51:25 128
ru1 Русский nileq 2026-05-26 21:42:13 1724 Первая редакция (сохранено в черновиках)