Sí, porque la agrupación también puede sufrir un problema de sobreajuste. Por ejemplo, aumentar el número de clústeres siempre "aumentará el rendimiento".
Aquí hay una demostración que usa la agrupación de K-Means:
La función objetivo de K-means es (los detalles de notación se pueden encontrar aquí )
J=∑i = 1k∑j = 1norte∥X( j )yo-Cj∥2
Con tal objetivo, la inferior significa "mejor" modelo.J
Supongamos que tenemos los siguientes datos (datos del iris), elegir el número de clúster como siempre será "mejor" que elegir el número de clúster como . Luego, elegir grupos será mejor que grupos. Podemos continuar en esta pista y terminar con un costo : simplemente haga que el número del grupo sea igual al número de puntos de datos y coloque todo el centro del grupo en los puntos correspondientes.4 435 54 4J= 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)))
Si tenemos datos retenidos para las pruebas, nos evitará un ajuste excesivo. El mismo ejemplo, supongamos que estamos eligiendo grupos de números grandes y colocamos cada centro de grupo en los puntos de datos de entrenamiento. El error de prueba será grande, porque los puntos de datos de prueba no se superpondrán con los datos de entrenamiento.