Добавил:
Я и кто? Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Лабораторная работа №5

.docx
Скачиваний:
51
Добавлен:
10.09.2023
Размер:
1.4 Mб
Скачать

Министерство цифрового развития, связи и массовых коммуникаций

Российской Федерации Ордена Трудового Красного Знамени

федеральное государственное бюджетное образовательное

учреждение высшего образования

Московский технический университет связи и информатики

Кафедра «Математическая кибернетика и информационные технологии»

Лабораторная работа №5

по дисциплине

«Управление данными»

Москва 2023

Оглавление

Цель работы 2

Ход лабораторной работы 2

Вывод 18

Цель работы

Ознакомиться с методами кластеризации модуля Sklearn

Ход лабораторной работы

Создадим Python скрипт и загрузим данные в датафрейм.

Рисунок 1 – Загрузка датафрейма

Проведем кластеризацию методов k-средних

Рисунок 2 – Кластеризация

Получим центры кластеров и определим какие наблюдения в какой кластер попали

Рисунок 2 – Центры кластеров

Построим результаты классификации для признаков попарно (1 и 2, 2 и 3, 3 и 4)

Рисунок 3 – Код

Рисунок 4 – Полученный результат

Опишием полученные результаты и то, по каким из признаков произошло наилучшее разделение, а также как именно влияет значение параметра n_init

Самое лучшее разделение было осуществленно по 1 и 2 признаку, так как для других признаков, как видно из графиков, количество кластеров следовало было взять 2, а не 3. Это субъективная оценка, для оценки лучше использовать более объективный метод, а именно - подсчет ошибки в зависимости от объема кластера.

n_init - это количество раз, когда изначальные позиции центроидов будут инициализированы с разными сидами. Чем больше, те результат более точный, то есть не зависим от случайности. Особенно это важно, если в качестве метода инициализации был выбран random, а не kmeans++.

Уменьшим размерность данных до 2 используя метод главных компонент и нарисуем карту для всей области значений, на которой каждый кластер занимает определенную область со своим цветом

Рисунок 5 – Код

Рисунок 6 – Полученный результат

Исследуем работу алгоритма k-средних при различных параметрах init. Сначала надо выполнить несколько раз с параметров 'random', затем для вручную выбранных точек

Рисунок 7 – Код

Рисунок 8 – Полученный результат

Определим наилучшее количество методом локтя

Рисунок 9 – Код

Рисунок 10 – Полученный результат

Проведем кластеризацию используя пакетную кластеризацию k-средних. В чем отличие от обычного метода k-средних. Построим диаграмму рассеяния, на которой будут выделено точки, которые для разных методов попали в разные кластеры

Рисунок 11 – Код

Рисунок 12 – Полученный результат

Отличие пакетной от обычной кластеризации заключается в том, что первая быстрее, так как при расчетах опирует случайной группой (batch) значений, а не каждой отдельно взятой точкой.

Проведем иерархическую кластеризацию на тех же данных

Рисунок 13 – Код

Отобразим результаты кластеризации

Рисунок 14 – Полученный результат

Проведем исследование для различного размера кластеров (от 2 до 5). Приведем полученные результаты

Рисунок 15 – Код

Рисунок 16 – Полученный результат

Рисунок 17 – Полученный результат

Нарисуем дендограмму до уровня 6

Рисунок 18 – Код

Рисунок 19 – Полученный результат

Сгенерируем случайные данные в виде двух колец

Рисунок 20 – Код

Проведем иерархическую кластеризацию

Рисунок 21 – Код

Рисунок 22 – Код

Рисунок 23 – Полученный результат

Исследуем кластеризацию при всех параметрах linkage. Отобразите и обоснуйте полученные результаты. Для каких случаев, какой тип связи работает лучше всего.

Рисунок 24 – Код

Рисунок 25 – Полученный результат

Рисунок 26 – Код

Рисунок 27 – Полученный результат

Рисунок 28 – Код

Рисунок 29 – Полученный результат

Можно сделать следующие выводы: для двух колец больше подошел метод линковки 'single'.

  • ward минимизирует дисперсию двух сливаемых кластеров

  • average использует среднее расстояний каждого наблюдения в двух кластерах

  • complete испольует максимум расстояний между всеми наблюдениями в двух кластерах

  • single испольует минимум расстояний между всеми наблюдениями в двух кластерах

Single хорошо подходит для кластеров не шарообразной формы, а также для больших датасетов (так как работает быстро). Ward лучше использовать для кластеров более-менее одинаковых размеров.

Вывод

Ознакомился с методами кластеризации модуля Sklearn