This is the internal function that implements a combination of the subtractive
clustering method and fuzzy c-means. It is used to solve regression tasks. Users do not need to call it directly,
but just use `frbs.learn`

and `predict`

```
SBC(data.train, range.data.ori, r.a = 0.5, eps.high = 0.5,
eps.low = 0.15)
```

data.train

a matrix (\(m \times n\)) of data for the training process, where \(m\) is the number of instances and \(n\) is the number of variables; the last column is the output variable.

range.data.ori

a matrix (\(2 \times n\)) containing the range of the data, where \(n\) is the number of variables, and first and second rows are the minimum and maximum value, respectively.

r.a

the radius defining a neighborhood.

eps.high

an upper threshold value.

eps.low

a lower threshold value.

This method was proposed by S. Chiu. For generating the rules in the learning phase, the subtractive clustering method is used to obtain the cluster centers. Subtractive clustering (SBC) is an extension of Yager and Filev's mountain method. SBC considers each data point as a potential cluster center by determining the potential of a data point as a function of its distances to all the other data points. A data point has a high potential value if that data point has many nearby neighbors. The highest potential is chosen as the cluster center and then the potential of each data point will be updated. The process of determining new clusters and updating potentials repeats until the remaining potential of all data points falls below some fraction of the potential of the first cluster center. After getting all the cluster centers from subtractive clustering, the cluster centers are optimized by fuzzy c-means.

R. Yager and D. Filev, "Generation of fuzzy rules by mountain clustering," J. of Intelligent and Fuzzy Systems, vol. 2, no. 3, pp. 209 - 219 (1994).

S. Chiu, "Method and software for extracting fuzzy classification rules by subtractive clustering", Fuzzy Information Processing Society, NAFIPS, pp. 461 - 465 (1996).

`SBC.test`

, `frbs.learn`

, and `predict`