compresión de los datos de Tarea II _ _ El análisis de componentes principales PCA

Job 2:
análisis de componentes principales: un paso, y el código de la aplicación para lograr

En primer lugar, ¿cuál es el PCA?

1, PCA Introducción

En la reducción de la necesidad de un análisis del índice mientras se minimiza la pérdida de información contenida en el índice original, se ha alcanzado el propósito de los datos recogidos para llevar a cabo un análisis global. Debido a que entre las variables existir cierta correlación , es posible la información completa de todo tipo cada variable con el índice global de menos respectivamente . Los elementos centrales en que la información de descarte el peso de la característica o inferior.

2, la aplicación de PCA

PCA se utiliza principalmente para la reducción de dimensionalidad de datos, imagen en una matriz, algunos elementos no obvias y no pueden ser utilizados para la identificación, y algunos elementos característicos es evidente en la gran varianza (varianza de un elemento puede ser medido con relación a la totalidad discreta), muestras de estos elementos es a menudo la base para el reconocimiento de imágenes. El papel del PCA es eliminar los varianza pequeña, la dimensión genérica, una variación relativamente grande a favor de la dimensión de reconocimiento. Esto reduce la dimensión de la matriz de la imagen, reduciendo la cantidad de cálculos.
Documentos de referencia

3, la reducción de datos

Referencia "Álgebra Lineal" :, en general, será capaz de analizar un subespacio dimensional n-1 en el centro de datos y la que gira el sistema de coordenadas de espacio n-dimensional de los N puntos.

Por ejemplo el espacio tridimensional, aunque la operación descrita anteriormente será datos tridimensionales en una reducción de dos dimensiones, pero los datos después de la reducción de la dimensión no se pierde ninguna información, ya que el componente de datos en la tercera dimensión son cero.
En este caso, suponiendo que los datos en el eje z 'tiene una ligera fluctuación de fase, todavía podemos representada por los datos bidimensionales descritos anteriormente, ya que podemos suponer que x', y 'eje es un componente principal de los datos de información, Z' en fluctuación puede ser el ruido .
En otras palabras, este conjunto de datos se correlaciona, los resultados de ruido en la introducción incompleta de los datos pertinentes, pero los datos en el eje z 'distribución del ángulo del origen compuesto de muy pequeña, el eje z' que tiene un gran correlación, en conjunto, se puede considerar datos x 'y' constituye un saliente en los datos del componente principal.

PCA se piensa que es n-dimensional k-dimensional mapa de características a la (k <n), el k nueva dimensión característica ortogonal, llamada un componente principal.

Obsérvese que:
1, nuevo k-dimensional re-construcción, en lugar de la simple eliminación de la función NK-dimensional restante de las características n-dimensional.
2, el significado real de la nueva dimensión concreta representada por k no lo sé, sólo sé la máquina.
Documentos de referencia

En segundo lugar, la base de conocimientos de álgebra lineal

1, la representación matricial de la grupo de transformación

En general, si tenemos M N-dimensional vector, mediante la conversión quiere que el nuevo N-dimensional espacio vectorial R está representado, a continuación, los dos primeros grupos de filas R por la matriz A, y un vector compone de una matriz en columnas B, a continuación, el producto de dos matrices AB se transforma resultado, en el que AB de un m como resultado de la conversión de la m-ésima columna. Aquí Insertar imagen Descripción
R puede ser inferior a N, y R determina el número de dimensiones datos transformados. Es decir, podemos transformar los datos en un espacio N-dimensional de una dimensión inferior a la dimensión después de la conversión depende del número de grupos. Por lo tanto esta matriz reducción de la dimensión multiplicación representación se puede representar también la transformación.

Matrix multiplicación para encontrar una explicación física :
Importancia es de dos multiplicación de la matriz de cada columna para la matriz de transformación de matriz derecha vector columna a la izquierda de cada vector es el senderismo representado por el grupo espacial a (cada columna representa los resultados de una dimensión m).
Más abstracta que una matriz de transformación lineal puede representar uno.

2, la matriz de covarianza

- covarianza (suponiendo una media de cero):

C la v ( un , si ) = 1 metro Σ yo = 1 metro un yo si yo Cov \ left (a, b \ right) = \ frac {1} {m} \ sum ^ {m} _ {i = 1} a_ {i} b_ {i} De Intuitivamente, la covarianza es representado por dos variables del error total deseado.

