MATLAB è Simulink íà ðóññêîì

https://hub.exponenta.ru/

Проектирование систем управления\Fuzzy Logic Toolbox

Список функций Fuzzy Logic Toolbox

  В оглавление \ К следующему разделу \ К предыдущему разделу

SUBCLUST

Нахождение центров кластеров данных с использованием субтрактивного алгоритма

Синтаксис:

[centers, sigmas] = subclust (X, radii, xBounds, options)

Описание:

На основе субтрактивного алгоритма вычисляются центры кластеров данных. Основу алгоритма, реализованного функцией subclust, составляют идеи горного метода кластерного анализа, который был предложен Рональдом Ягером (Ronald Yager) и Димитаром Филевым (Dimitar Filev). Особенностью метода является отсутствие необходимости задания количества кластеров до начала работы алгоритма.

Задача нахождения центров кластеров ставится следующим образом.

Дано:  – объекты, подлежащие кластеризации, где n – количество объектов. Каждый объект представляет собой точку в p-мерном пространстве признаков (). Необходимо найти центры кластеров, т.е. координаты центров скопления объектов, заданных множеством X.

Идея метода заключается в следующем. Объекты рассматриваются как потенциальные центры кластеров. Для каждого объекта рассчитывается значение так называемого потенциала, характеризующего плотность расположения других объектов в его окрестности. Чем гуще соседние объекты расположены к данному объекту, тем больше значение его потенциала. Значение потенциала для объекта рассчитывается по формуле , где  - вес j-й координаты. В случае, когда объект задан двумя признаками, графическое изображение распределения потенциала будет представлять собой поверхность, напоминающую горный рельеф. Отсюда и название - горный метод. В качестве центров кластеров выбирают координаты “горных” вершин. Для этого, центром первого кластера назначают объект с наибольшим потенциалом. Затем центр кластера а также близко расположенные к нему объекты исключают из дальнейшего рассмотрения, т.е. из “горного массива” вычленяют наивысшую “гору”. Значения потенциалов оставшихся объектов пересчитывают, и вновь в качестве центра кластера выбирают объект с максимальным значением потенциала. Итерационная процедура выбора центров кластеров продолжается до тех пор, пока не будут исключены все объекты.

Функция subclust может иметь до четырех входных аргументов, первые два из которых обязательны:

  1. X – матрица, представляющая данные, подлежащие кластерному анализу. Каждая строка матрицы соответствует одному объекту (образу);
  2. radii – вектор, определяющий размеры кластеров по каждой координате (длина вектора radii равна p). Значения координат вектора radii должны находится в диапазоне [0, 1] в связи с тем, что во время выполнения функции subclust данные, представленные матрицей X масштабируется на единичный гиперкуб. Обычно, малые значения radii приводят к тому, что функция subclust находит много мелких кластеров. Хорошие результаты кластерного анализа получаются, как правило, когда значения radii находятся в диапазоне [0.2, 0.5]. Весовые коэффициенты из формулы расчета потенциала связаны с radii следующим соотношением . Если аргумент radii задан скаляром, тогда все координаты считаются равноважными;
  3. xBounds – матрица диапазонов изменения входных данных, необходимая для масштабирования данных, заданных матрицей X, на единичный гиперкуб. Каждая строка матрицы задает диапазон изменения данных по одной координате, т.о. размер матрицы – 2 x p. Если аргумент xBounds не задан, тогда диапазоны изменения входных данных рассчитываются функцией subclust по фактическим значениям матрицы X;
  4. options – вектор параметров кластерного анализа:
    • options(1) – коэффициент подавления (squash factor). Значение options(1)*radii используется для определения соседних к центру кластера объектов. Эти объекты считаются принадлежащими данному кластеру и исключаются из дальнейшего рассмотрения в кластерном анализе. Чем больше значение коэффициента подавления, тем больше соседних объектов будут принадлежать кластеру. Значение коэффициента подавления по умолчанию равно 1.25;
    • options(2) – коэффициент принятия (accept ratio). Используется как критерий назначения объекта центром кластера. Если отношение значений максимального потенциала текущего центра кластера к потенциалу центра первого кластера больше коэффициента принятия, тогда текущий объект рассматривается как центр нового кластера и кластерный анализ продолжается. Чем больше значение коэффициента принятия, тем больше кластеров будет найдено функцией subclust. Значение коэффициента принятия по умолчанию равно 0.5;
    • options(3) – коэффициент отторжения (reject ratio). Используется как критерий исключения объекта из списка потенциальных центров кластеров. Если отношение значений максимального потенциала текущего центра кластера к потенциалу центра первого кластера меньше коэффициента принятия, тогда текущий объект проверяется по коэффициенту отторжения. В случае, когда это отношение больше коэффициента отторжения и рассматриваемый объект расположен далеко от уже найденных центров кластеров, тогда он рассматривается как центр нового кластера. В противном случае, указанный объект исключается из дальнейшего рассмотрения как потенциальный центр кластера. Чем меньше значение коэффициента отторжения, тем больше далеко расположенных друг от друга кластеров может быть найдено. Значение коэффициента отторжения должно быть меньше значения коэффициента принятия. Значение коэффициента отторжения по умолчанию равно 0.15;
    • options(4) – ненулевое значение параметра указывает на то, что промежуточные результаты кластерного анализа будут выведены на экран. По умолчанию установлено нулевое значение.

Функция subclust может иметь до двух выходных аргументов:

  1. centers – матрица центров найденных кластеров. Каждая строка матрицы задает координаты центра одного кластера.
  2. sigmas – вектор радиусов кластеров.

Если функция subclust вызывается без выходных аргументов, тогда координаты центров кластеров выводятся на экран.

Пример:

data=load('clusterdemo.dat');
centers=subclust(data, 0.3)
plot3(data(:,1), data(:,2), data(:,3), 'b.', 'markersize', 3);
hold on
plot3(centers(:,1), centers(:,2), centers(:,3), 'r*', 'markersize', 8);
grid on

Кластерный анализ данных, записанных в демонстрационном файле clusterdemo.dat. Красными звездочками указаны центры найденных кластеров.

  В оглавление \ К следующему разделу \ К предыдущему разделу


Поиск по сайту:


Система Orphus