Pemetaan antara dua set hasil mudah untuk dihitung, karena informasi yang Anda peroleh dalam pengujian dapat direpresentasikan sebagai serangkaian tiga tupel: komponen pertama adalah titik (multidimensi), yang kedua adalah label kluster (arbitrer) disediakan oleh algoritma Anda, dan yang ketiga adalah label cluster (arbitrer) yang disediakan oleh algoritma referensi. Bangun oleh kkktabel klasifikasi untuk pasangan label: jika hasilnya setuju, itu akan menjadi kelipatan dari matriks permutasi. Artinya, setiap baris dan setiap kolom harus memiliki tepat satu sel bukan nol. Itu pemeriksaan sederhana untuk program. Ini juga mudah untuk melacak penyimpangan kecil dari ideal ini kembali ke poin data individual sehingga Anda dapat melihat dengan tepat bagaimana dua jawaban berbeda jika mereka berbeda sama sekali. Saya tidak akan repot-repot menghitung ukuran statistik dari perjanjian: apakah ada kesepakatan sempurna (hingga permutasi) atau tidak, dan dalam kasus terakhir Anda perlu melacak semua poin ketidaksepakatan untuk memahami bagaimana mereka terjadi. Hasilnya baik setuju atau tidak; jumlah ketidaksepakatan, bahkan pada satu titik saja, perlu diperiksa.
Anda mungkin ingin menggunakan beberapa jenis dataset untuk pengujian: (1) dataset yang diterbitkan dengan hasil k-means yang dipublikasikan; (2) dataset sintetis dengan kluster kuat yang jelas; (3) dataset sintetis tanpa pengelompokan yang jelas. (1) adalah disiplin yang baik untuk menggunakan setiap kali Anda menulis setiap matematika atau statistik Program. (2) mudah dilakukan dalam banyak cara, seperti dengan menghasilkan beberapa titik acak untuk berfungsi sebagai pusat cluster dan kemudian menghasilkan awan titik dengan secara acak memindahkan pusat cluster jumlah yang relatif kecil. (3) memberikan beberapa pemeriksaan acak yang berpotensi mengungkap perilaku tak terduga; lagi, itu adalah disiplin pengujian umum yang bagus.
saya vvsaya0 , 1 , 2 , … , n - 1nknk
d≥2uv2dxzxz
w=z−(z⋅x)x.
ywxyxydncos(2πk/n)x+sin(2πk/n)yk0n−1