TL; DR: K-means es una versión escasa de PCA.
K-means y PCA generalmente se consideran dos problemas muy diferentes: uno como un algoritmo para la agrupación de datos y el otro como un marco para la reducción de la dimensión de datos. Sin embargo, están íntimamente relacionados cuando se observan ambos a través de su problema principal de factorización matricial .
¿Qué quiero decir con eso?
- Cómo saber que un modelo de similitud de documentos puede lograr un alto rendimiento / mejor calidad que los otros modelos
- ¿Cuántos tipos de técnicas utilizan los limpiadores profesionales?
- ¿Cuáles son las ideas principales detrás de los principales algoritmos de clasificación de búsqueda?
- ¿Por qué es tan lento TensorFlow?
- ¿Cuáles son los métodos de implementación con calidad de producción para los modelos de aprendizaje automático?
Primero establezcamos alguna notación para que no nos confundamos en el camino.
Supongamos que tiene un conjunto de datos con [math] P [/ math] muestras de cada dimensión [math] N [/ math], o en la jerga de aprendizaje automático, tiene puntos de datos [math] P [/ math] con [math] N [/ math] características. Este conjunto de datos se puede representar a través de una matriz [matemática] N \ veces P [/ matemática] [matemática] \ matemática {X} [/ matemática] en la que cada columna es un punto de datos y cada fila es una característica.
Con K-means y PCA, tratamos de encontrar matrices [math] \ mathbf {C} [/ math] (dimensión: [math] N \ times K [/ math]) y [math] \ mathbf {W} [ / math] (dimensión: [math] K \ times P [/ math]) tal que
[math] \ mathbf {CW} \ thickapprox \ mathbf {X} [/ math]
y por lo tanto, ambos son problemas de factorización matricial .
Sin embargo, existen diferencias importantes en términos de la estructura de [math] \ mathbf {C} [/ math] y [math] \ mathbf {W} [/ math], y cómo los interpretamos en cada caso.
Vamos a profundizar un poco más:
Con K-means, las columnas de [math] \ mathbf {C} [/ math] son centroides de grupo mientras que las columnas de [math] \ mathbf {W} [/ math] son vectores de asignación de grupo. Ver la figura a continuación.
Tenga en cuenta que cada columna en [math] \ mathbf {W} [/ math] tiene todas las entradas establecidas en cero, excepto exactamente una entrada que debe establecerse en 1 cuya ubicación determina la pertenencia al clúster. Por ejemplo, en la figura anterior, la sexta columna de [math] \ mathbf {W} [/ math] tiene un “1” en su segunda entrada, por lo que el sexto punto de datos en [math] \ mathbf {X} [/ math] pertenece al segundo grupo (verde) cuyo centroide se almacena en la segunda columna de la matriz [math] \ mathbf {C} [/ math].
Luego se puede escribir el problema de agrupación de K-means, de manera formal, como el siguiente problema de optimización:
Tenga en cuenta que al restringir cada columna de [math] \ mathbf {W} [/ math] para tener entradas no negativas (restricción de no negatividad), la norma L0 de 1 (restricción de dispersión) y la norma L2 de 1 (restricción de Ridge) , estamos diciendo esencialmente que cada columna de [math] \ mathbf {W} [/ math] debería tener exactamente un “1” y [math] K-1 [/ math] ceros.
Hasta ahora todo bien, pero ¿cómo se relaciona esto con PCA?
Es muy sencillo. ¡Simplemente ignore todas las restricciones en el problema de K-means arriba y tiene el problema de PCA!
En otras palabras, PCA es una versión relajada (sin restricciones) del problema K-means. La diferencia es que las columnas en [math] \ mathbf {C} [/ math] ahora son los componentes principales de [math] \ mathbf {X} [/ math].
De hecho, si mantiene sus lentes de factorización matricial , podrá ver conexiones interesantes entre una gran cantidad de modelos que se usan regularmente en el aprendizaje automático y el procesamiento de señales (consulte la Tabla a continuación).
Consulte el Capítulo 9 de Machine Learning Refined, disponible para descargar aquí, si desea leer más.