ПР / ПР3_Хакова_ЮМ_ИСТ-223
.docxМИНИСТЕРСТВО ЦИФРОВОГО РАЗВИТИЯ,
СВЯЗИ И МАССОВЫХ КОММУНИКАЦИЙ РОССИЙСКОЙ ФЕДЕРАЦИИ
ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ БЮДЖЕТНОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО ОБРАЗОВАНИЯ
«САНКТ-ПЕТЕРБУРГСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ ТЕЛЕКОММУНИКАЦИЙ ИМ. ПРОФ. М.А. БОНЧ-БРУЕВИЧА»
(СПбГУТ)
Факультет Информационных технологий и программной инженерии
Кафедра Систем обработки данных
Направление: 09.03.02 Информационные системы и технологии
Профиль: Прикладные информационные системы и технологии
Практическое задание №3
«Исследование алгоритмов k-means и c-means»
по дисциплине
«ИИСиТ»
Выполнил:
студент группы ИСТ-223
Хакова Ю. М. «____» _________ 2026 г.
Принял:
ст. пр. каф. ИУС
Козлова О.А. «____» _________ 2026 г.
Цель работы
Целью работы является исследование алгоритмов кластеризации k-means и C-means, а также анализ влияния параметров на качество кластеризации и скорость выполнения алгоритмов.
Краткие теоретические сведения
В работе рассматриваются два алгоритма кластеризации: k-means и C-means.
Алгоритм k-means выполняет жёсткую кластеризацию, при которой каждый объект относится строго к одному кластеру. Алгоритм итеративно минимизирует сумму квадратов расстояний от объектов до центров кластеров:
Алгоритм C-means (Fuzzy C-Means) выполняет нечёткую кластеризацию, при которой каждый объект принадлежит всем кластерам с различной степенью принадлежности. Используется матрица принадлежности U, и минимизируется функция:
Программная реализация
В рамках работы была реализована программа на языке Python, выполняющая:
генерацию случайных данных;
кластеризацию с помощью алгоритмов k-means и C-means;
измерение времени выполнения;
определение количества итераций;
визуализацию результатов.
На рисунке 1 представлены результаты работы алгоритмов
Рисунок 1 — Визуализация работы алгоритмов
При хорошо разделимых данных результаты алгоритмов k-means и C-means практически совпадают. При увеличении перекрытия кластеров алгоритм C-means демонстрирует более гибкое поведение за счёт нечёткой принадлежности объектов.
Исследование влияния параметров
При увеличении количества объектов наблюдается рост времени выполнения алгоритмов. Алгоритм C-means работает медленнее, так как требует вычисления матрицы принадлежности.
Таблица 1 – Влияние параметра сходимости ε (k-means)
eps |
Количество итераций |
|
|||
0.1000 |
3 |
0.001575 |
|||
0.0100 |
5 |
0.001773 |
|||
0.0010 |
5 |
0.001205 |
|||
0.0001 |
5 |
0.002017 |
Уменьшение значения ε приводит к увеличению числа итераций и времени выполнения алгоритма, так как алгоритм стремится к более точной сходимости.
Таблица 2 – Влияние параметра сходимости ε (C-means)
eps |
Количество итераций |
|
|||
0.1000 |
10 |
0.133167 |
|||
0.0100 |
13 |
0.153962 |
|||
0.0010 |
15 |
0.264465 |
|||
0.0001 |
18 |
0.381808 |
Для алгоритма C-means уменьшение ε также увеличивает количество итераций и время выполнения, при этом влияние более заметно, чем в k-means.
Таблица 3 – Влияние параметра нечёткости m
m |
Количество итераций |
|
|||
1.5 |
20 |
0.648175 |
|||
2.0 |
18 |
0.415076 |
|||
2.5 |
21 |
0.484298 |
|||
3.0 |
28 |
0.320074 |
Параметр m влияет на степень размытости кластеров. При увеличении m границы кластеров становятся менее чёткими, а алгоритм может сходиться медленнее.
Таблица 4 – Влияние количества кластеров
Количество кластеров |
Итерации k-means |
Время k-means |
Итерации c-means |
Время c-means |
50 |
2 |
0.001014 |
15 |
0.016509 |
100 |
3 |
0.002670 |
17 |
0.036172 |
200 |
5 |
0.000785 |
18 |
0.069615 |
400 |
8 |
0.001680 |
45 |
0.358082 |
Увеличение числа кластеров приводит к увеличению вычислительной сложности и времени выполнения алгоритмов, так как возрастает количество вычисляемых расстояний.
Сравнительный анализ алгоритмов
В ходе работы были выявлены следующие особенности:
Алгоритм k-means:
работает быстрее;
проще в реализации;
выполняет жёсткое разбиение данных;
чувствителен к выбору начальных центров.
Алгоритм C-means:
обеспечивает более гибкую кластеризацию;
позволяет учитывать степень принадлежности объектов;
лучше работает при перекрывающихся кластерах;
требует больше вычислительных ресурсов.
Заключение
В ходе выполнения работы были изучены алгоритмы кластеризации k-means и C-means, реализованы их программные версии и проведён сравнительный анализ.
Было установлено, что:
k-means является более быстрым и простым алгоритмом;
C-means обеспечивает более гибкое описание структуры данных;
увеличение числа объектов и кластеров приводит к росту времени выполнения;
уменьшение параметра ε увеличивает количество итераций;
параметр m влияет на степень нечёткости кластеров.
Таким образом, выбор алгоритма зависит от задачи: для простых и хорошо разделимых данных подходит k-means, тогда как для сложных данных с размытыми границами предпочтительнее использовать C-means.
Санкт-Петербург
2026
