March Machine Learning Mania.pptx
- Количество слайдов: 18
March Machine Learning Mania 2016 Ссылка на Kaggle Смердов Антон
Timeline
Специфика • Соревнование проходит уже три года подряд • Значительное влияние случайности • Можно использовать любые внешние данные • Мало информации о турнирных матчах (~2000 строк) • Преобладание feature enginering’a
Данные • Исторические данные с 1985 года: кто, когда и где с кем сыграл. • Подробные данные с 2003 года: добавляется статистика матчей: броски, подборы, …
Elo rating system Wiki • Каждой команде присваивается начальный рейтинг, например, 1500. • Для каждой команды считается матожидание выигранных очков(1 – победа, 0 – поражение): • Обновляется рейтинг: K – K-factor, чем меньше K, тем более консервативна система. • Можно ввести поправки на игру дома, на разность в счёте.
Другие рейтинговые системы • Glicko – улучшенная версия Elo. • Chessmetrics – попроще, но более чувствительна к «восходящим звёздам» . • True. Skill – рейтинговая система от Microsoft.
История встреч • Пусть дана история матчей между двумя командами. Введём для каждой из команд «вес» , определяемый давностью её побед: Тогда можно сделать предсказание:
Как формировать датасет Train: w_team l_team w_team stats l_team stats target
Как формировать датасет Train: w_team l_team w_team features l_team features 1 l_team w_team l_team features w_team features 0 team_1 team_2 team_1 features team_2 features p 1 team_2 team_1 team_2 features team_1 features p 2 Test: p 1+p 2 не всегда равно 1. Например, для xgboost’а. Тогда можно пересчитать по формулам:
Идея регрессии • Пусть 1 -я команда победила 2 -ю с разницей Δ, тогда целевые переменные будут равны +Δ и -Δ соответственно. Либо можно использовать 1+0, 03*Δ и 0 -0, 03*Δ. • Не теряется информация о том, насколько одна команда оказалась сильнее другой.
Признаки Статистика бросков, подборов и т. п. за последний год (скользящее среднее) Победы, поражения и winrate за последний год History results Средняя разность очков после матча за последний год Сколько дней назад была предыдущая игра Сколько сезонов команда участвует в турнире, домашний ли матч и т. д. Teams achievements Например, просуммируем число игр в турнирах за последние N лет Stats
Дополнительные данные Kenpom data Massey ordinals Доп. данные для всех команд с 2002 года Рейтинги команд у разных систем(132 уникальных) с 2003 года Team coaches Информация о тренерах для каждой команды Tourney seeds Данные о посевных номерах команд Geography data Где проходили матчи
Level 0 Level 1 Level 2 Level 3 Final Kenpom data Massey ordinals Stats Team coaches Short Dataset 2003+ Tourney seeds Geography data Long Dataset 1985+ XGB Regression Teams Achievements Coaches Achievements Elo Glicko History x 4 XGB Level 2 Logistic Regression Long Tourney Dataset 1985+ + + Elo predict Glicko Short Tourney Dataset 2003+ Geography data Tourney seeds XGB Level 1 Glicko predict History predict +? Net Prophet’s Entry blending Prediction
Post-deadline analisys
Идеи на будущее 1. Добавить новую информацию (данные о ставках, игроках…) 2. Использовать алгоритмы: Neural. Nets, KNN… 3. Можно оптимизировать не logloss, а матожидание выигрыша в деньгах или место на leaderboard • Проанализировать предсказания других участников 4. Придумать метод симуляции турнира • Поможет получить больше данных • Будет полезен для анализа предсказаний других участников