Ya, karena pengelompokan juga dapat mengalami masalah pemasangan berlebihan. Misalnya, peningkatan jumlah cluster akan selalu "meningkatkan kinerja".
Berikut ini satu demo menggunakan pengelompokan K-Means:
Fungsi objektif K-means adalah (detail notasi dapat ditemukan di sini )
J=∑i = 1k∑j = 1n∥x( j )saya-cj∥2
Dengan tujuan seperti itu, lebih rendah berarti model "lebih baik".J
Misalkan kita memiliki data berikut (data iris), memilih jumlah cluster sebagai akan selalu "lebih baik" daripada memilih jumlah cluster sebagai . Maka memilih klaster akan lebih baik dari klaster. Kita dapat melanjutkan di jalur ini dan berakhir dengan biaya : cukup buat jumlah cluster sama dengan jumlah titik data dan tempatkan semua pusat cluster pada titik yang sesuai.4354J= 0
d=iris[,c(3,4)]
res4=kmeans(d, 4,nstart=20)
res3=kmeans(d, 3,nstart=20)
par(mfrow=c(1,2))
plot(d,col=factor(res4$cluster),
main=paste("4 clusters J=",round(res4$tot.withinss,4)))
plot(d,col=factor(res3$cluster),
main=paste("3 clusters J=",round(res3$tot.withinss,4)))
Jika kami telah menunda data untuk pengujian, itu akan mencegah kami terlalu fit. Contoh yang sama, misalkan kita memilih cluster dalam jumlah besar dan menempatkan setiap pusat cluster ke poin data pelatihan. Kesalahan pengujian akan besar, karena titik data pengujian tidak akan tumpang tindih dengan data pelatihan.