All systems
On GitHubMALULEKE-KS
Network Clustering Analytics
K-Means clustering analysis of dense network topology with 600+ nodes and energy distribution visualization
- Python
- scikit-learn
- NetworkX
- NumPy
- Matplotlib
- Started
- March 2026
- Last push
- 6 months ago
- Commits this year
- 4
Written by AI from the repository · updated 5 days agoAI
The question
In a dense network — think wireless sensors or IoT devices — 600 nodes drawn on a screen overlap into a blur. Can unsupervised learning find the structure that the eye can't? Built for an Artificial Intelligence module (CMPG 313).
How it works
- A realistic network — a stochastic block model with seven communities: dense connections inside each (probability 0.27–0.32), sparse ones between them (0.05).
- Layout — a spring layout, compressed per community, with small random jitter so groups touch instead of separating perfectly.
- Energy — each node gets a battery level from 10 to 100, deliberately independent of its position.
- K-Means (scikit-learn) groups the nodes by position, run with k = 7 and k = 3, ten initialisations and a fixed random seed so results reproduce.
What it found
- With k = 7, clusters of 75–95 nodes; with k = 3, about 200 each — the trade-off between detail and a high-level view.
- Low-energy nodes (under 20) appear in every cluster, so position alone can't find the nodes that need attention: energy needs its own analysis.
- Results are shown as 2-D network plots and an interpolated 3-D energy surface.
More systems