Нечеткая кластеризация

 
в палитре на схеме

Блок реализует процедуру нечеткой кластеризации по одному из алгоритмов, в зависимости от выбранных свойств.

Блок предназначен для поиска центров кластеров – групп из объектов множества входных значений. Входные значения задаются одним из способов, в зависимости от выбранных свойств:
Прим.: в файле знаком отделения дробной части должна быть точка, в качестве разделителей между значениями в строке могут использоваться символы «пробел», «табуляция», «;».

Входные значения и найденные центры кластеров отображаются на диаграмме рассеяния, основанной на стандартном блоке вывода графической зависимости Y от X. Для открытия диаграммы рассеяния требуется совершить двойное нажатие левой кнопкой мыши по блоку на схеме.

Поиск центров кластеров происходит по одному из следующих алгоритмов:
  1. Алгоритм нечетких C-средних (Fuzzy C-Means, FCM)

    Алгоритм нечетких C-средних — это метод кластеризации данных, который позволяет каждой точке множества принадлежать нескольким кластерам с разной степенью принадлежности.

    Метод основан на минимизации целевой функции:

    где:

    N – количество точек множества входных значений;

    C – заданное количество кластеров, на которые необходимо разбить множество;

    xi - i-ая точка множества;

    сj - центр j-го кластера;

    uij - степень принадлежность xi к кластеру j;

    m - экспоненциальный вес, определяющий нечеткость, размытость кластеров; m > 1, при m → 1, степени принадлежности uij стремятся к 0 или 1, что соответствует четкому разбиению на кластеры, обычно принимают m = 2.

    Нечеткое разбиение выполняется путем итеративной оптимизации целевой функции с обновлением uij и центров кластеров сj. Алгоритм состоит из следующих шагов:

    1. Инициализация степеней принадлежности uij случайными значениями.

    2. Расчет центров кластеров по формуле:

    3. Обновление значений степеней принадлежности, согласно формуле:

    если ∥xi - ci∥ > 0, то

    если ∥xi - ci∥ = 0, то

    4.Расчет целевой функции Jm

    Итерационный процесс не останавливается пока не выполнится условие |Jm+1 - Jm| < ε, где ε - заданный параметр останова алгоритма, либо, пока не будет выполнено указанное максимальное количество итераций.

  2. Субтрактивная кластеризация (Subtractive clustering)

    Метод субтрактивной кластеризации основан на поиске «вершин» – точек с максимальными потенциалами, то есть таких, рядом с которыми большое количество других точек множества. Данный алгоритм менее точен, чем алгоритм нечетких С-средних, но и менее требователен к априорной информации: при его использовании не требуется задавать количество кластеров. Алгоритм состоит из следующих шагов:

    1. Первоначальное определение потенциалов центров кластеров. За центры кластеров принимаются сами точки и находится потенциал каждой из точек.

    где:

    N – количество точек множества входных значений;

    xi, xj - i-ая и j-ая точки множества соответственно;

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

    Потенциал каждой точки — это функция расстояния до всех других точек. Точка с большим количеством «соседей» будет иметь больший потенциал.

    2. Нахождение максимального потенциала P*1. Точка с максимальным потенциалом обозначается как первый центр кластеризации -x*1.

    3. Перерасчет центров кластеров согласно формуле:

    где rb - положительная константа, задающая радиус одного кластера.

    Эта процедура необходима, чтобы исключить влияние на выбор следующего центра кластера от только что найденного кластера. Чтобы избежать получения близко расположенных центров кластеров, значение rb устанавливают больше, чем ra:

    где η - коэффициент подавления, обычно η = 1.25 или η = 1.5. Меньший коэффициент подавления снижает вероятность того, что точки будут рассматриваться как часть кластера, что приводит к увеличению количества кластеров, и, как следствие, кластерных центров.

    4. Выбор следующего центра кластера как точки, имеющей наибольший потенциал и перерасчет потенциалов точек в соответствии с формулой:

    где x*k - координата k-го центра кластера, P*k - потенциал k-го центра кластера.

    5. Процедура продолжается в соответствии со следующими условиями:
    • если

      где   ε̅ - коэффициент принятия центра кластера,

      то x*k принимается как кластерный центр и алгоритм продолжает работу;

    • иначе, если

      где  ͟ε̲ - коэффициент отклонения центра кластера,

      то x*k не принимается как кластерный центр и алгоритм прекращает работу;

    • иначе, если потенциал попадает в область [ ͟ε̲ * P*1, ε̅ * P*1], то проверяется, выполняется ли компромисс между достаточным значением потенциала и достаточной удаленностью от существующих центров кластеров, для этого вычисляется кратчайшее расстояние dmin между x*k и всеми найденными кластерными центрами и если

      то x*k принимается как кластерный центр и алгоритм продолжает работу, иначе x*k не принимается как кластерных центр и выбирается следующая точка с наибольшим потенциалом.

Входные порты

Блок не имеет входов.

Выходные порты

Свойства

Параметры