IIS_2023_1/zhukova_alina_lab_4/readme.md

50 lines
4.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

## Задание
Использовать метод кластеризации по варианту для выбранных данных,
самостоятельно сформулировав задачу.
Интерпретировать результаты и оценить, насколько хорошо он подходит для
решения сформулированной вами задачи
Вариант №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)