Почему Lichess и Chess.com показывают разную точность в шахматах: полный разбор

Шахматисты часто замечают, что одна и та же партия получает разные оценки точности на разных платформах. Например, партия Магнуса Карлсена на Chess.com набрала 88.7%, а на Lichess — всего 71%. Кто прав? Спойлер: единого правильного ответа нет. Разберём по шагам, как Lichess считает точность: от сант

Почему Lichess и Chess.com показывают разную точность в шахматах: полный разбор

Шахматисты часто замечают, что одна и та же партия получает разные оценки точности на разных платформах. Например, партия Магнуса Карлсена на Chess.com набрала 88.7%, а на Lichess — всего 71%. Кто прав? Спойлер: единого правильного ответа нет. Разберём по шагам, как Lichess считает точность: от сантипешек и логистической функции до гармонического среднего и контекстно-взвешенной агрегации. Понимание этих механизмов поможет вам объективнее оценивать свои игры и не впадать в заблуждение из-за расхождений в цифрах.

Как Lichess оценивает точность ходов

Lichess использует метрику сантипешек (centipawns) для оценки каждого хода. Сантипешка — это сотая часть пешки. Движок Stockfish анализирует позицию до и после хода и вычисляет потерю в сантипешках. Например, если после хода оценка позиции упала на 50 сантипешек, то ход считается неточным. Чем меньше потеря, тем точнее ход.

Однако сырая потеря в сантипешках неудобна для восприятия. Поэтому Lichess преобразует её в проценты с помощью логистической функции. Формула: точность = 100 / (1 + e^(k loss)), где loss — потеря в сантипешках, а k — коэффициент крутизны. Чем больше потеря, тем ниже точность. При нулевой потере точность близка к 100%, при большой — стремится к нулю.

Почему Lichess использует логистическую функцию, а не просто проценты?

Логистическая функция сглаживает экстремальные значения: небольшие потери (до 50 сантипешек) снижают точность незначительно, а крупные ошибки (более 200 сантипешек) резко обнуляют её. Это делает метрику более чувствительной к критическим ошибкам. Если бы использовалось линейное преобразование, то ход с потерей 300 сантипешек получил бы, скажем, 40%, что не отражало бы катастрофичность ошибки. Логистическая функция делает оценку более реалистичной.

Агрегация точности всей партии

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

Формула: общая точность = (сумма весов) / (сумма весов / точностьхода). Вес хода определяется как модуль изменения оценки позиции после этого хода. Если ход изменил оценку на 100 сантипешек, его вес больше, чем хода, который изменил оценку на 10. Таким образом, решающие ходы влияют на итоговую точность сильнее, чем незначительные. Например, если вы сделали грубую ошибку в эндшпиле, потеряв 300 сантипешек, этот ход получит высокий вес и сильно снизит общую точность. Напротив, точные ходы в равной позиции с малым изменением оценки почти не повлияют на итог.

Почему Chess.com и Lichess дают разные результаты

Chess.com использует другой подход. Они тоже анализируют потерю сантипешек, но могут применять иную логистическую функцию или другой коэффициент. Кроме того, Chess.com использует взвешенное среднее, но веса могут рассчитываться по-другому. Например, Chess.com может давать больший вес ходам, которые были единственно правильными, или учитывать время на ход. В результате для одной и той же партии точность может отличаться на 10–20%.

В партии Карлсена разница составила 17.7%. Это объясняется тем, что в некоторых позициях Lichess считает ходы менее точными из-за более строгой логистической функции. Кроме того, Lichess может сильнее наказывать за ошибки в эндшпиле, где потеря сантипешек критична. Chess.com же может быть более снисходителен к мелким неточностям. Также разница может возникать из-за разных версий Stockfish: Lichess использует более новую версию, которая точнее оценивает позиции, что может приводить к более жёстким оценкам.

Технические детали: Python-скрипт для воспроизведения

Lichess использует открытый код, поэтому можно воспроизвести расчёт точности. Для этого нужно получить PGN партии, запустить Stockfish для оценки позиций, вычислить потери в сантипешках, применить логистическую функцию и агрегировать через гармоническое среднее с весами. Примерный скрипт на Python:

1. Загрузить партию в формате PGN. 2. Для каждого хода получить оценку позиции до и после хода с помощью Stockfish. 3. Вычислить loss = abs(оценкадо - оценкапосле) в сантипешках. 4. Преобразовать loss в точность хода: acc = 100 / (1 + exp(0.003 loss)). 5. Вычислить вес хода: weight = loss + 0.1 (чтобы избежать нулевого веса). 6. Итоговая точность = sum(weight) / sum(weight / acc).

Этот скрипт даст результат, близкий к тому, что показывает Lichess. Отклонения возможны из-за версии Stockfish или параметров. Если вы разработчик, можете адаптировать этот алгоритм для своего анализатора.

Кого затронет и как

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

В России и СНГ популярны обе платформы, поэтому знание нюансов поможет избежать недопонимания при обсуждении партий. Разработчики могут использовать открытые алгоритмы Lichess для создания собственных инструментов анализа. Также это знание полезно для стримеров и блогеров, которые комментируют партии: они смогут объяснить зрителям, почему цифры различаются.

Что будет дальше

Вероятно, обе платформы продолжат совершенствовать свои метрики. Lichess может изменить коэффициент логистической функции или способ взвешивания. Chess.com может внедрить более прозрачную документацию. Возможно, появится единый стандарт, но пока каждому сервису стоит указывать, как именно считается точность. Для пользователей важно помнить: сравнивать точность разных партий имеет смысл только в рамках одной платформы. Если вы хотите объективно оценить свой прогресс, используйте одну и ту же платформу для всех партий.

Итог

Точность шахматной партии — это не объективная характеристика, а результат сложной математической обработки. Разные платформы используют разные формулы, поэтому цифры отличаются. Чтобы понимать, насколько хорошо вы сыграли, лучше анализировать не только проценты, но и конкретные ошибки. А если хотите разобраться в деталях, изучите код Lichess — он открыт. Помните: даже 70% точности может означать отличную игру, если ошибки были в сложных позициях, а 95% — результат простой партии без острых моментов.