.. | ||
static | ||
templates | ||
Data_chess_games.csv | ||
flask-server.py | ||
img_screen_1.png | ||
readme.md |
Задание
Использовать нейронную сеть по варианту для выбранных данных, самостоятельно сформулировав задачу. Интерпретировать результаты и оценить, насколько хорошо она подходит для решения сформулированной вами задачи
Вариант №10
Используемые технологии
В лабораторной были использованы библиотеки:
- pandas - позволяет работать с наборами данных
- matplotlib - используется для создания графиков
- sklearn - используется для работы с моделями и методами машинного обучения
- numpy - позволяет работать с массивами и матрицами
- Flask - предоставляет способ быстрого создания веб-страниц для визуализации работы приложения
Используемые компоненты
- MLPRegressor - многослойный перцептрон, который обучается с использованием обратного распространения без функции активации в выходном слое
- accuracy_score - метрика измерения точности для определения качества регресии
- mean_absolute_error - метрика измерения точности регресии через среднюю абсолютную ошибку
Как запустить
Запустить файл flask-server, который поднимет локальный сервер и позволит обратиться к программе через браузер по ссылке http://127.0.0.1:5000/
Что делает программа
Берет все записи из датасета (датасет Chess Game Dataset) https://www.kaggle.com/datasets/datasnaek/chess), Преобразует данные нечисловых столбцов в числовые значения, осуществляет нормализацию и взвешивание параметров. Строит регрессионную зависимость используя нейронную сеть MLPRegressor, Оценивает качество полученной модели с помощью метрик accuracy_score и mean_absolute_error
Анализ и скриншоты работы программы
С помощью регрессии планировалось получить предсказание об исходе партий, а именно вероятность победы того или иного игрока. Предсказание строиться исходя из ходов в шахматной записи, каждому из которого присваивается своя ценность, а также учитывается рейтинг игроков и открывающая комбинация ходов.
Судить о модели можно и по средней абсолютной ошибке, но намного проще воспринимать ее по точности данных предсказаний. Отклонение по исходу партии представляет точность модели как процент неверных ответов об исходе партии. Так как регрессионная модель выдает результаты от -1 до +1, а нам нужно получить исход игры, значения из регресии с помощью специальной фунции приводятся к одному числу из -1, 0, +1, где 0 означает ничью, +1 победу игрока играющего белыми, -1 победу игрока играющего черными.
При варьировании параметров структуры модели (50,50 нейронов и 50,50,50 нейронов), и количества итераций (от 200 до 1000) была найдена наилучшая модель, которая дает точность в 78%, и отклонение по абсолютной ошибке 0.81