
5.3 Ход работы
Ознакомиться с основными алгоритмами нечеткой кластеризации: fuzzyc-means,Gustafson-Kessel,Gath-Geva.
Изучить и программно реализовать алгоритм кластеризации fuzzyc-means.
Выполнить кластеризацию выборки данных из UCI-репозитория (например, Iris,Wine,Breastcancer)
5.4 Содержание отчета
1. Титульный лист
2. Цель работы.
3. Ход работы (код программы, скриншоты и анализ полученных результатов).
4. Выводы.
Приложение а
Синтаксис функции fcm:
[V, M, obj_fcn] = fcm(X, c) [V, M, obj_fcn] = fcm(X, c, options)
Функция fcm может иметь три входных аргумента:
X – матрица, представляющая данные, подлежащие кластеризации. Каждая строка матрицы соответствует одному объекту (образу);
c – количество кластеров, которое должно быть получено в результате выполнения функции fcm. Количество кластеров должно быть больше 1 и меньше числа образов, заданных матрицей X;
options – необязательный аргумент, устанавливающий параметры алгоритма кластеризации:
options(1) – значения экспоненциального веса (значение по умолчанию – 2.0); options(2) – максимальное количество итераций алгоритма кластеризации (значение по умолчанию – 100);
options(3) – минимально допустимое значение улучшения целевой функции за одну итерацию алгоритма (значение по умолчанию – 0.00001);
options(4) – вывод промежуточных результатов во время работы функции fcm (значение по умолчанию – 1).
Для использования значений по умолчанию можно вести NaN в качестве значения соответствующей координаты вектора options.
Алгоритм кластеризации останавливается когда выполнено максимальное количество итераций или когда улучшение значения целевой функции за одну итерацию меньше указанного минимально допустимого значения.
Функция fcm имеет три выходных аргумента:
V – матрица координат центров кластеров, полученных в результате кластеризации. Каждая строка матрицы соответствует центру одного кластера;
M – матрица степеней принадлежности образов к кластерам. Каждая строка матрицы соответствует функции принадлежности одного кластера.
obj_fcn – вектор значений целевой функции на каждой итерации алгоритма кластеризации.
Пример
Проводится кластеризация объектов, образующих фигуру типа «бабочка». Результаты кластеризации приведены ниже на рисунке. Центры кластеров указаны маркером ‘+’. Размер маркера ‘o’ пропорционален степени принадлежности объекта кластеру. Расположенный в центре объект имеет одинаковые степени принадлежности к красному и к синему кластерам. Это обеспечивает симметричное разбиение объектов по кластерам, что невозможно при четкой кластеризации.
X=[1 1; 1 4; 1 7; 3 2; 3 4; 3 6; 5 4; 7 4; 9 4; 11 2; 11 4; 11 6; 13 1; 13 4; 13 7]; [V M opt]=fcm(X, 2) subplot(2,1,1); plot(X(:,1), X(:,2), 'ko', 'markersize', 6) text='Исходные данные'; title(text) xlim([0 14]) ylim([0 8]) subplot(2,1,2); plot(V(1,1), V(1,2), 'r+', 'markersize', 10) hold on plot(V(2,1), V(2,2), 'b+', 'markersize', 10) for i=1:15 plot(X(i,1), X(i,2)+.05, 'ro', 'markersize', M(1,i)*8+2); plot(X(i,1), X(i,2)-.05, 'bo', 'markersize', M(2,i)*8+2); end xlim([0 14]) ylim([0 8]) text='Результаты кластеризации'; title(text)
Более подробно с применением нечеткого c-means алгоритма для задач кластеризации можно ознакомиться с помощью демонстрационной программы fcmdemo.
Программа fcmdemo выводит на экран интерактивное графическое окно, позволяющее пользователю выбирать набор данных для кластеризации. устанавливать параметры нечеткого c-means алгоритма, просматривать результаты кластеризации, в том числе и графики функций принадлежности центров кластеров. Во время кластерного анализа в рабочую область MatLab выводятся значения целевой функции на каждой итерации нечеткого c-means алгоритма. Графическое окно fcmdemo с указанием функционального назначения основных полей приведено на рис. 1.
Рисунок 1. – Окно демонстрационной программы fcmdemo
Графическое окно fcmdemo содержит 7 верхних типовых меню (File, Edit, View, Insert, Tools, Windows и Help), область визуализации, меню выбора данных, меню установки параметров алгоритма кластеризации, кнопку запуска кластерного анализа (Start), а также кнопки Info и Close, которые позволяют вызвать окно справки и закрыть модуль, соответственно.
Меню выбора данных
Меню выбора данных расположено в правом верхнем углу графического окна. Пользователь имеет возможность выбрать один из пяти демо-наборов данных Data Set 1 - Data Set 5, а также загрузить собственные данные. Демо-наборы не являются постоянными; они генерируются программой fcmdemo при каждой загрузке данных. Для загрузки собственных данных необходимо выбрать опцию Custom… и затем в типовом окне открытия файла указать соответствующий файл данных. Данные должны быть записаны в файле построчно, т. е. каждый объект необходимо описать одной строкой, содержащей значения двух признаков.
Область визуализации
В этой области, которая расположена в середине графического окна, в двумерном пространстве выводятся объекты (образы) и найденные центры кластеров. Маркеры в виде окружности соответствуют объектам, а маркеры в виде диска - центрам кластеров. Центры кластеров выделяются различными цветами. Такими же цветами выделяются и объекты, принадлежащие соответствующим кластерам. В процессе кластерного анализа центры кластеров пошагово перемещаются из середины области визуализации к “своим” местам. Траектории перемещения центров кластеров изображаются сплошными линиями. В процессе кластерного анализа изменяются цвета объектов согласно их принадлежностью кластерам на каждой итерации алгоритма.
Для управления визуализацией используются следующие кнопки:
Label Data– разрешение / подавление выделения цветом принадлежности объектов кластерам;
Clear Traj– удаление траектории перемещения центров кластеров;
MF Plot – вывод функции принадлежности центра кластера. Для получения графического изображения функции принадлежности необходимо с помощью мыши выбрать центр кластера и нажать кнопкуMF Plot. Пример функции принадлежности центра кластера показан на рис. 2.
Рисунок 2. – Функция принадлежности центра кластера
Установка параметров алгоритма кластеризации
Пользователь может с помощью меню выбрать количество кластеров (от 2 до 9), а также установить значения следующих параметров нечеткого c-means алгоритма:
в поле Expo- значение экспоненциального веса;
в поле Iterat- максимальное количество итераций алгоритма;
в поле Improv- минимально допустимое значение улучшения целевой функции за одну итерацию алгоритма.