033. (8.27-9.1) Análisis de componentes principales


La reducción de la dimensionalidad se puede utilizar como un paso previo al tratamiento, aplicando los datos a los datos antes de limpiar otros algoritmos. Existen métodos de reducción de dimensionalidad comunes que se aplican a datos no etiquetados:

Análisis de componentes principales, análisis de factores (asumiendo que las variables ocultas y los datos son una combinación lineal de estas variables ocultas y algo de ruido), análisis de componentes independientes (asumiendo que los datos son un resultado de observación mixto de múltiples fuentes de datos).

El análisis de componentes principales (PCA) es un algoritmo de reducción de dimensionalidad muy básico y uno de los algoritmos no supervisados ​​más utilizados. Es especialmente adecuado para visualización de datos, filtrado de ruido, extracción de características (no selección de características) e ingeniería de características.

A través del PCA para la reducción de dimensionalidad, podemos obtener las ventajas del árbol de decisión y SVM al mismo tiempo: por un lado, obtenemos un clasificador que es tan simple como la toma de decisiones, y el intervalo de clasificación es tan bueno como SVM.

Introducción

Tome dos variables como ejemplo En el análisis de componentes principales, una forma de cuantificar la relación entre dos variables es encontrar un conjunto de ejes principales en los datos y utilizar estos ejes principales para describir el conjunto de datos.
Inserte la descripción de la imagen aquí
Inserte la descripción de la imagen aquí
Estos vectores representan el eje principal de los datos . La longitud de la flecha en la figura anterior representa la "importancia" de cada eje en los datos de entrada, más precisamente, mide la varianza de los datos proyectados sobre el eje principal. La proyección de cada punto de datos en el eje principal es el "componente principal" de los datos.

PCA mueve el eje de coordenadas. El primer eje nuevo selecciona la dirección con la varianza más grande en los datos originales, y el segundo eje nuevo selecciona la dirección ortogonal al primer eje y tiene la segunda varianza más grande. El proceso se repite, el número de repeticiones es el número de características en los datos originales, y posteriormente se seleccionan componentes representativos.

En el procesamiento de señales, se considera que la señal tiene una gran variación y el ruido una pequeña variación. La relación señal / ruido es la relación entre la variación de la señal y el ruido, y cuanto más grande, mejor.

La reducción de dimensionalidad debe descartar parte de la información, pero generalmente hay dos beneficios: 1. Aumentar la densidad de muestreo de la muestra; 2. Cuando los datos se ven afectados por el ruido, el vector propio correspondiente al valor propio más pequeño a menudo se relaciona con el ruido, por lo que son descartado en Hasta cierto punto, puede tener un efecto de eliminación de ruido.

defecto:

1. La principal debilidad de la PCA a menudo se ve afectada por puntos anormales en el conjunto de datos.
2. PCA es conveniente para la implementación general, pero es difícil lograr una optimización personalizada.
3. PCA asume que las características principales de los datos se distribuyen en direcciones ortogonales Si hay varias direcciones con variaciones más grandes en direcciones no ortogonales, el efecto de PCA se reducirá en gran medida.

Comprensión matemática parcial

Inserte la descripción de la imagen aquí
(Para el problema de reducción de dimensionalidad PCA) Comprensión:
Reconstrucción reciente : debido a que la baja dimensionalidad debe usarse para expresar la alta dimensionalidad tanto como sea posible, la proyección también debe considerar la representatividad.
Máxima separabilidad : incluso si es de baja dimensión, las muestras deben distinguirse tanto como sea posible.

Con base en estos dos puntos, también se puede obtener la función de costo (función objetivo) de PCA, y es una derivación equivalente.
(Marca: No se ha entendido la representación de baja dimensión en la siguiente figura)
Inserte la descripción de la imagen aquí
Inserte la descripción de la imagen aquí
(La longitud del vector base es 1)

Peinado: reducir un conjunto de vectores N-dimensionales a K-dimensionales (K es mayor que 0, menor que N), el objetivo es seleccionar K unidades (módulo 1) en base ortogonal, de modo que después de que los datos originales se transformen a este grupo de base, cada campo La covarianza entre el par es 0, y la varianza del campo es lo más grande posible (bajo la restricción de ortogonalidad, tome las mayores variaciones de K).

Inserte la descripción de la imagen aquí

usar

1. Utilice PCA para reducir la dimensionalidad

Usar PCA para reducir la dimensionalidad significa eliminar uno o más de los componentes principales más pequeños, obteniendo así una proyección de datos de menor dimensión que retiene la mayor variación de datos, y la relación general de los datos aún se conserva aproximadamente.

Ejemplo:
Inserte la descripción de la imagen aquí
la utilidad de la reducción de dimensionalidad puede no ser obvia cuando los datos tienen solo dos dimensiones, pero cuando la dimensionalidad de los datos es muy alta, su valor se refleja, como (8 * 8 píxeles, es decir, 64 dimensiones) Clasificación de números escritos a mano.

2. El significado de los ingredientes

Inserte la descripción de la imagen aquí

3. Elija la cantidad de ingredientes

En el uso real de PCA, es muy importante estimar correctamente el número de componentes utilizados para describir los datos. Podemos considerar la tasa de contribución de la varianza acumulada como una función del número de componentes para determinar el número de componentes requeridos.


Requisitos de PCA para el conocimiento matemático:
1. Comprender el significado geométrico del producto interno de vectores y el conocimiento de la multiplicación de matrices
2. Comprender la varianza y la covarianza
3. Conocimientos relacionados con el álgebra lineal

Principio y realización del análisis de componentes principales (PCA)

PCA en Python

    from sklearn.decomposition import PCA
    import matplotlib.pyplot as plt
    pca = PCA(n_components=1)
    pca.fit(data_mat)
    lowDmat = pca.transform(data_mat)  # 降维后的数据
    print('降维后的数据维度:', lowDmat.shape)
    reconMat = pca.inverse_transform(lowDmat)  # s重构数据
    print("重构后的数据维度:", reconMat.shape)  # 重构数据维度

    fig = plt.figure()
    ax = fig.add_subplot(111)
    ax.scatter(data_mat[:, 0].flatten().A[0], data_mat[:, 1].flatten().A[0], marker='^', s=90)
    ax.scatter(reconMat[:, 0], reconMat[:, 1], marker='o', s=90, c='red')
    plt.show()

Supongo que te gusta

Origin blog.csdn.net/u013598957/article/details/108265394
Recomendado
Clasificación