3 мин.

Как я пообещал всех победить с помощью бота и провалился

Некоторое время назад я анонсировал создание бота который бы делал достаточно успешные предсказания по Fantasy NBA и даже сделал достаточно смелые заявления что смогу победить всех (ведь бот предсказывает так хорошо). Прошло 10 недель и пора подвести предварительные итоги, а так же ответить на вопросы которые были заданы в прошлый раз в комментариях

  

Начнем со статистики - на текущий момент мой профиль занимает 1067ое место из 4443ех. Не густо, мягко говоря, и конечно же в начале сезона я очень рассчитывал на место выше. Разочарован ли я? Несомненно, все лето пока считались мои модели я чувствовал уверенность что смогу добиться большего.

 

Почему же все пошло так плохо?

Оказалось, что неспособность предсказывать идеальное расположение команды - оказалось КРИТИЧЕСКИМ для игры в фентези. В виду технических ограничения - на текущий момент я могу только предсказать набор фентези очков в каком то будущем матче и не способность предсказать качественные замены - привела к провалу. Как и ожидалось это оказалось слабым местом в текущей реализации и я планирую этот недостаток в скором времени исправить.

 

Многие заметили, что замены я делаю в начале недели и это не оптимальный вариант - да, конечно же. Но целью этого сезона я (уже) поставил возможность научиться как делать все верно и при этом не прикладывать НИКАКОГО ручного усилия - то есть все эти тетрадки, таблички, планы замены остались в прошлом. Еще раз, я не прикладываю никакого собственного размышления кроме того, что кликаю замены и проверяю что подсказанные мне замены не травмированы. То есть если бот советует на этой неделе взять ДеАндре Джордана - никогда бы его не взял если бы решал сам - то я его и беру.

 

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

Из интересного, боту удалось даже находить довольно интересных персонажей для замен - о существования этих игроков я не особо и подозревал, а уж тем более не надеялся что они будут набирать прилично. Так, например, было с Харрисом из Клипперс. Он был куплен 17 октября, при том, что я вообще не ожидал от него ничего такого.

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

 

Технические подробности

Все что я использую написано на языке Python c применением фреймворка Keras и Scikit-learn. Все вычисления я произвожу используя свой домашний компьютер с видеокартой (помогает ускорить машинное обучение) 

В качестве данных я достаю большую часть данных с сайта https://www.basketball-reference.com/ 

Для создания модели я использую разные временные промежутки. Изначально я надеялся что чем больше данных я захвачу - тем точнее будет модель. К сожалению оказалось что данные по NBA из 60х годов практически никак не помогаю предсказывать ФО в 2018ом, поэтому приходится ограничиваться куда более короткими промежутками (начиная с конца 90х)

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

Сама модель представляет из себя классичекую полносвязную нейронную сеть, состоящую из 7 слоев с количество нейронов от 2500 до 100.

Стандартное напоминание

Следить за неуспехами (успехами) бота можно здесь - https://www.sports.ru/fantasy/basketball/team/447290.html

Писать гневные или радостные комментарии можно мне в личку - https://www.sports.ru/profile/124504888/. Изначально думал создать специальный профиль для бота, но решил что времени заниматься двумя командами у меня нет.

Создавать телеграм канал я поленился - ибо не очень понятно о каких успехах сообщать если их нет.