subclust

Найдите кластерные центры с помощью отнимающей кластеризации

Синтаксис

centers = subclust(data,clusterInfluenceRange)
centers = subclust(data,clusterInfluenceRange,Name,Value)
[centers,sigma] = subclust(___)

Описание

пример

centers = subclust(data,clusterInfluenceRange) входные данные кластеров с помощью отнимающей кластеризации с заданной кластерной областью значений влияния, и возвращают вычисленные кластерные центры. Отнимающий алгоритм кластеризации оценивает количество кластеров во входных данных.

пример

centers = subclust(data,clusterInfluenceRange,Name,Value) данные о кластерах с помощью опций алгоритма заданы одним или несколькими аргументами пары Name,Value.

пример

[centers,sigma] = subclust(___) возвращает значения сигмы, задающие область значений влияния кластерного центра в каждой из размерностей данных.

Примеры

свернуть все

Загрузите набор данных.

load clusterdemo.dat

Найдите кластерные центры с помощью той же области значений влияния за все размерности.

C = subclust(clusterdemo,0.6);

Каждая строка C содержит один кластерный центр.

C
C = 3×3

    0.5779    0.2355    0.5133
    0.7797    0.8191    0.1801
    0.1959    0.6228    0.8363

Загрузите набор данных.

load clusterdemo.dat

Задайте минимальные и максимальные границы нормализации для каждой размерности данных. Используйте те же границы для каждой размерности.

dataScale = [-0.2 -0.2 -0.2;
              1.2  1.2  1.2];

Найдите кластерные центры.

C = subclust(clusterdemo,0.5,'DataScale',dataScale);

Загрузите набор данных.

load clusterdemo.dat

Задайте следующие опции кластеризации:

  • Фактор сквоша 2.0 - Только находит кластеры, которые далеки друг от друга.

  • Примите отношение, 0.8 - Только принимает точки данных с большим потенциалом для того, чтобы быть кластерными центрами.

  • Отклоните отношение 0.7 - точки данных Отклонения, если у них нет большого потенциала для того, чтобы быть кластерными центрами.

  • Флаг Verbosity 0 - не распечатывает информацию о прогрессе к командному окну.

options = [2.0 0.8 0.7 0];

Найдите кластерные центры, с помощью различной области значений влияния за каждую размерность и заданные опции.

C = subclust(clusterdemo,[0.5 0.25 0.3],'Options',options);

Загрузите набор данных.

load clusterdemo.dat

Кластерные данные, возвращая кластерные значения сигмы, S.

[C,S] = subclust(clusterdemo,0.5);

Кластерные значения сигмы указывают на область значений влияния вычисленных кластерных центров в каждой размерности данных.

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

свернуть все

Данные, которые будут кластеризироваться, заданные как M-by-N массив, где M является количеством точек данных и N, являются количеством размерностей данных.

Область значений влияния кластерного центра каждого ввода и вывода, принимающего данные, находится в пределах модульного гиперполя, заданного как пара, разделенная запятой, состоящая из 'ClusterInfluenceRange' одно из следующего:

  • Скалярное значение в области значений [0 1] — Использование та же область значений влияния для всех вводов и выводов.

  • Вектор — Использование различное влияние располагается для каждого ввода и вывода.

Определение меньшей области значений влияния обычно создает больше и меньшие кластеры данных, производя более нечеткие правила.

Аргументы в виде пар имя-значение

Укажите необязательные аргументы в виде пар ""имя, значение"", разделенных запятыми. Имя (Name) — это имя аргумента, а значение (Value) — соответствующее значение. Name должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN.

Пример: 'DataScale','auto' устанавливает факторы нормализации для сигналов ввода и вывода с помощью минимальных и максимальных значений в наборе данных, который будет кластеризироваться.

Масштабные коэффициенты данных для нормализации входных и выходных данных в модульное гиперполе, заданное как пара, разделенная запятой, состоящая из 'DataScale' и 2 N массивом, где N является общим количеством вводов и выводов. Каждый столбец DataScale задает минимальное значение в первой строке и максимальное значение во второй строке для соответствующего набора данных ввода или вывода.

Когда DataScale является 'auto', команда genfis использует фактические минимальные и максимальные значения в данных, которые будут кластеризироваться.

