El análisis de componentes principales (PCA) se utiliza para descomponer un conjunto de datos multidimensionales en un conjunto de componentes ortogonales continuos con varianza máxima. En el paquete sklearn, PCA es un objeto transformador que puede usar el método de ajuste para seleccionar los primeros n componentes principales y usarlos para proyectar nuevos datos.
PCA tiene dos métodos de implementación, uno es la descomposición de valores propios y el otro es la descomposición de valores singulares. La descomposición de valores propios es un método muy bueno para extraer características matriciales, pero solo funciona en matrices cuadradas. Sin utilizar SVD, PCA solo encontrará el centro de cada característica pero no escalará los datos. Usando el parámetro whiten = True, los datos se pueden proyectar en un espacio singular y cada componente se puede escalar a una varianza de 1, lo cual es muy útil para el análisis posterior, suponiendo que cada característica es isomorfa, como la agrupación SVM y Kmeans. .
PCA no solo reduce la dimensionalidad de los datos de alta dimensión, sino que también elimina el ruido en los datos y encuentra patrones en los datos. PCA reemplaza las N características originales con menos características M. Las nuevas características son combinaciones lineales de las características antiguas, lo que maximiza la varianza de la muestra y hace que las nuevas características M estén lo menos correlacionadas posible.
SVD es un método de descomposición matricial que descompone una matriz grande en una forma manejable, que puede ser el producto de dos o más matrices.
Parámetros
Ejemplo 2: Obtener la relación entre cada componente principal y características.
Aunque PCA es útil, requiere que todos los datos se almacenen en la memoria, por lo que cuando el conjunto de datos a descomponer es demasiado grande, generará una gran cantidad de memoria. En este punto, el análisis incremental de componentes principales (IPCA) se utiliza a menudo como alternativa al análisis de componentes principales (PCA), donde se pueden obtener los mismos resultados mediante cálculos parciales.
IPCA construye una aproximación de bajo rango de los datos de entrada utilizando una cantidad de memoria independiente del número de muestras de datos de entrada. Todavía depende de la función de datos de entrada, pero cambiar el tamaño del lote puede controlar el uso de la memoria.
Esta función agrega un parámetro tamaño_lote para controlar el lote. El resto es igual, así que no entraré en detalles aquí.
Ejemplo
Para la descomposición de matrices grandes, a menudo pensamos en el algoritmo SVD. Sin embargo, cuando la dimensión de la matriz y el número de valores singulares k aumentan hasta cierto punto, el método de descomposición SVD a menudo falla debido al desbordamiento de la memoria. Por lo tanto, en comparación con SVD, el algoritmo SVD aleatorio es más adecuado para los requisitos de la descomposición matricial a gran escala y es más rápido.
Además, en algunos escenarios, esperamos descartar algunos valores singulares más bajos para reducir el ruido y mantener la mayor varianza posible, logrando así mejores resultados de predicción. Por ejemplo, el reconocimiento facial, si es de 64X64 píxeles, entonces toda la dimensión tiene 4096 píxeles. Al utilizar este enfoque, podemos retener dimensiones importantes, lo que facilita los análisis posteriores.
Utilice svd_solver= 'randomize' para aleatorizar svd y eliminar algunas matrices singulares.
El análisis de componentes principales es adecuado para la reducción de la dimensionalidad lineal de los datos. El análisis de componentes principales del kernel (KPCA) puede lograr una reducción de la dimensionalidad no lineal de los datos y puede usarse para procesar conjuntos de datos linealmente inseparables. El kernel se puede seleccionar entre {'lineal', 'poly', 'RBF', 'sigmoide', 'coseno', 'precalculado'}, el valor predeterminado es 'lineal'.
Consulta la descripción oficial para obtener más detalles, que es similar a la PCA ordinaria.
SparsePCA espera encontrar un conjunto de componentes principales dispersos que reconstruya mejor los datos. La escasez está controlada por el coeficiente de penalización L1 dado por el parámetro α. Sparsepa mini-batch es una variante de sparsepa que aumenta la velocidad pero reduce la precisión.
La desventaja del método de análisis de componentes principales es que los componentes extraídos por este método son expresiones densas, es decir, cuando se expresan mediante una combinación lineal de las variables originales, sus coeficientes son distintos de cero. Esto puede hacer que el modelo sea difícil de interpretar.
En muchos casos, los componentes fundamentales reales se pueden imaginar de forma más natural como vectores dispersos; por ejemplo, en el reconocimiento facial, los componentes principales contendrán sólo una parte de la imagen y se asignarán a partes de la cara; Los componentes principales escasos producen una representación más concisa e interpretable que enfatiza claramente qué características originales contribuyen a las diferencias entre las muestras.
Ajusta el grado de castigo ajustando α. Cuanto mayor es α, más coeficientes son 0.
TruncatedSVD es una variante del SVD ordinario que solo calcula los primeros k valores singulares especificados por el usuario. TSVD se utiliza a menudo para el análisis semántico. Es parte de LSA y puede resolver el problema de la polisemia de palabras y la polisemia.
El propósito del análisis semántico latente de LSA es descubrir el verdadero significado de los términos en documentos y consultas, es decir, la semántica latente, resolviendo así el problema descrito en la sección anterior. En concreto, se modelan grandes conjuntos de documentos con una dimensionalidad razonable, y en este espacio se representan tanto palabras como documentos. Por ejemplo, hay 2.000 documentos, incluidos 7.000 términos indexados. LSA utiliza un espacio vectorial de 100 dimensiones para representar documentos y palabras en este espacio, y luego realiza la recuperación de información en este espacio. El proceso de representación de documentos en este espacio es el proceso de descomposición de valores singulares y reducción de dimensionalidad de SVD. La reducción de dimensionalidad es el paso más importante en el análisis LSA. Mediante la reducción de dimensionalidad, se elimina el "ruido" del documento, es decir, la información irrelevante (como palabras inapropiadas o ocasionalmente palabras irrelevantes), y la estructura semántica se presenta gradualmente. En comparación con los espacios vectoriales tradicionales, las dimensiones del espacio semántico latente son más pequeñas y las relaciones semánticas son más claras.
Los ejemplos de uso son los siguientes:
Utilice un diccionario predefinido para codificar escasamente la matriz para lograr una reducción y simplificación de la dimensionalidad. Al igual que todos los lenguajes humanos se componen de palabras, el uso de diccionarios conocidos puede reducir la dimensionalidad; en segundo lugar, la escasez puede reducir el costo de los cálculos y hacer que los cálculos posteriores sean más rápidos.
Este objeto no tiene un método de ajuste. El método de transformación representa los datos como una combinación lineal de la menor cantidad posible de átomos de diccionario. Puede utilizar transform_method para controlar los parámetros de inicialización de las siguientes maneras:
La función utilizada es sklearn. descomponer. Con el aprendizaje de diccionarios, encontrará un diccionario que puede ajustarse bastante bien a los datos.
El proceso de representar datos como un diccionario sobrecompleto es similar al proceso mediante el cual el cerebro procesa datos. Se ha demostrado que el método da buenos resultados en el aprendizaje de diccionarios de parches de imágenes en tareas de procesamiento de imágenes como finalización, restauración y eliminación de ruido de imágenes, así como en tareas de supervisión y reconocimiento.
La función utilizada es sklearn. descomponer. minibatchdiagtionarylearning, una versión rápida pero menos precisa adecuada para grandes conjuntos de datos.
De forma predeterminada, MiniBatchDictionaryLearning divide los datos en pequeños lotes y los optimiza en línea reciclándolos en un número específico de iteraciones. Sin embargo, actualmente no existe ninguna condición de parada para salir de la iteración. Partial_fit también se puede utilizar para implementar el ajuste de lotes pequeños.
Extraer * * * factores sexuales de las variables.
El análisis factorial requiere una fuerte correlación entre las variables originales. De lo contrario, el análisis factorial no puede extraer las características * * * entre las variables. Si el coeficiente de correlación es inferior a 0,3, la * * * linealidad entre variables es pequeña y no es adecuada para el análisis factorial. El análisis factorial obtiene la relación entre los factores y las variables originales, para que se puedan explicar los factores.
El análisis factorial puede producir características (columnas de la matriz de carga) similares al PCA. Sin embargo, estas características no se pueden describir de manera general (por ejemplo, si son ortogonales).
La función utilizada es sklearn. descomponer. Análisis factorial.
La función utilizada es sklearn.decomposition.FastICA puede extraer una serie de componentes principales, que son los más independientes. Por lo tanto, ICA generalmente no se usa para reducir la dimensionalidad, sino para distinguir señales superpuestas. ICA no considera ruido. Para que el modelo sea correcto, se debe utilizar blanqueamiento y se puede utilizar blanqueamiento paramétrico.
ICA se usa generalmente para separar señales mixtas (llamada separación de fuente ciega) y también se puede usar como un método de reducción de dimensionalidad no lineal para encontrar algunas características dispersas.
El análisis de componentes principales supone que las señales fuente no están correlacionadas entre sí, mientras que el análisis de componentes independientes supone que las señales fuente son independientes entre sí.
El análisis de componentes principales muestra que los componentes principales son ortogonales entre sí y las muestras tienen una distribución gaussiana; el análisis de componentes independientes no requiere que las muestras obedezcan la distribución gaussiana.
La descomposición de matrices no negativas, como su nombre indica, consiste en descomponer una matriz grande no negativa en dos matrices pequeñas no negativas. En los casos en que la matriz de datos no contenga valores negativos, aplique NMF en lugar de PCA o sus variantes.
NMF puede generar componentes principales que pueden representar los datos y así explicar todo el modelo.
El parámetro init se puede utilizar para seleccionar el método de inicialización. Diferentes métodos mostrarán diferentes resultados.
En el procesamiento PCA, si las características se reducen a 600, entonces cada cara reducida dimensionalmente contiene 600 características (por lo que vemos que la cara reducida dimensionalmente tiene un aspecto "Voldemort"). Parece que la reducción de dimensionalidad es equivalente hasta eliminar algunas características detalladas, lo que resulta en la pérdida de cierta información. La manifestación más intuitiva en la imagen es la falta de definición). En el procesamiento NMF, estas 1000 características están separadas. En otras palabras, un rostro se compone de rasgos individuales como la nariz y las orejas.
LDA es un modelo de generación de temas de documentos, que es un modelo de probabilidad de generación para una colección de conjuntos de datos discretos (como corpus de texto). También es un modelo de temas para descubrir temas abstractos de una colección de documentos. LDA es una técnica de aprendizaje automático no supervisada que se puede utilizar para identificar información de temas ocultos en corpus o colecciones de documentos a gran escala.
Sklearn. descomponer. LatentDirichletAllocation es una función para LDA.
1.blogs.com/eczhou/p/5433856.html
7, /número de pieza e90900a3d03a