Скачиваний:
1
Добавлен:
07.06.2026
Размер:
275.32 Кб
Скачать

МИНИСТЕРСТВО ЦИФРОВОГО РАЗВИТИЯ,

СВЯЗИ И МАССОВЫХ КОММУНИКАЦИЙ РОССИЙСКОЙ ФЕДЕРАЦИИ

ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ БЮДЖЕТНОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО ОБРАЗОВАНИЯ

«САНКТ-ПЕТЕРБУРГСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ ТЕЛЕКОММУНИКАЦИЙ ИМ. ПРОФ. М.А. БОНЧ-БРУЕВИЧА»

(СПбГУТ)

Факультет Информационных технологий и программной инженерии

Кафедра Систем обработки данных

Направление: 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

Соседние файлы в папке ПР