Skip to content
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
View the source
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.