Find cluster centers using subtractive clustering
clusters
input data using subtractive clustering with the specified cluster
influence range, and returns the computed cluster centers. The subtractive clustering algorithm estimates
the number of clusters in the input data.centers
= subclust(data
,clusterInfluenceRange
)
clusters
data using algorithm options specified by one or more centers
= subclust(data
,clusterInfluenceRange
,Name,Value
)Name,Value
pair
arguments.
To generate a fuzzy inference system using subtractive
clustering, use the genfis
command. For example,
suppose you cluster your data using the following syntax:
C = subclust(data,clusterInfluenceRange,'DataScale',dataScale,'Options',options);
where the first M
columns of data
correspond
to input variables, and the remaining columns correspond to output
variables.
You can generate a fuzzy system using the same training data and subtractive clustering configuration. To do so:
Configure clustering options.
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);
Extract input and output variable data.
inputData = data(:,1:M); outputData = data(:,M+1:end);
Generate FIS structure.
fis = genfis(inputData,outputData,opt);
The fuzzy system, fis
, contains one fuzzy
rule for each cluster, and each input and output variable has one
membership function per cluster. You can generate only Sugeno fuzzy
systems using subtractive clustering. For more information, see genfis
and genfisOptions
.
Subtractive clustering assumes that each data point is a potential cluster center. The algorithm does the following:
Calculate the likelihood that each data point would define a cluster center, based on the density of surrounding data points.
Choose the data point with the highest potential to be the first cluster center.
Remove all data points near the first cluster center.
The vicinity is determined using clusterInfluenceRange
.
Choose the remaining point with the highest potential as the next cluster center.
Repeat steps 3 and 4 until all the data is within the influence range of a cluster center.
The subtractive clustering method is an extension of the mountain clustering method proposed in [2].
[1] Chiu, S., "Fuzzy Model Identification Based on Cluster Estimation," Journal of Intelligent & Fuzzy Systems, Vol. 2, No. 3, Sept. 1994.
[2] Yager, R. and D. Filev, "Generation of Fuzzy Rules by Mountain Clustering," Journal of Intelligent & Fuzzy Systems, Vol. 2, No. 3, pp. 209-219, 1994.