TKBA is an advanced clustering algorithm that combines Adaptive Resonance Theory (ART) with kernel methods and topological structures for robust clustering tasks. The algorithm dynamically builds a network of clusters while maintaining topological relationships between them.
The TKBA algorithm is a neural network-based clustering method that:
- Dynamically creates clusters based on data patterns
- Maintains topological relationships between clusters using an edge matrix
- Uses Correntropy Induced Metric (CIM) for similarity measurement
- Applies Kernel Bayes Rule for probabilistic clustering decisions
- Performs topology reconstruction and cleanup during learning
-
- Adaptive Clustering: Automatically determines the number of clusters based on data structure
- Topological Preservation: Maintains meaningful connections between clusters
- Robust Learning: Implements vigilance testing to control cluster sensitivity
- Dynamic Network: Grows and refines the network topology during the learning process
- Visualization: Provides visual representation of clustering results
- Python 3.7+
- NumPy
- SciPy
- Matplotlib
- TensorFlow (optional, currently included but not used)
Install dependencies using:
pip install -r requirements.txt-
Place your data in a
.matfile format or modify the loading function inmain.py -
Configure the algorithm parameters:
cim_sig: Kernel bandwidth for CIM (default: 0.05)kbr_sig: Kernel bandwidth for Kernel Bayes Rule (default: 1.0)max_cim: Vigilance parameter for cluster acceptance (default: 0.2)lambda_param: Interval for topology reconstruction (default: 400)
-
Run the main script:
python main.py
cim_sig: Controls the sensitivity of the Correntropy Induced Metrickbr_sig: Kernel bandwidth for the Kernel Bayes Rule componentmax_cim: Maximum CIM distance for accepting a cluster (vigilance parameter)lambda_param: Frequency of topology reconstruction operations
TKBA/
├── __init__.py
├── main.py # Main algorithm
├── tkba.py # Core TKBA algorithm implementation
├── utils.py # Utility functions
├── visualization.py # Visualization functions
├── requirements.txt # Project dependencies
└── 2D_ClusteringDATASET.mat # Example dataset
- Initialization: The algorithm starts with an empty network
- Pattern Presentation: Each data point is processed sequentially
- Winner Selection: Finds the best matching cluster using CIM
- Vigilance Testing: Determines if the pattern fits an existing cluster
- Learning: Updates cluster weights or creates new clusters
- Topological Connections: Connects similar clusters in the network
- Topology Reconstruction: Periodically cleans up the network by removing poor clusters
The TKBA algorithm is particularly well-suited for:
- 2D clustering tasks
- Dynamic data streams where the number of clusters is unknown
- Tasks requiring preservation of topological relationships
- Noisy data clustering with adaptive thresholding
The main script generates a visualization showing:
- Data points in cyan
- Cluster centers with distinct colors
- Connections between related clusters as white lines
TKBA combines three key concepts:
- Adaptive Resonance Theory: Ensures stable learning without catastrophic forgetting
- Kernel Methods: Provides non-linear similarity measures using Gaussian kernels
- Topological Networks: Maintains relationships between clusters for better understanding of data structure