Es cierto que el agrupamiento K-means y PCA parecen tener objetivos muy diferentes y, a primera vista, no parecen estar relacionados. Sin embargo, como se explica en el documento Ding & He 2004 K-means Clustering a través del análisis de componentes principales , existe una profunda conexión entre ellos.
La intuición es que PCA busca representar todos los vectores de datos como combinaciones lineales de un pequeño número de vectores propios, y lo hace para minimizar el error de reconstrucción cuadrático medio. Por el contrario, K-means busca representar todos los vectores de datos a través de un pequeño número de centroides de agrupación, es decir, representarlos como combinaciones lineales de una pequeña cantidad de vectores de centroide de agrupación donde los pesos de combinación lineal deben ser todos cero, excepto el único . Esto también se hace para minimizar el error de reconstrucción cuadrático medio.n 1nn1
Por lo tanto, K-means puede verse como una PCA súper dispersa.
Lo que hace el papel de Ding & He es hacerlo para hacer esta conexión más precisa.
Desafortunadamente, el documento de Ding & He contiene algunas formulaciones descuidadas (en el mejor de los casos) y puede ser fácilmente mal entendido. Por ejemplo, podría parecer que Ding & He afirman haber demostrado que los centroides de agrupación de la solución de agrupación K-means se encuentran en el subespacio PCA dimensional :(K−1)
Teorema 3.3. El subespacio centroide del clúster se extiende por las primeras
direcciones principales [...].K−1
Para esto implicaría que las proyecciones en el eje PC1 serán necesariamente negativas para un grupo y positivas para otro grupo, es decir, el eje PC2 separará los grupos perfectamente.K=2
Esto es un error o una escritura descuidada; en cualquier caso, tomado literalmente, esta afirmación particular es falsa.
Comencemos mirando algunos ejemplos de juguetes en 2D para . Generé algunas muestras de las dos distribuciones normales con la misma matriz de covarianza pero con medias variables. Luego ejecuté K-means y PCA. La siguiente figura muestra el diagrama de dispersión de los datos anteriores y los mismos datos coloreados de acuerdo con la solución K-means a continuación. También muestro la primera dirección principal como una línea negra y centroides de clase encontrados por medios K con cruces negras. El eje PC2 se muestra con la línea negra discontinua. K-means se repitió veces con semillas aleatorias para garantizar la convergencia al óptimo global.100K=2100
Se puede ver claramente que, aunque los centroides de clase tienden a estar bastante cerca de la primera dirección de PC, no caen exactamente sobre ella. Además, aunque el eje PC2 separa perfectamente los clústeres en las subparcelas 1 y 4, hay un par de puntos en el lado equivocado en las subparcelas 2 y 3.
Entonces, el acuerdo entre K-means y PCA es bastante bueno, pero no es exacto.
Entonces, ¿qué probaron Ding y Él? Por simplicidad, consideraré solo el caso . Deje que el número de puntos asignados a cada grupo sea y y el número total de puntos . Siguiendo a Ding & He, definamos el vector indicador de clúster siguiente manera: si -th puntos pertenece al clúster 1 y si pertenece al clúster 2. El vector indicador del clúster tiene una unidad de longitud y está "centrado", es decir, sus elementos suman cero .n 1 n 2 n = n 1 + n 2 q ∈ R n q i = √K=2n1n2n=n1+n2 q∈Rn iqi=-√qi=n2/nn1−−−−−−√iqi=−n1/nn2−−−−−−√∥q∥=1∑qi=0
Ding y Él muestran que la función de pérdida K-means (que minimiza el algoritmo K-means) puede reescribirse de manera equivalente como , donde es la matriz de Gram de productos escalares entre todos los puntos: , donde es la matriz de datos y es la matriz de datos centrada.∑k∑i(xi−μk)2−q⊤GqGn×nG=X⊤cXcXn×2Xc
(Nota: estoy usando notación y terminología que difiere ligeramente de su documento pero que me parece más claro).
Entonces, la solución K-means es un vector unitario centrado que maximiza . Es fácil demostrar que el primer componente principal (cuando se normaliza para tener una unidad de suma de cuadrados) es el vector propio líder de la matriz de Gram, es decir, también es un vector unitario centrado maximizing . La única diferencia es que además tiene la restricción de tener solo dos valores diferentes, mientras que no tiene esta restricción.qq⊤Gqpp⊤Gpqp
En otras palabras, K-means y PCA maximizan la misma función objetivo , con la única diferencia de que K-means tiene una restricción "categórica" adicional.
Es lógico pensar que la mayoría de las veces las soluciones K-medias (restringidas) y PCA (sin restricciones) serán bastante cercanas entre sí, como vimos anteriormente en la simulación, pero no se debe esperar que sean idénticas. Tomar y configurar todos sus elementos negativos para que sean iguales a y todos sus elementos positivos a generalmente no darán exactamente .p−n1/nn2−−−−−−√n2/nn1−−−−−−√q
Ding y Él parecen entender esto bien porque formulan su teorema de la siguiente manera:
Teorema 2.2. Para la agrupación de K-medias donde , la solución continua del vector indicador de agrupación es el [primer] componente principalK=2
Tenga en cuenta que las palabras "solución continua". Después de probar este teorema, comentan adicionalmente que PCA se puede usar para inicializar iteraciones de K-medias, lo que tiene mucho sentido dado que esperamos que esté cerca de . Pero todavía hay que realizar las iteraciones, porque no son idénticas.qp
Sin embargo, Ding y Él luego desarrollan un tratamiento más general para y terminan formulando el Teorema 3.3 comoK>2
Teorema 3.3. El subespacio centroide del clúster se extiende por las primeras
direcciones principales [...].K−1
No revisé las matemáticas de la Sección 3, pero creo que este teorema, de hecho, también se refiere a la "solución continua" de K-medias, es decir, su enunciado debería leer "espacio centroide de agrupamiento de la solución continua de K-medias es abarcado [...] ".
Ding & He, sin embargo, no hacen esta calificación importante, y además escriben en su resumen que
Aquí demostramos que los componentes principales son las soluciones continuas para los indicadores de membresía de clúster discretos para la agrupación de K-means. De manera equivalente, mostramos que el subespacio que abarcan los centroides del grupo están dados por la expansión espectral de la matriz de covarianza de datos truncada en términos .K−1
La primera oración es absolutamente correcta, pero la segunda no. No me queda claro si se trata de una escritura (muy) descuidada o un error genuino. Envié un correo electrónico muy cortésmente a ambos autores para pedirles una aclaración. (Actualización dos meses después: nunca he tenido noticias suyas).
Código de simulación Matlab
figure('Position', [100 100 1200 600])
n = 50;
Sigma = [2 1.8; 1.8 2];
for i=1:4
means = [0 0; i*2 0];
rng(42)
X = [bsxfun(@plus, means(1,:), randn(n,2) * chol(Sigma)); ...
bsxfun(@plus, means(2,:), randn(n,2) * chol(Sigma))];
X = bsxfun(@minus, X, mean(X));
[U,S,V] = svd(X,0);
[ind, centroids] = kmeans(X,2, 'Replicates', 100);
subplot(2,4,i)
scatter(X(:,1), X(:,2), [], [0 0 0])
subplot(2,4,i+4)
hold on
scatter(X(ind==1,1), X(ind==1,2), [], [1 0 0])
scatter(X(ind==2,1), X(ind==2,2), [], [0 0 1])
plot([-1 1]*10*V(1,1), [-1 1]*10*V(2,1), 'k', 'LineWidth', 2)
plot(centroids(1,1), centroids(1,2), 'w+', 'MarkerSize', 15, 'LineWidth', 4)
plot(centroids(1,1), centroids(1,2), 'k+', 'MarkerSize', 10, 'LineWidth', 2)
plot(centroids(2,1), centroids(2,2), 'w+', 'MarkerSize', 15, 'LineWidth', 4)
plot(centroids(2,1), centroids(2,2), 'k+', 'MarkerSize', 10, 'LineWidth', 2)
plot([-1 1]*5*V(1,2), [-1 1]*5*V(2,2), 'k--')
end
for i=1:8
subplot(2,4,i)
axis([-8 8 -8 8])
axis square
set(gca,'xtick',[],'ytick',[])
end