Bagian I menyiapkan bekal matematika dan Python. Bagian II membangun K-means dari inersia dan algoritma Lloyd, memandangnya sebagai coordinate descent, majorization-minimization, dan langkah Newton, lalu menulis ulang KMeans scikit-learn dari nol sampai hasilnya sama. Bagian III membahas k-means++, cara memilih banyaknya klaster, dan cara menilai hasil. Bagian IV memperluas K-means ke campuran Gaussian, K-medoids, divergensi Bregman, kernel K-means, dan spectral clustering. Bagian V membahas algoritma Elkan dan Hamerly, mini-batch K-means, fuzzy c-means, bisecting K-means, dan klaster seimbang. Bagian VI membawa K-means ke kuantisasi vektor dan kompresi gambar, studi kasus segmentasi pelanggan toko daring, serta HDBSCAN dan coreset.
Setiap algoritma ditulis dari nol dengan NumPy lebih dahulu, lalu dicocokkan dengan scikit-learn, sering sampai angka desimal terakhir. Setiap bab memuat contoh soal dengan jawaban langkah demi langkah. Semua angka dan gambar berasal dari kode pendamping yang tersedia bebas di GitHub.
Untuk mahasiswa, dosen, dan praktisi data yang ingin memahami apa yang sebenarnya dikerjakan K-means dan kapan hasilnya dapat dipercaya. Prasyaratnya kalkulus dasar, sedikit aljabar linear, peluang dasar, dan kemampuan membaca Python.
Dosen Program Studi Matematika dan Kepala Laboratorium Komputasi dan Pemrograman, Fakultas Sains dan Teknologi, UIN Maulana Malik Ibrahim Malang. Bidang keahliannya matematika terapan, analisis numerik, dan komputasi ilmiah, dengan perhatian pada perjumpaan antara optimasi numerik dan pembelajaran mesin. Ia menulis seri buku Memahami, yang membahas metode pembelajaran mesin dari dalam dengan kode yang dapat dijalankan sendiri.