IIS_2023_1/zhukova_alina_lab_4/readme.md

50 lines
4.3 KiB
Markdown
Raw Normal View History

2023-11-15 17:05:47 +04:00
## Задание
Использовать метод кластеризации по варианту для выбранных данных,
самостоятельно сформулировав задачу.
Интерпретировать результаты и оценить, насколько хорошо он подходит для
решения сформулированной вами задачи
Вариант №10
## Используемые технологии
В лабораторной были использованы библиотеки:
+ pandas - позволяет работать с наборами данных
+ matplotlib - используется для создания графиков
+ sklearn - используется для работы с моделями и методами машинного обучения
+ Flask - предоставляет способ быстрого создания веб-страниц для визуализации работы приложения
## Используемые компоненты
+ KMeans - библиотечная реализация метода k-средних, алгоритм
стремится минимизировать суммарное квадратичное отклонение точек кластеров от центров этих кластеров
+ silhouette_score - метрика "Силуэт" для определения качества кластеризации.
Вычисляется с помощью среднего внутрикластерного расстояния и среднего расстояния до ближайшего кластера по каждому образцу
## Как запустить
Запустить файл flask-server, который поднимет локальный сервер
и позволит обратиться к программе через браузер по ссылке [http://127.0.0.1:5000/](http://127.0.0.1:5000/)
## Что делает программа
Берет 5000 записей из датасета (датасет Chess Game Dataset
[https://www.kaggle.com/datasets/datasnaek/chess](https://www.kaggle.com/datasets/datasnaek/chess)),
Преобразует данные нечисловых столбцов в числовые значения, осуществляет нормализацию и взвешивание параметров.
Проводит кластеризацию с помощью метода KMeans на данных, количество кластеров выбрано вручную.
Оценивает качество кластеризации с помощью метрики "Силуэт"
## Анализ и скриншоты работы программы
С помощью кластеризации планировалось разбить все шахматные партии на группы
с учетом напряженности игры. Так, рейтинговые игры, с меньшими временными затратами
на ход и более высокими рейтингами игроков считаются более напряженными.
Наилучшие результаты по метрике "Силуэт" получаются, если задать количество кластеров,
равное двум. Но при этом всего лишь происходит разделение игр на рейтинговые и
не рейтинговые. Изменение веса этого параметра также не дает существенных результатов
![img.png](img_screen_2.png)
С другой стороны, разделение данных на 3 кластера визуально совпадает с ожидаемым
разделнием. Так, самые напряженные игры войдут в синий кластер, менее напряженные - в желтый.
Красный кластер соберет все наимее напряженные игры, так как они проходят вне рейтинга.
Однако оценка по метрике "Силуэт" будет существенно хуже.
![img.png](img_screen_1.png)