Прогнозирование победителей футбольного матча основывалось только на предыдущих данных того же матча

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

У меня есть данные в течение нескольких сезонов для всех команд, однако у меня есть следующие проблемы, которые я бы хотел получить с помощью... EPL (английская премьер-лига) имеет 20teams, которые играют друг с другом дома и в отъезде (380 игр в время года). Таким образом, каждый сезон любые две команды играют друг с другом только дважды.

У меня есть данные за последние 10+ лет, в результате получилось 2 * 10 = 20 баз данных для двух команд. Однако я не хочу проходить через 3 года, так как я считаю, что со временем команды значительно меняются (ManCity, Liverpool), и это приведет к большей ошибке в системе.

Таким образом, это приводит к примерно 6-8 точкам данных для каждой пары команд. Тем не менее, у меня есть несколько функций (до 20+) для каждой точки данных, например, цели в полный рабочий день, полминуты, проходы, кадры, желтые, красные и т.д. Для обеих команд, поэтому я могу включить такие функции, как недавняя форма, недавний дом форма, недавняя форма и т.д.

Однако идея просто иметь только 6-8 данных для тренировки кажется мне неправильной. Любые мысли о том, как я мог бы противостоять этой проблеме? (Если это проблема в первую очередь, то есть.)

Спасибо!

EDIT: FWIW, вот ссылка на мой отчет, который я составил при завершении моего проекта. https://www.dropbox.com/s/ec4a66ytfkbsncz/report.pdf. Это не "здорово", но я думаю, что некоторые из наблюдений, которые мне удалось выявить, были довольно крутыми (например, как мое предсказание очень хорошо работало для бундеслиги, потому что "Бавария" всегда выигрывала лигу).

Ответ 1

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

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

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

Ответ 2

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

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

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

Ответ 3

У меня есть аналогичная система - хорошей базой для исходных данных является football-data.co.uk. Я использовал последние N сезонов для каждой лиги и построил модель (поверьте, более 3 лет - обязательно!). Зависит от вашей критериальной функции - если критерий лучше всего подходит или максимальная прибыль, вы можете создать свою собственную модель прогнозирования.

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

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

Надеюсь, я дал вам некоторые идеи, чтобы больше не стесняться спрашивать.