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