Получение идеи и данных
Проанализировав некоторые наборы данных из 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.