🥊 AI Boxing Predictor

Интеллектуальная система прогнозирования исходов боксёрских поединков на основе машинного обучения

🧠 TensorFlow.js • 📊 Excel • 🔐 LocalStorage

📋 Общее описание

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

Ключевая особенность: модель способна дообучаться на новых результатах, повышая точность прогнозов со временем.

⚙️ Этап 1: Обработка данных

1

Загрузка из Excel

Данные импортируются из .xlsx-файла в формате: Значение 1 | Значение 2 | Влияние | Параметр. Поддерживаются числовые значения, проценты и десятичные дроби.

2

Нормализация значений

Все параметры приводятся к единому масштабу для корректного сравнения:

normalized = (value₁ − value₂) / max(|value₁|, |value₂|, 1)
3

Учёт влияния фактора

Направление влияния определяется меткой в столбце Influence:

↑ u — больше = лучше ↓ d — меньше = лучше

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

🧠 Этап 2: Архитектура нейросети

Используется полносвязная последовательная модель (Sequential) с функцией активации сигмоида на выходе для бинарной классификации.

Вход
N признаков
Выход 1
Sigmoid
MSE
Функция потерь
Adam
Оптимизатор (lr=0.01)
0.3–0.7
Зона ничьей
25
Эпох дообучения

🎯 Этап 3: Прогноз и калибровка

1

Расчёт вероятности

Модель возвращает значение от 0 до 1 — вероятность победы Боксёра 1. Вероятность Боксёра 2 вычисляется как дополнение до 100%:

P(Боксёр 2) = 100% − P(Боксёр 1)
2

Интерпретация результата

  • > 55% — уверенная победа Боксёра 1
  • 45–55% — высокая вероятность ничьей / равный бой
  • < 45% — уверенная победа Боксёра 2
3

Дообучение по результату

После реального боя пользователь указывает исход (Победа 1 / Ничья / Победа 2). Модель получает один шаг дообучения на новых данных:

target = { 1.0 — победа Б1, 0.5 — ничья, 0.0 — победа Б2 }

Веса обновляются методом обратного распространения ошибки, результат сохраняется в памяти браузера.

🔄 Резервный режим (Basic Mode)

Если библиотека TensorFlow.js не загрузилась (нет интернета, блокировка CDN), система автоматически переключается в базовый режим:

score = Σ(знак(нормализованный_фактор))
probability = 0.5 + score / (2 × N_факторов)

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

🔐 Хранение данных и приватность

Все вычисления выполняются на стороне клиента в браузере пользователя. Данные не передаются на внешние серверы.

📦 Что сохраняется локально:
  • Веса обученной нейросети (localstorage://boxing-model-v8)
  • История калибровок с исходами боёв (boxing_history_v8)
  • Настройки и предпочтения интерфейса

⚠️ Данные привязаны к браузеру и устройству. При очистке кэша или смене устройства история обучения будет утеряна. Рекомендуется периодически экспортировать важные результаты.

Технические характеристики

Browser
Платформа
TF.js 4.10
ML-фреймворк
XLSX.js
Парсер Excel
~2 МБ
Размер модели
<100 мс
Время прогноза
Offline
Работа без сети*

* После первой загрузки и обучения модель работает полностью офлайн.