Es cierto que el clustering de K-means y el PCA parecen tener objetivos muy diferentes y a primera vista no parecen estar relacionados. Sin embargo, como se explica en el artículo de Ding & He 2004 Agrupación de K-means mediante el análisis de componentes principales Hay una profunda conexión entre ellos.
La intuición es que el ACP busca representar todos los $n$ vectores de datos como combinaciones lineales de un pequeño número de vectores propios, y lo hace para minimizar el error medio de reconstrucción al cuadrado. En cambio, K-means trata de representar todos los $n$ vectores de datos a través de un pequeño número de centroides de clúster, es decir, representarlos como combinaciones lineales de un pequeño número de vectores de centroides de clúster, donde los pesos de la combinación lineal deben ser todos nulos, excepto el único $1$ . Esto también se hace para minimizar el error medio de reconstrucción al cuadrado.
Por lo tanto, K-means puede verse como un PCA superespeso.
El documento de Ding y He precisa esta conexión.
Desgraciadamente, el artículo de Ding y He contiene algunas formulaciones descuidadas (en el mejor de los casos) y puede ser fácilmente malinterpretado. Por ejemplo, podría parecer que Ding y He afirman haber demostrado que los centros de los clusters de la solución de clustering de K-means se encuentran en el $(K-1)$ -subespacio PCA:
Teorema 3.3. El subespacio del centroide del clúster está abarcado por el primer $K-1$ direcciones principales [...].
Para $K=2$ esto implicaría que las proyecciones en el eje PC1 serán necesariamente negativas para un cluster y positivas para otro cluster, es decir, el eje PC2 separará perfectamente los clusters.
Se trata de un error o de una redacción descuidada; en cualquier caso, tomada literalmente, esta afirmación concreta es falsa.
Empecemos por ver algunos ejemplos de juguetes en 2D para $K=2$ . Generé algunas muestras de las dos distribuciones normales con la misma matriz de covarianza pero con medias diferentes. A continuación, ejecuté tanto K-means como PCA. La siguiente figura muestra el gráfico de dispersión de los datos de arriba, y los mismos datos coloreados según la solución de K-means de abajo. También muestro la primera dirección principal como una línea negra y los centros de clase encontrados por K-means con cruces negras. El eje PC2 se muestra con la línea negra discontinua. K-means se repitió $100$ veces con semillas aleatorias para asegurar la convergencia al óptimo global.
Se puede ver claramente que, aunque los centroides de las clases tienden a estar bastante cerca de la primera dirección del PC, lo hacen no caer en ella exactamente. Además, aunque el eje PC2 separa perfectamente los conglomerados en las subparcelas 1 y 4, hay un par de puntos en el lado equivocado de éste en las subparcelas 2 y 3.
Así que la concordancia entre K-means y PCA es bastante buena, pero no es exacta.
¿Qué han demostrado Ding y He? Para simplificar, sólo consideraré $K=2$ caso. Sea el número de puntos asignados a cada cluster $n_1$ y $n_2$ y el número total de puntos $n=n_1+n_2$ . Siguiendo a Ding y He, definamos vector de indicadores de cluster $\mathbf q\in\mathbb R^n$ de la siguiente manera: $q_i = \sqrt{n_2/nn_1}$ si $i$ -ésimos puntos pertenecen al clúster 1 y $q_i = -\sqrt{n_1/nn_2}$ si pertenece al clúster 2. El vector indicador de clústeres tiene longitud unitaria $\|\mathbf q\| = 1$ y está "centrado", es decir, sus elementos suman cero $\sum q_i = 0$ .
Ding y He demuestran que la función de pérdida K-means $\sum_k \sum_i (\mathbf x_i^{(k)} - \boldsymbol \mu_k)^2$ (que el algoritmo K-means minimiza), donde $x_i^{(k)}$ es el $i$ -ésimo elemento en el clúster $k$ se puede reescribir de forma equivalente como $-\mathbf q^\top \mathbf G \mathbf q$ , donde $\mathbf G$ es el $n\times n$ Matriz Gram de productos escalares entre todos los puntos: $\mathbf G = \mathbf X_c \mathbf X_c^\top$ , donde $\mathbf X$ es el $n\times 2$ matriz de datos y $\mathbf X_c$ es la matriz de datos centrada.
(Nota: estoy utilizando una notación y una terminología que difiere ligeramente de la de su documento, pero que me parece más clara).
Así que la solución K-means $\mathbf q$ es un vector unitario centrado que maximiza $\mathbf q^\top \mathbf G \mathbf q$ . Es fácil demostrar que el primer componente principal (cuando se normaliza para tener una suma de cuadrados unitaria) es el vector propio principal de la matriz de Gram, es decir, también es un vector unitario centrado $\mathbf p$ maximizando $\mathbf p^\top \mathbf G \mathbf p$ . La única diferencia es que $\mathbf q$ se limita además a tener sólo dos valores diferentes, mientras que $\mathbf p$ no tiene esta restricción.
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 que la mayoría de las veces las soluciones de K-means (con restricciones) y de PCA (sin restricciones) se acerquen bastante entre sí, como vimos anteriormente en la simulación, pero no hay que esperar que sean idénticas. Tomando $\mathbf p$ y poniendo todos sus elementos negativos a la altura de $-\sqrt{n_1/nn_2}$ y todos sus elementos positivos a $\sqrt{n_2/nn_1}$ generalmente no dar exactamente $\mathbf q$ .
Ding y He parecen entenderlo bien porque formulan su teorema como sigue:
Teorema 2.2. Para la agrupación de K-means donde $K= 2$ la solución continua del vector indicador de cluster es el [primer] componente principal
Nótese que las palabras "solución continua". Después de demostrar este teorema, comentan además que el PCA puede utilizarse para inicializar las iteraciones de K-means, lo que tiene todo el sentido del mundo, dado que esperamos $\mathbf q$ para estar cerca de $\mathbf p$ . Pero todavía hay que realizar las iteraciones, porque no son idénticas.
Sin embargo, Ding y He desarrollan a continuación un tratamiento más general para $K>2$ y terminamos formulando el Teorema 3.3 como
Teorema 3.3. El subespacio del centroide del clúster está abarcado por el primer $K-1$ direcciones principales [...].
No he repasado las matemáticas de la sección 3, pero creo que este teorema también se refiere a la "solución continua" de K-means, es decir, su enunciado debería decir "el espacio del centroide del clúster de la solución continua de K-means se extiende [...]".
Sin embargo, Ding y He no hacen esta importante salvedad, y además escriben en su resumen que
Aquí demostramos que los componentes principales son las soluciones continuas soluciones a los indicadores discretos de pertenencia a un clúster indicadores de pertenencia a clusters para clustering de K-means. De forma equivalente, mostramos que el subespacio abarcado por los centroides de los clusters vienen dados por la expansión espectral de la matriz de covarianza de los datos truncada en $K-1$ términos.
La primera frase es absolutamente correcta, pero la segunda no. No me queda claro si se trata de una redacción (muy) descuidada o de un auténtico error. He enviado un correo electrónico muy educado a ambos autores pidiendo aclaraciones. (Actualización dos meses después: no me han contestado).
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
4 votos
El agrupamiento también puede considerarse como reducción de características. Donde se expresa cada muestra por su asignación de clúster, o se codifica de forma escasa (por lo tanto, se reduce $T$ a $k$). Ambos enfoques mantienen constante el número de puntos de datos, mientras se reducen las dimensiones de "características".