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