Кластеризация опций, заданных как пара, разделенная запятой, состоящая из 'Options' и вектора со следующими элементами:

Фактор сквоша для масштабирования области значений влияния кластерных центров, заданных как положительная скалярная величина. Меньший фактор сквоша уменьшает потенциал для отдаленных точек, которые будут рассмотрены как часть кластера, который обычно создает больше и меньшие кластеры данных.

Приемное отношение, заданное как часть потенциала первого кластерного центра, выше которого другая точка данных принята как кластерный центр, задало как скалярное значение в области значений [0, 1]. Приемное отношение должно быть больше, чем отношение отклонения.

Отношение отклонения, заданное как часть потенциала первого кластерного центра, ниже которого другая точка данных отклоняется как кластерный центр, задало как скалярное значение в области значений [0, 1]. Отношение отклонения должно быть меньше, чем приемное отношение.

Флаг отображения информации, указывающий, отобразить ли информацию о прогрессе во время кластеризации, заданной как одно из следующего:

  • ложь Не отображайте информацию о прогрессе.

  • tRUE Отобразите информацию о прогрессе.

Выходные аргументы

свернуть все

Кластерные центры, возвращенные как J-by-N массив, где J является количеством кластеров и N, являются количеством размерностей данных.

Область значений влияния кластерных центров каждой размерности данных, возвращенной как N - вектор - строка элемента. Все кластерные центры имеют тот же набор значений sigma.

Советы

  • Чтобы сгенерировать нечеткую систему вывода с помощью отнимающей кластеризации, используйте команду genfis. Например, предположите, что вы кластеризируете свои данные с помощью следующего синтаксиса:

    C = subclust(data,clusterInfluenceRange,'DataScale',dataScale,'Options',options);

    где первые столбцы M data соответствуют входным переменным, и остальные столбцы соответствуют выходным переменным.

    Можно сгенерировать нечеткую систему с помощью тех же данных тренировки и отнимающей настройки кластеризации. Сделать так:

    1. Сконфигурируйте кластеризирующиеся опции.

      opt = genfisOptions('SubtractiveClustering');
      opt.ClusterInfluenceRange = clusterInfluenceRange;
      opt.DataScale = dataScale;
      opt.SquashFactor = options(1);
      opt.AcceptRatio = options(2);
      opt.RejectRatio = options(3);
      opt.Verbose = options(4);
    2. Извлеките данные о переменной ввода и вывода.

      inputData = data(:,1:M);
      outputData = data(:,M+1:end);
      
    3. Сгенерируйте структуру FIS.

      fis = genfis(inputData,outputData,opt);

    Нечеткая система, fis, содержит одно нечеткое правило для каждого кластера, и каждая переменная ввода и вывода имеет одну функцию принадлежности на кластер. Можно сгенерировать только Sugeno нечеткие системы с помощью отнимающей кластеризации. Для получения дополнительной информации смотрите genfis и genfisOptions.

Алгоритмы

Отнимающая кластеризация принимает, что каждая точка данных является потенциальным кластерным центром. Алгоритм делает следующее:

  1. Вычислите вероятность, что каждая точка данных задала бы кластерный центр, на основе плотности окружения точек данных.

  2. Выберите точку данных с самым высоким потенциалом, чтобы быть первым кластерным центром.

  3. Удалите все точки данных около первого кластерного центра. Близость определяется с помощью clusterInfluenceRange.

  4. Выберите остающуюся точку с самым высоким потенциалом как следующий кластерный центр.

  5. Повторите шаги 3 и 4, пока все данные не будут в области значений влияния кластерного центра.

Отнимающий метод кластеризации является расширением горного метода кластеризации, предложенного в [2].

Ссылки

[1] Чю, S., "Нечеткая образцовая идентификация на основе кластерной оценки", журнал Intelligent & Fuzzy Systems, издания 2, № 3, сентябрь 1994.

[2] Yager, R. и Д. Филев, "Генерация Нечетких Правил Горной Кластеризацией", Журнал Intelligent & Fuzzy Systems, Издания 2, № 3, стр 209-219, 1994.

Представлено до R2006a

Для просмотра документации необходимо авторизоваться на сайте