Subtractive Clustering Method (SCM)
A computationally efficient, density‑based algorithm for estimating cluster centers to initialize fuzzy inference systems.
🔍 Overview
The Subtractive Clustering Method (SCM) algorithm estimates cluster centers by computing each point’s density‑based “potential” within a given radius, then iteratively selecting the highest‑potential points and suppressing their neighbors until a set of well‑spaced centers emerges—without needing to specify the number of clusters in advance.
⚙️ Class Definition
class soft_clustering.NOCD(
ra: float = 0.5
ea: float = 0.5,
er: float = 0.15
)
📋 Parameters
Parameter |
Type |
Default |
Description |
|---|---|---|---|
|
|
|
Neighborhood radius used to compute each point’s potential. |
|
|
|
Acceptance ratio; terminates clustering when potential drops below this. |
|
|
|
Rejection ratio (reserved for extension; currently unused in core logic). |
🚀 Usage Examples
from soft_clustering import SCM
import numpy as np
# Sample 2D data with two clusters
X = np.array([
[1.0, 2.0], [1.5, 1.8], [1.2, 2.2], [0.9, 1.7],
[8.0, 8.0], [8.5, 8.2], [9.0, 7.8], [7.5, 8.1]
])
# Initialize and fit the model
model = SCM()
centers = model.fit(X)
print("Cluster centers found by SCM:")
print(centers)
🛠️ Methods
fit(X)
Apply subtractive clustering to the input data and return cluster centers.
Parameters:
X(np.ndarray, shape(n_samples, n_features)): Input data points.
Returns:
centers(np.ndarray, shape(n_clusters, n_features)): Coordinates of the discovered cluster centers.
📚 Reference
Chiu, S. L. (1994). Fuzzy Model Identification Based on Cluster Estimation. In Proceedings of the IEEE International Conference on Fuzzy Systems. ACM Digital Library 2656640.