Получение идеи и данных

Проанализировав некоторые наборы данных из Kaggle и пролистав наборы данных сообщества, я нашел этот, который действительно привлек мое внимание:



Я не большой поклонник FIFA, но мне нравится играть в нее со своими лучшими друзьями просто для развлечения, и это заставило меня задуматься… «Что я могу с этим сделать?». Несмотря на отсутствие опыта работы с ИИ (но большой интерес к этому предмету), я решил, что хочу сделать свой первый проект ИИ на его основе.

А потом возник еще один вопрос… «Но где я хочу его применить?».

Имея данные из FIFA 20 вплоть до FIFA 15, я начал смотреть данные из FIFA 19 (в основном потому, что именно в нее я играл больше всего), пока не обнаружил, что смотрю на игрока в целом, а затем… Это щелкнуло.

«Может быть, если я обучу модель с некоторыми характеристиками игроков в FIFA 19, в том числе в целом, чтобы предсказать общую ценность тех же игроков в FIFA 20, я смогу позже использовать эту модель, чтобы оценить общий уровень игрока. ценность в FIFA 21! ».

Используемые библиотеки

Извлечение важных данных

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

Для данных FIFA 20 мне нужен только столбец «Общий», но я решил извлечь те же столбцы, что и FIFA 19, на случай, если я захочу проанализировать его данные позже.

Кажется логичным, что статистика вратарей отличается от показателей остальных игроков, поэтому у меня было 2 варианта: создать модель только для тренировки данных вратарей или отбросить их. Я выбрал второй вариант, как вы можете видеть ниже, потому что, с моей точки зрения, это не стоило дополнительных усилий.

Затем мне нужно было добавить общие значения FIFA 20.

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

  • бронировать
  • Заменять
  • Защитник
  • Полузащитник
  • Вперед

Анализ данных

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

5 позиций, которые я создал ранее

Каждая позиция внутри форвардов

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

Процент игроков на каждой позиции

Средняя стоимость игрока (евро) по позиции

Распределение общей стоимости

Подготовка тренировочных и тестовых данных

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

В итоге у меня было около 11000 игроков для тренировки и 1100 игроков для тестирования (несколько меньше игроков по сравнению с первоначальными 18000+, потому что вратари и игроки, не входившие в FIFA 20, были исключены).

Обучение модели и классификация прогноза

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

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

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

Его средний балл точности составляет 25% (он точно соответствует общему значению от 290/1157 игроков), что совсем неплохо, потому что средняя абсолютная ошибка (1,67) очень мала.

Средняя абсолютная ошибка, сгруппированная по общему значению:

Общий прогноз игроков FIFA 21

В заключение этой статьи я собираюсь показать 5 прогнозов для всех игроков в FIFA 21.