Прогнозирование исходов спортивных игр методами нейросетевой кластеризации

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

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

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

Решая задачу прогнозирования результата матча, нужно знать, что ее ответом никогда не должно быть предсказание единственного исхода, так как даже в футбольном матче испанской «Барселоны» со сборной командой подмосковного колхоза «Тихие зори» на «Ноу Камп» все игроки первой команды могут внезапно заболеть корью, а у всех игроков гостей откроется третье или четвертое дыхание. Вопрос лишь в частоте реализации того или иного события. Таким образом, в результате решения задачи должны быть получены вероятности каждого из возможных исходов игры, и их сумма должна быть строго равна единице.

Среди методов нейросетевой кластеризации чаще всего используют три следующих:

  • нейронные сети Кохонена;
  • нейронные сети адаптивного резонанса АРТ-2;
  • нейронные сети на основе радиально-симметричных (радиально-базисных) функций.

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

Решение же конкретной задачи прогнозирования исхода матча можно представить в виде последовательности следующих этапов:

  1. сбор исходных данных об имевших место спортивных событиях того же вида спорта и ранга;
  2. выбор архитектуры нейронной сети для решения задачи;
  3. выбор или разработка программного продукта для решения задачи;
  4. формирование обучающей выборки и ее структуризация под требования используемого программного обеспечения;
  5. настройка алгоритма обучения;
  6. обучение и кластерный анализ;
  7. практическое использование обученной нейронной сети для прогнозирования вероятностей возможных исходов.

Рассмотрим подробнее каждый из этапов.

Сбор исходных данных

Наличие большого массива исходных данных для обучения — один из главных факторов, определяющих возможность успешного решения поставленной задачи. Но поскольку речь идет о статистике и вероятностях, важен не только объем, но и происхождение данных. Так, для прогнозирования исходов матчей футбольных сборных на чемпионате мира вряд ли подойдет статистика, набранная по чемпионату второй китайской лиги. Соответственно, если прогнозист планирует предсказывать исходы матчей в различных видах спорта, в различных по уровню соревнованиях, он должен это учитывать уже на этапе подбора обучающих данных и, при необходимости, формировать несколько различных обучающих выборок.

Еще один важный фактор — качественный состав данных в обучающих векторах. Чем больше различных факторов будет учтено, тем глубже можно выполнить кластеризацию вплоть до получения очень неожиданных, но реально работающих прогнозов. Вот краткий перечень групп факторов, которые можно учитывать:

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

В каких именно количественных характеристиках описывать приведенные группы факторов, личное дело каждого прогнозиста. Здесь как раз та ситуация, когда «на вкус и цвет товарища нет».

Отдельного обсуждения требуют факторы, которые трудно оценить количественно: травма или дисквалификация ведущего игрока, смена тренера, турнирная ситуация. Теоретически учитывать их, хоть и сложно, но можно. Однако на практике самым сложным окажется собрать и представить их в обучающей выборке. Именно по этой причине есть смысл учитывать их уже после полученного решения на заключительной стадии, корректируя вероятности исходов на основе собственного опыта прогнозиста.

Выбор архитектуры нейронной сети. Выбор или разработка программного продукта

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

Альтернативный путь — разработка собственного программного средства, где можно учесть все нюансы решаемой задачи, подстроить ее под себя. Однако очевидно, что этот путь требует гораздо больше усилий и времени. Но также очевидно и то, что полученный результат будет получаться точнее. Естественно, чтобы пойти по этому пути, нужно не только обладать достаточной квалификацией в области искусственного интеллекта, но и хорошо программировать самому.

Формирование и структуризация обучающей выборки

Тут тоже все понятно. Обучающие данные нужно представить таким образом, чтобы их смогла интерпретировать рабочая программа.

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

Настройка алгоритма обучения

Этот и следующий этапы, как правило, повторяются многократно, но в строгой последовательности до тех пор, пока прогнозист не будет удовлетворен полученным результатом или не потеряет терпение.

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

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

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

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

Обучение и кластерный анализ

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

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

— размер кластера (количество сформировавших его примеров);
— средних значений обучающих и описывающих переменных;
— дисперсии этих переменных.

Если представить исход любого матча из обучающей выборки в виде бинарного вектора, состоящего, например, из трех переменных: «выигрыш 1-й команды», «выигрыш 2-й команды», «ничья», то возможны лишь три комбинации результата: (1, 0, 0), (0, 1, 0), (0, 0, 1). Усреднив же соответствующие переменные примеров, сформировавших кластер, можно в первом приближении получить вектор вероятностей исходов любого нового матча, отнесенного к этому кластеру. Уточнить вероятности исходов можно, введя для каждого примера весовой коэффициент, зависящий от расстояния до центра кластера: чем ближе к центру, тем более весом вклад примера.

Практическое использование нейронной сети для прогнозирования вероятностей исходов матчей

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

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

Комментарии  

-37 # Семен 22.08.2014 22:33
для чего при прогнозировании весь этот анализ нужен? сначала обучение, в дальнейшем такой длительные и сложный процесс и конечном итоге неизвестный результат,я поступил намного эффективнее,реш ил брать готовые прогнозы у [ссылка скрыта] ,и правильно сделал что начал с ними работать,и сейчас могу сказать что все сложности с анализам ни к чему не приведут,его нужно доверить специалистам.
Ответить | Ответить с цитатой | Цитировать

Добавить комментарий


Защитный код
Обновить