Find cluster centers using subtractive clustering

`centers = subclust(data,clusterInfluenceRange)`

`centers = subclust(data,clusterInfluenceRange,Name,Value)`

```
[centers,sigma]
= subclust(___)
```

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.