Подход, который лучше, чем случайное угадывание или выбор игроков из 18000 профессиональных игроков.
По мере того, как мы продвигаемся в мир, где спорт стал жизненно важной частью нашей жизни, он также стал горячим рынком для инвесторов, чтобы получить большую прибыль, взаимодействовать с аудиторией и сделать свое присутствие ощутимым. Кроме того, мы видим, что наблюдался всплеск спортивной аудитории, что привело к увеличению количества турниров, и получение на них прибыли стало сложной задачей для инвестора. Мы взяли на себя задачу помочь крупным инвесторам выбрать лучших игроков из 18000 футболистов, чтобы создать футбольную команду мечты, которая сможет участвовать и превосходить другие клубы в высших лигах. Мы использовали алгоритмы машинного обучения для классификации потенциальных членов команды в нашем клубе и потенциального бюджета для инвестора, чтобы оптимизировать их рыночные успехи. В результате мы разработали стратегию построения лучшей команды с учетом бюджета инвестора, который ограничен 1 миллиардом евро.
ВВЕДЕНИЕ
У нас есть набор данных FIFA, в котором есть несколько названий столбцов - рейтинг, пункт о выпуске и заработная плата. Мы предполагаем, что у нас нет этих переменных в будущих наборах данных вне времени. Их можно использовать в различных формациях, например, оценивая игрока как игрока с лучшими показателями, или модерируя или не достигая отмеченного игрока. Кроме того, это также может быть преобразовано в игрока, которому следует отправить приглашение на некоторые клубные собрания, мероприятия и т. Д. Мы построили 2 модели с использованием контролируемого обучения для рейтинговых переменных и сделали это проблемой классификации, разделив эту переменную на 2 класса: большие больше или равно 70 и меньше 70 в качестве нашего потенциального члена клуба или нет. Мы выбрали 70 в качестве нашего порогового значения, поскольку в большинстве крупных клубов есть только игроки с рейтингом выше 70. Чтобы соревноваться с ними, мы склонны использовать только тех игроков, у которых рейтинг выше нашего порогового значения. Кроме того, мы работали с результатами нашей модели, чтобы спрогнозировать затраты инвесторов на предложение членства в клубе ежегодно. Наша вторая модель использует прогнозируемый класс рейтинга, полученный из наших предыдущих лучших классификаторов, вместо «фактического рейтинга» и здесь, а также комбинацию release_clause и годовой заработной платы в качестве затрат для инвесторов в качестве нашей зависимой переменной.
НАБОР ДАННЫХ
Мы используем данные FIFA 2019 и 2020 из полного набора данных игроков Kaggle FIFA. Полный набор данных игроков FIFA содержит более 18 тысяч уникальных игроков и более 100 атрибутов, извлеченных из последней редакции FIFA. Это содержит:
- Файлы представлены в формате CSV.
- FIFA 2020–18 278 уникальных игроков и 104 атрибута для каждого игрока. (Тестовый набор данных)
- FIFA 2019–17 770 уникальных игроков и 104 атрибута для каждого игрока. (Набор данных поезда)
- Позиции игроков, с ролью в клубе и в сборной.
- Атрибуты игрока со статистикой, такие как Атака, Навыки, Защита, Ментальность, Навыки ВГ и т. Д.
- Персональные данные игрока, такие как национальность, клуб, дата рождения, заработная плата, оклад и т. Д.
ОЧИСТКА ДАННЫХ
- В некоторых местах оба набора данных имеют разные типы данных для одних и тех же объектов. После прочтения словаря данных мы синхронизировали их.
- Некоторые переменные имеют встроенные формулы, поэтому мы исправили их форматирование.
- Мы удалили 'sofifa_id', 'player_url', 'short_name', 'long_name', 'real_face', 'dob', 'gk_diving', 'gk_handling', 'gk_kicking', 'gk_reflexes', 'gk_speed', ' gk_position 'и' body_type ' на основе словарных определений или повторяющихся столбцов, поскольку они не добавляют полезного воздействия на наш анализ.
- Мы преобразовали общие рейтинги в 2 бинарных класса с рейтингом ›70 (так как многие крупные клубы используют этот порог) для набора игроков своей команды и будут рассматриваться как наша зависимая переменная.
ИССЛЕДОВАТЕЛЬСКИЙ АНАЛИЗ ДАННЫХ
Сначала мы рассмотрели различные интересные статистические данные для выполнения нашего исследовательского анализа данных.
- Одномерная статистика, такая как процент пропущенных значений во всех данных для обработки пропущенных значений, одномерная статистика непрерывных переменных (количество, среднее, стандартное, минимальное, максимальное, асимметрия, эксцесс, уникальный, пропущенный, IQR) и их распределения.
- Двумерная статистика: корреляция между характеристиками и T-тест для непрерывных переменных, тест хи-квадрат и V Крамера для категориальных переменных.
Одномерный
Мы провели одномерный анализ непрерывных переменных, чтобы получить представление о распределении различных полей в нашем наборе данных. Согласно нашим наблюдениям (среднее, стандартное отклонение, асимметрия, эксцесс и т. Д.), Мы наблюдали многие ключевые особенности, которые соответствуют нормальному распределению. Более того, межквартильный размах (IQR) использовался для обнаружения выбросов с помощью метода Тьюки.
Для категориальных переменных одномерный анализ состоит из их количества, уникальных значений, категорий с максимальным количеством (т. Е. Верхних), их частоты и количества пропущенных значений. Из категориальной таблицы мы видим, что player_tags, lened_from, nation_position, player_traits имеют более 54% пропущенных значений. Было бы нелегко приписать им какие-либо многообещающие ценности .
Двумерный
Для непрерывных переменных
Мы построили корреляционную матрицу, чтобы получить представление о степени линейной связи между рейтингом и другими независимыми переменными, а также о том, какие переменные можно исключить на более поздних этапах. Мы использовали пакет seaborn в Python для создания указанной выше тепловой карты.
Т-тест
Мы также выполнили t-тест, чтобы проверить, значительно ли отличается среднее значение переменных при рейтинге = 1 от среднего значения переменных при рейтинге = 0. После этого этапа мы удалили некоторые переменные, которые либо не являются значимыми, либо не имеют корреляции. вовсе не с зависимыми переменными.
Для категориальных переменных
Мы выполнили тест хи-квадрат, чтобы проверить значимость переменных с рейтингом зависимой переменной. Таблица ниже содержит p значений, соответствующих категориальным переменным. мы пришли к выводу, что предпочтительный_фут не имеет значения в нашем анализе.
Чтобы найти корреляцию между категориальными переменными и зависимой переменной, мы применили правило V Крамера.
V равно квадратному корню из хи-квадрат, деленному на размер выборки n, умноженному на m, который является меньшим из (строк - 1) или (столбцов - 1): V = SQRT (X2 / нм).
- Интерпретация: V можно рассматривать как связь между двумя переменными в процентах от их максимально возможных вариаций. V2 - среднеквадратичная каноническая корреляция между переменными. Для таблиц 2 на 2 V = мера ассоциации на основе хи-квадрат.
- Симметричность. V - мера симметрии. Не имеет значения, какая переменная является независимой.
- Уровень данных: V можно использовать с номинальными данными или выше.
- Значения: от 0 до 1.
В этом сценарии мы сохранили столбцы, которые показали приличную корреляцию между независимыми и зависимыми переменными. Это "club_new", "Pos", "attack_rate", "nation".
РАЗРАБОТКА ОСОБЕННОСТЕЙ:
1. Повторная категоризация / вменение переменных
- Поскольку team_jersey_number, nation_jersey_number на самом деле не является непрерывной переменной, мы решили рассматривать их как категориальные переменные.
- Кроме того, мы вменяли team_position с «не играл» для отсутствующих значений и повторно классифицировали игроков на защитник, нападающий, вратарь, отдыхающий, полузащитник, запасной, не сыгранный, уменьшить 29 уникальных значений до 7 уровней.
- Мы предполагаем, что у вратаря будут минимальные значения для «темп», «бросок», «пас», «ведение мяча», «защита», «физика», таким образом приписывая такие значения.
- Более того, две переменные - национальность и клуб имеют очень высокую мощность. Основываясь на их объеме и частоте событий, мы повторно классифицировали их в низшие кардинальные переменные.
2. Создание переменных:
- На основе данных мы заметили, что «player_positions» дает представление о нескольких игровых позициях игроков. поэтому мы решили распределить отдельных игроков с общим счетом их доступности на разных позициях на поле в «игровые_позиции».
- work_rate игрока определяется его скоростью атаки и защиты; таким образом, мы разделили их на переменные.
- Мы также рассчитали срок, в течение которого отдельный игрок будет связан с клубом, чтобы лучше понять его лояльность к клубу.
- Мы также использовали одноразовое кодирование, чтобы использовать категориальные переменные в форме, которая может быть предоставлена алгоритмам машинного обучения для более эффективного прогнозирования.
3. МОДЕЛЬ 1
Здесь Y = рейтинг с частотой демографических событий 31,23% (что соответствует классу 1).
3.1. Логистическая регрессия:
Для модели логистической регрессии мы сначала выполнили классификацию без регуляризации, а затем регрессию гребня и лассо. Регуляризованная логистическая регрессия L1 требует решения задачи выпуклой оптимизации. Однако стандартные алгоритмы решения задач выпуклой оптимизации недостаточно хорошо масштабируются для обработки больших наборов данных, встречающихся во многих практических ситуациях.
Цель логистической регрессии при применении штрафа для минимизации функции потерь:
Наилучший результат, полученный при запуске моделей логистической регрессии до и после регуляризации (L1 и L2), можно резюмировать ниже:
3.2. KNN:
kNN - это метод обучения на основе случая, который сохраняет все данные обучения для классификации. Одним из стандартов оценки различных алгоритмов является их производительность. Поскольку kNN - это простой, но эффективный метод классификации, и он убедителен как один из наиболее эффективных методов, он побуждает нас построить модель для kNN, чтобы повысить ее эффективность, сохраняя при этом точность классификации.
На Рисунке 1 обучающий набор данных, включающий 11 точек данных с двумя классами {квадрат, треугольник}, распределен в 2-мерном пространстве данных. Если мы используем евклидово расстояние в качестве меры сходства, многие точки данных с одинаковой меткой класса будут близки друг к другу в соответствии с мерой расстояния в локальной области.
Например, если мы возьмем область, где k = 3, представленную сплошной линией круга, и проверим большинство голосов среди классов, мы увидим, что наша точка данных {окружность} будет классифицирована как треугольник. Однако, если мы увеличим значение k = 5, представленное пунктирным кружком, наша точка данных будет классифицирована как квадрат. Это мотивирует нас оптимизировать наши алгоритмы k-ближайших соседей, чтобы найти оптимальное k, при котором ошибка классификации минимальна.
Эксперимент:
Первоначально мы обучили нашу модель k- NN с k = 1, разделив наши данные на 70% -30% в качестве данных для обучения и проверки. Из таблицы 2 мы видим, что точность обучения равна 1, что означает, что модель идеально подходит, однако точность и AUC для тестовых данных выше, чем данные проверки, что свидетельствует о переобучении, поэтому мы субъективно настроены для настройки параметров. .
Оптимизация:
Мы использовали метод локтя, чтобы найти наименьшую ошибку в данных обучения. После выполнения наилучшего k мы заметили, что наименьшая частота ошибок наблюдается при k = 7. Хотя наши оптимизированные результаты показали лучшие результаты при обучении и проверке, наш тестовый AUC имеет уменьшенный.
Несмотря на то, что точность теста снижается, мы наблюдаем, что точность отзыва для того же самого увеличилась, что указывает на то, что наша модель лучше классифицирует больший класс (1), поскольку это наш целевой класс. (игроки с рейтингом выше 70).
3.3. ДЕРЕВО РЕШЕНИЙ:
Метод дерева решений - это мощный статистический инструмент для классификации, прогнозирования, интерпретации и обработки данных, который имеет несколько потенциальных применений во многих областях.
Использование моделей дерева решений имеет следующие преимущества:
- Упрощает сложные отношения между входными переменными и целевыми переменными, разделяя исходные входные переменные на значимые подгруппы.
- Непараметрический подход без допущений о распределении, поэтому его легко понять и интерпретировать.
Основным недостатком является то, что он может подвергаться переоснащению или недооценке, особенно при использовании небольшого набора данных.
Эксперимент:
Мы обучили наш классификатор дерева решений из библиотеки Sklearn без передачи каких-либо параметров. Из таблицы мы заметили, что есть переоснащение данных, поэтому мы должны настроить наши параметры, чтобы получить оптимизированные результаты.
Оптимизация:
Мы работали со следующими параметрами:
- критерий: строка, необязательный (по умолчанию = "Джини"):
- max_depth: int или None, необязательно (по умолчанию = None):
Максимальная глубина дерева. Если None, то узлы расширяются до тех пор, пока все листья не станут чистыми или пока все листья не будут содержать менее min_samples_split выборок.
- min_samples_split: int, float, необязательно (по умолчанию = 2):
Максимальная глубина дерева. Если None, то узлы расширяются до тех пор, пока все листья не станут чистыми или пока все листья не будут содержать менее min_samples_split выборок.
- min_weight_fraction_leaf: float, необязательный ():
Минимальная взвешенная часть суммы весов (всех входных выборок), которая должна находиться в листовом узле. Образцы имеют равный вес, если параметр sample_weight не указан
Из приведенных выше экспериментов мы видим, что Джини превосходит энтропию во всех вариантах экспериментальных параметров. Таким образом, наши критерии - Джини. Точно так же мы можем наблюдать другие параметры для max_depth = 10, min_samples_split = 17,5, Min_weight_fraction_leaf = 0, Gini дает более высокую точность. Таким образом, используя эти параметры, мы обучаем нашу модель замечать, что нет переобучения, и мы можем захватить больше истинных классов в категории класса 1.
3.4. ПОДДЕРЖКА ВЕКТОРНЫХ МАШИН:
Фольклорная точка зрения на SVM состоит в том, что они находят «оптимальную» гиперплоскость как решение проблемы обучения. Самая простая формулировка SVM - линейная, где гиперплоскость лежит в пространстве входных данных x.
В этом случае пространство гипотез - это подмножество всех гиперплоскостей вида:
f(x) = w⋅x +b.
Случай жесткой маржи:
Максимальный запас, разделяющий цель гиперплоскости, должен найти:
Случай мягкой маржи:
Переменные Slack также являются частью целевой функции:
Коэффициент стоимости C ›0 - это гиперпараметр, который определяет штраф за неправильную классификацию и настраивается пользователем на основе задачи классификации и характеристик набора данных.
SVM RBF
В общем, ядро RBF - разумный первый выбор. Это ядро нелинейно отображает образцы в многомерное пространство, поэтому оно, в отличие от линейного ядра, может обрабатывать случай, когда связь между метками классов и атрибутами является нелинейной. Кроме того, линейное ядро является частным случаем RBF, поскольку линейное ядро с параметром штрафа Ĉ имеет ту же производительность, что и ядро RBF с некоторыми параметрами (C, γ). Вторая причина - количество гиперпараметров, влияющих на сложность выбора модели.
Эксперименты:
Мы подвергли наши обучающие данные линейному классификатору SVM, не обучая его мягким полям. Однако наблюдаемые результаты выглядят многообещающими,
Причина хорошей оценки заключалась в том, что большую часть времени данные были почти линейно разделяемыми с очень небольшим количеством ошибок классификации.
Оптимизация:
Мы решили запустить поиск по сетке с линейной и радиальной базисной функцией с различными значениями C и γ для эффективного обучения нашей модели. Из поиска по сетке мы получили лучшие оценки как
SVC (C = 1, cache_size = 200, class_weight = None, coef0 = 0.0, Decision_function_shape = 'ovr', степень = 3, gamma = 'auto_deprecated', kernel = 'linear', max_iter = -1, probability = True, random_state = Нет, сжатие = Истина, допустимость = 0,001, подробное сообщение = Ложь)
А для радиальной базисной функции мы получили лучшие оценки как
SVC (C = 100, cache_size = 200, class_weight = None, coef0 = 0.0, Decision_function_shape = 'ovr', Степень = 3, gamma = 0.001, kernel = 'rbf', max_iter = -1, вероятность = True, random_state = None , сжатие = True, tol = 0.001, verbose = False)
Поскольку для аппроксимации ошибки генерации используется ошибка обобщения (ожидаемые потери), мы наблюдали, что Errorval в модели ядра RBF является наименьшим среди других моделей. Кроме того, это наша лучшая модель, поскольку она соответствует данным лучше, чем остальные модели.
Ядро RBF перенесло данные в более высокое бесконечномерное пространство, что помогло нашей модели выделиться. Кривая Precision-Recall показывает нам, насколько хорошо прогнозируется положительный класс с AUC - 0,961.
4. МОДЕЛЬ 2:
Здесь X - это то же самое, включая прогнозируемый рейтинг из Модели 1 и Y = Пункт о выпуске + 52 * Заработная плата в качестве затрат для инвесторов. (52 умножается на указанную недельную заработную плату).
После выбора значимых переменных из одномерного и двухвариантного анализа, как и ранее, мы построили диаграмму разброса независимых переменных с зависимыми переменными.
Хорошо видно, что они следят за отношениями, но это не кажется линейным. Мы подтвердили это, разработав линейную модель.
4.1. Линейная модель:
Результаты:
R квадратный поезд 0,54
Проверка R-квадрата 0,55
Тест R-квадрата 0,54
R-квадрат - это показатель близости к идеальному предсказанию. R-квадрат здесь не подходит.
Проверка линейности по невязкам. Данные должны быть разбросаны случайным образом. Но здесь мы выяснили, что они не случайны. Это означает, что линейная модель никогда не будет подходящим вариантом для этой модели.
4.2. Деревья решений. В данном сценарии это был лучший выбор, чем линейные модели.
Результаты (исходный уровень):
Данные поезда: квадрат R - 0,99 и RMSE - 0,05.
Данные проверки: квадрат R - 0,54 и RMSE - 8,05.
Тестовые данные: квадрат R - 0,59 и RMSE - 7,35.
Было явное указание на переоснащение. Модель не работала так, как ожидалось. Поэтому мы попробовали поиск по сетке на основе min_split, tree_depth и min_weight_fraction_leaf и критериев обучения.
Как показано выше, Entropy работает лучше с min_split = 3 и max_depth = 15.
Результаты после поиска по сетке: (основная модель)
Данные поезда: квадрат R - 0,85 и RMSE - 4,40
Данные проверки: квадрат R - 0,69 и RMSE - 6,59.
Тестовые данные: квадрат R - 0,70 и RMSE - 6,26
Теперь значение R-квадрат кажется намного лучше. Значение RMSE также низкое, и проблема переобучения также решена.
Следовательно, деревья решений работают здесь лучше, чтобы спрогнозировать затраты для инвесторов.
Последняя стратегия:
Последним шагом было разработать стратегию подбора игроков для нашей команды, имея в виду:
- Рейтинг должен быть больше 70 (означает класс 1)
- Бюджет - 1 миллиард евро, количество игроков около 30.
Во-первых, мы выбрали только игроков с рейтингом выше порогового значения 70. Количество оставшихся игроков - 5276
Во-вторых, мы провели некоторый анализ, например децильный анализ затрат инвесторов. Мы сделали несколько корзин, в каждой из которых было примерно 30 игроков из оставшегося пула, и отсортировали эти корзины в порядке убывания стоимости для инвесторов.
Здесь мы можем заметить, что сумма, необходимая для выбора всей команды из первой корзины, составляет 3,45 миллиарда евро (что выходит за рамки бюджета). Это означает, что мы не можем напрямую выбрать 30 лучших игроков, а сумма, необходимая для выбора команды из 11-й корзины, составляет 0,945 миллиарда евро (что предусмотрено нашим бюджетом). Однако было бы неправильной стратегией выбирать всех игроков только из этой корзины, так как мы оставили бы почти 300 высокопоставленных игроков, которые оказались выше этой корзины. Итак, лучшее решение - выбрать 8–10 основных игроков из верхних сегментов, а остальных игроков из средних и низких сегментов.
Это решение может быть легко принято с помощью приведенного выше анализа, и именно инвесторы и менеджеры команд должны решить, каких игроков они хотят видеть в своей команде.
5. ЗАКЛЮЧЕНИЕ.
В этой работе мы построили 2 модели, которые используют алгоритмы машинного обучения, чтобы принести пользу инвесторам, одновременно фиксируя значимую классификацию игроков как хороших исполнителей, а затем регрессируя их в бюджет инвестора. Подгонка результатов, классификации и регрессии - это новая модель отбора для контролируемого обучения игроков, которая превосходит другие команды. В конечном итоге мы сузили процесс выбора игрока в клубе, что лучше, чем выбор случайным образом.
Объем будущего. Мы также можем реализовать методы временных рядов. Как наши зависимые переменные - рейтинг и стоимость зависят от данных за предыдущие годы. Например, если у определенного игрока рейтинг 85 в декабре 2019 года, его рейтинг в январе 2020 года будет около 85 +/- 3. Следовательно, для этих данных могут быть полезны методы временных рядов.
Ссылки:
- Го, Гондэ и Ван, Хуэй и Белл, Дэвид и Би, Ясинь. (2004). Модельно-ориентированный подход в классификации KNN.
- Янь-янь ПЕСНЯ, Инь ЛУ. (2015). Методы дерева решений: приложения для классификации и прогнозирования.
- Https://towardsdatascience.com/how-to-tune-a-decision-tree-f03721801680
- Апостолидис-Афентулис, Василиос. (2015). Классификация SVM с ядрами Linear и RBF. 10.13140 / RG.2.1.3351.4083.