Нечеткая c-средняя кластеризация
[centers,U]
= fcm(data,Nc)
[centers,U]
= fcm(data,Nc,options)
[centers,U,objFunc]
= fcm(___)
Чтобы сгенерировать нечеткую систему вывода с помощью кластеризации FCM, используйте команду genfis
. Например, предположите, что вы кластеризируете свои данные с помощью следующего синтаксиса:
[centers,U] = fcm(data,Nc,options);
где первые столбцы M
data
соответствуют входным переменным, и остальные столбцы соответствуют выходным переменным.
Можно сгенерировать нечеткую систему с помощью тех же данных тренировки и FCM кластеризирующаяся настройка. Сделать так:
Сконфигурируйте кластеризирующиеся опции.
opt = genfisOptions('FCMClustering');
opt.NumClusters = Nc;
opt.Exponent = options(1);
opt.MaxNumIteration = options(2);
opt.MinImprovement = options(3);
opt.Verbose = options(4);
Извлеките данные о переменной ввода и вывода.
inputData = data(:,1:M); outputData = data(:,M+1:end);
Сгенерируйте структуру FIS.
fis = genfis(inputData,outputData,opt);
Нечеткая система, fis
, содержит одно нечеткое правило для каждого кластера, и каждая переменная ввода и вывода имеет одну функцию принадлежности на кластер. Для получения дополнительной информации смотрите genfis
и genfisOptions
.
Нечеткие c-средние-значения (FCM) являются методом кластеризации, который позволяет каждой точке данных принадлежать нескольким кластерам с различными степенями членства.
FCM основан на минимизации следующей целевой функции
где
D является количеством точек данных.
N является количеством кластеров.
m является нечеткой матричной экспонентой раздела для управления степенью нечеткого перекрытия с m> 1. Нечеткое перекрытие относится к тому, насколько нечеткий контуры между кластерами, который является количеством точек данных, которые имеют значительное членство больше чем в одном кластере.
xi является i th точка данных.
cj является центром j th кластер.
μij является степенью членства xi в j th кластер. Для точки определенных данных, xi, сумма значений членства для всех кластеров является той.
fcm
выполняет следующие шаги во время кластеризации:
Случайным образом инициализируйте кластерные значения членства, μij.
Вычислите кластерные центры:
Обновите μij согласно следующему:
Вычислите целевую функцию, Jm.
Повторите шаги 2-4, пока Jm не улучшится меньше, чем заданный минимальный порог или до окончания заданного максимального количества итераций.
[1] Bezdec, J.C., распознавание образов с нечеткими алгоритмами целевой функции, Пленум-Пресс, Нью-Йорк, 1981.