Reducción de dimensionalidad (3) LLE y otras técnicas de reducción de dimensionalidad

LLE

La incrustación localmente lineal (LLE) es otra poderosa tecnología de reducción dimensional no lineal (NLDR). Es una técnica de aprendizaje múltiple y no se basa en la proyección. En pocas palabras, la forma en que funciona LLE es: primero mida la correlación lineal entre cada instancia de entrenamiento y sus vecinos más cercanos (cn), y luego busque un caso donde estas relaciones locales se puedan preservar mejor Forma de baja dimensión de representar el conjunto de entrenamiento. Este método es muy útil cuando se desarrollan múltiples curvas, especialmente cuando no hay mucho ruido en el conjunto de datos.

El siguiente código utiliza la clase LocallyLinearEmbedding de sk-learn para expandir un volumen suizo:

from sklearn.manifold import LocallyLinearEmbedding 

lle = LocallyLinearEmbedding (n_components = 2, n_neighbours = 10 ) 
X_reduced = lle.fit_transform (X)

 

El resultado del conjunto de datos 2D generado se muestra a continuación:

 

Podemos ver que el rollo suizo está completamente desenrollado y la distancia entre las instancias está muy bien mantenida localmente. Sin embargo, a mayor escala, la distancia no se ha mantenido bien: el rodillo suizo de la izquierda se estira, mientras que la derecha se aprieta. Sin embargo, LLE todavía funciona muy bien en múltiples modelos.

El método de trabajo específico de LLE es: para cada instancia de entrenamiento x ( i ) , el algoritmo identifica sus k vecinos más cercanos (k = 10 en el código anterior), y luego intenta usar estos vecinos como una función lineal Refactor x ( i ) . Más específicamente, encontrará un conjunto de pesos w i, j tal que la distancia cuadrada entre x ( i ) y ∑ w i , j x ( j ) (donde j es inicialmente 1, acumulado a la enésima) es lo más cercana posible Pequeño, si x ( j ) no es uno de los k vecinos más cercanos de x ( i ) , suponga que w i, j = 0. Entonces, el primer paso de LLE es el siguiente problema de optimización restringida, donde W es la matriz de peso, que contiene todos los pesos w i, j . La segunda restricción es para cada instancia de entrenamiento x ( i )Los pesos son una restricción estandarizada simple:

 

Después de la finalización de este paso, la matriz de ponderación W está (que comprenden los pesos W I , J ) será una relación lineal entre los ejemplos de entrenamiento locales están codificados. El segundo paso es mapear los ejemplos de entrenamiento en un espacio d-dimensional (d <n), mientras se preservan estas relaciones locales tanto como sea posible. Si Z ( I ) es X ( I ) como en el espacio de d-dimensional (Imagen), vamos a querer Z ( I ) y [Sigma W I , J Z ( j ) (donde j es inicialmente 1, el acumulado La distancia cuadrada a m) es lo más pequeña posible. Esta idea condujo al siguiente problema de optimización restringida (como se muestra en la fórmula a continuación). Es muy similar al primer paso, pero en lugar de arreglar la instancia y encontrar el peso óptimo, hace lo contrario: mantener el peso fijo y encontrar la posición óptima de la imagen de la instancia en un espacio de baja dimensión. Lo principal es que aquí Z es una matriz que contiene todo z ( i ) .

 

 La implementación LLE de sk-learn, su complejidad computacional, la complejidad de encontrar k vecinos más cercanos es O ( m log ( m ) n log ( k )), la complejidad de optimizar pesos es O ( mnk 3 ), y la construcción La complejidad de la representación espacial de baja dimensión es O ( dm 2 ). Es una pena que m 2 en la última fórmula haga que este algoritmo sea muy malo para la expansión de conjuntos de datos muy grandes.

 

Otras técnicas de reducción de dimensionalidad.

Existen muchas otras técnicas de reducción de dimensionalidad, algunas de las cuales se proporcionan en sk-learn. Estas son las más populares:

  • Proyección aleatoria
    • Como su nombre lo indica, se utiliza una proyección lineal aleatoria para proyectar los datos en un espacio de baja dimensión. Esto suena extraño, pero resulta que esta proyección aleatoria en realidad puede preservar la distancia casi bien. La calidad de su reducción de dimensionalidad depende de la entrada de datos y la dimensión de la etiqueta de destino, pero no de la dimensión inicial. Puede consultar el paquete sklearn.random_projection para obtener más información.
  • Escalamiento multidimensional (Escalado multidimensional, MDS)
    • Reduzca las dimensiones manteniendo la distancia entre instancias
  • Isomap
    • Cree un gráfico conectando cada instancia a su vecino más cercano. Luego reduzca las dimensiones manteniendo las distancias geodésicas entre las instancias tanto como sea posible
  • Incrustación de vecinos estocásticos distribuidos en t (t-SNE)
    • Reduzca la dimensionalidad mientras mantiene instancias similares cercanas en lugar de distantes. Se utiliza principalmente para la visualización de datos, especialmente cuando se visualizan grupos de instancias en un espacio de alta dimensión (por ejemplo, visualizando imágenes MNIST en 2D).
  • Análisis discriminante lineal (LDA)
    • Es un algoritmo de clasificación, pero durante el entrenamiento, aprenderá los ejes discriminativos que mejor distinguen entre las diferentes categorías. Estos ejes se pueden usar para definir un hiperplano y los datos se pueden proyectar en este hiperplano. La ventaja de este método es que la proyección mantendrá las diferentes categorías lo más lejos posible, por lo que LDA es una buena técnica de reducción de dimensionalidad, que se puede utilizar para realizar la reducción de dimensionalidad antes de realizar otro algoritmo de clasificación (como SVM).

El siguiente diagrama muestra varias de estas tecnologías:

 

 

Supongo que te gusta

Origin www.cnblogs.com/zackstang/p/12678522.html
Recomendado
Clasificación