Поиск центров кластеров с помощью вычитающей кластеризации
кластеры вводят данные с помощью вычитающей кластеризации с заданной областью значений влияния кластеров и возвращают вычисленные центры кластеров. Алгоритм вычитания кластеризации оценивает количество кластеров во входных данных.centers
= subclust(data
,clusterInfluenceRange
)
кластеризует данные с помощью опций алгоритма, заданных одним или несколькими centers
= subclust(data
,clusterInfluenceRange
,Name,Value
)Name,Value
аргументы в виде пар.
Чтобы сгенерировать систему нечеткого вывода с помощью вычитающей кластеризации, используйте genfis
команда. Например, предположим, что вы кластеризуете свои данные с помощью следующего синтаксиса:
C = subclust(data,clusterInfluenceRange,'DataScale',dataScale,'Options',options);
где первый M
столбцы data
соответствуют входы переменным, а остальные столбцы соответствуют выходу переменным.
Можно сгенерировать нечеткую систему с помощью тех же обучающих данных и вычитающих строений кластеризации. Для этого:
Настройте опции кластеризации.
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);
Извлеките входные и выходные переменные данные.
inputData = data(:,1:M); outputData = data(:,M+1:end);
Сгенерируйте структуру FIS.
fis = genfis(inputData,outputData,opt);
Нечеткая система, fis
, содержит одно нечеткое правило для каждого кластера, и каждая входная и выходная переменная имеет одну функцию принадлежности к кластеру. Можно сгенерировать только нечеткие системы Sugeno, используя вычитающую кластеризацию. Для получения дополнительной информации см. genfis
и genfisOptions
.
Вычитающая кластеризация предполагает, что каждая точка данных является потенциальным центром кластера. Алгоритм делает следующее:
Вычислите вероятность того, что каждая точка данных будет определять центр кластера, основываясь на плотности окружающих точек данных.
Выберите точку данных с самым высоким потенциалом, чтобы быть первым центром кластера.
Удалите все точки данных рядом с первым центром кластера. Окрестности определяются с помощью clusterInfluenceRange
.
Выберите оставшуюся точку с самым высоким потенциалом в качестве следующего центра кластера.
Повторяйте шаги 3 и 4, пока все данные не окажутся в области влияния центра кластера.
Метод вычитающей кластеризации является расширением метода горной кластеризации, предложенного в [2].
[1] Chiu, S., «Fuzzy Model Identification Based on Cluster Estimation», Journal of Intelligent & Fuzzy Systems, Vol. 2, No3, Sept. 1994.
[2] Yager, R. and D. Filev, «Generation of Fuzzy Rules by Mountain Clustering», Journal of Intelligent & Fuzzy Systems, Vol. 2, No3, pp. 209-219, 1994.