- matriz de covarianza:

Cálculo de la matriz de covarianza es la covarianza entre las diferentes dimensiones, en lugar de entre las diferentes muestras.
Aquí Insertar imagen Descripción
Las posiciones diagonales de la matriz valores son los elementos de la varianza , y valores en otras posiciones es la covarianza entre los elementos .

  • Cuanto mayores sean los elementos de la diagonal, más fuerte será la señal, la variable más importante; elemento indica el ruido más pequeña puede existir o variables secundarias.
  • elementos on-diagonales del tamaño correspondiente al tamaño de la correlación entre el grado de redundancia de variables observadas par.

Siempre y A es la matriz de datos sin procesar, M es la matriz de transformación de coordenadas, K es la reducción de la dimensión de la matriz de datos, que son:
UN norte × re METRO PAG × K = L norte × K A_ {N \ times D} \ cdot M_ {P \ times K} = L_ {N \ times K} En donde, A correspondiente a la matriz de covarianza C , L correspondiente a la matriz de covarianza D , C y D relación se deriva como sigue:
C P × P = 1 N A T A C_ {P \ times P} = \ frac {1} {N} A ^ {T} \ cdot A D = 1 N ( A M ) T ( A M ) = 1 N M T A T A M D = \ frac {1} {N} \ left (AM \ right) ^ {T} \ cdot \ left (AM \ right) = \ frac {1} {N} \ cdot M ^ {T} A ^ {T }A.M = M T ( 1 N A T A ) M = M T C M = M ^ {T} \ left (\ frac {1} {N} A ^ {T} A \ right) M = M ^ {T} CM Objetivo: ElDen diagonales solamente tiene valor de la matriz diagonal

Dado que, la resolución de la matriz de transformación de coordenadas M problema se puede convertir en una verdadera matriz simétrica A hacer diagonalización de resolver el problema consiste en la matriz de vectores propios.

valor de característica que corresponde al tamaño del vector de características representa el grado de importancia .
La matriz de datos original A se multiplica por el tamaño de la función de vector de izquierda a derecha con las primeras k columnas de la matriz M , se obtiene la matriz de datos después de la reducción de dimensionalidad necesitamos L .

Tres pasos de implementación, PCA

Tiene los datos n-dimensional m.

  1. columnas de datos sin procesar por m filas y n columnas de la matriz X.
  2. Cada (campo de atributo que representa a) columna X es el, es decir, restando la media de la columna, para los datos de pre-procesamiento de media cero.
  3. matriz de covarianza Calculado Cov.
  4. Obtiene un valor propio de la matriz de covarianza y la correspondiente.
  5. Los vectores propios de una P. correspondiente valor propio de la matriz están dispuestos por el tamaño de izquierda a derecha, teniendo las primeras k columnas matriz
  6. Y = XP es la reducción de la dimensión de datos de dimensión k

En cuarto lugar, los implementos de programas

Aquí está basado en Python numpy implementación de la biblioteca

import numpy as np


def zeroMean(dataMat):
    average = np.mean(dataMat, axis=0)  # 按列求均值
    new_dataMat = dataMat - average
    return new_dataMat


def pca(dataMat, n):
    new_dataMat = zeroMean(dataMat)
    covMat = np.cov(new_dataMat, rowvar=0)  # covMat极为所求的协方差矩阵

    # Compute the eigenvalues and right eigenvectors of a square array.
    # 返回矩阵的特征值和特征向量
    # eigVects 每一列代表一个特征向量
    eigVals, eigVects = np.linalg.eig(np.mat(covMat))

    eigValsSort = np.argsort(eigVals)  # argsort对特征值是从小到大排序,提取其对应索引号

    n_eigValsSort = eigValsSort[-1:-(n + 1):-1]  # 提取最大的n个特征值的下标
    n_eigVects = eigVects[:, n_eigValsSort]
    low_dataMat = new_dataMat * n_eigVects

    return low_dataMat
Publicado tres artículos originales · ganado elogios 0 · Vistas 114

Supongo que te gusta

Origin blog.csdn.net/weixin_41821317/article/details/104442386
Recomendado
Clasificación