Estás leyendo la publicación: Una guía para principiantes sobre la descomposición propia desde cero
Todos los algoritmos de aprendizaje automático están relacionados en algún lugar con las matemáticas. Algunos de ellos están completamente basados en matemáticas y otros son una combinación de lógica y matemáticas. Entonces, para comprender los algoritmos de aprendizaje automático, debemos conocer algunos de los conceptos matemáticos básicos. La descomposición propia es un concepto muy básico en matemáticas que da paso a la factorización de matrices y se puede utilizar en varias partes del aprendizaje automático. En este artículo, vamos a discutir la descomposición propia y cómo podemos realizarla utilizando un caso de uso normal. Los puntos principales que se discutirán en el artículo se enumeran a continuación.
Tabla de contenidos
- ¿Qué es la descomposición propia?
- Matemáticas detrás de la descomposición propia
- Descomposición propia en el aprendizaje automático
- Implementación de descomposición propia
Primero analicemos la descomposición propia.
¿Qué es la descomposición propia?
Matemáticamente, la descomposición de Eigen es una parte del álgebra lineal donde la usamos para factorizar una matriz en su forma canónica. Después de la factorización utilizando la descomposición propia, representamos la matriz en términos de sus vectores propios y valores propios. Una cosa que debe cubrirse es que solo podemos factorizar matrices cuadradas usando descomposición propia.
¿Está buscando un repositorio completo de bibliotecas de Python utilizadas en ciencia de datos, echa un vistazo aquí.
Matemáticas detrás de la descomposición propia
Podemos generar una mejor comprensión de la descomposición propia usando expresiones matemáticas. Digamos que hay un vector distinto de cero v de dimensión A que es un vector propio de una matriz N de tamaño AX A. Entonces se debe satisfacer la siguiente ecuación:
Nv = 𝜆v,
Donde 𝜆 es escalar. Si se cumple lo anterior, entonces 𝜆 se puede llamar el valor propio correspondiente a v. Geométricamente, podemos decir que un vector propio correspondiente a un valor propio de cualquier matriz es el vector que la matriz se contrae, y el valor propio correspondiente a ese vector propio define la cantidad de contracción . La ecuación anterior se puede producir para el valor propio de la siguiente manera:
() = det(N -i) = 0
Digamos que N es una matriz cuadrada y tiene un vector propio independiente qi que es lineal donde i – 1, …a. Entonces podemos factorizar N de la siguiente manera:
N = QQ-1
Donde Q es una matriz cuadrada con las dimensiones de AXA y su columna es un vector propio de N. es una matriz diagonal.
Descomposición propia en el aprendizaje automático
En lo anterior, ya hemos discutido que los vectores propios son los vectores que no son cero y pueden ser estirados por una matriz mientras su dirección no cambia y los valores propios definen la cantidad de estiramiento en los vectores propios. En la normalización, podemos decir que varias operaciones lineales o varias operaciones pueden proporcionar excelentes resultados mientras se aplican a los valores propios, no a la matriz. Y hablando de aprendizaje automático, encontramos que varias operaciones necesitan valores, no matrices. Entonces estas operaciones se pueden aplicar a los valores propios.
Encontramos principalmente el uso de la descomposición propia en la parte de reducción dimensional del aprendizaje automático. Como se discutió anteriormente, los vectores propios son los vectores que se estiran hasta un punto y los valores son la cantidad de estiramiento. La reducción dimensional también trabaja concentrando datos en uno o diferentes espacios y el método de análisis de componentes principales utiliza principalmente la descomposición propia. Este método funciona en un flujo de la siguiente manera:
- El método PCA centra los datos en un punto
- Calcula la matriz de covarianza
La covarianza es la medida de la relación entre dos puntos y después de encontrar la matriz, si se multiplican, la multiplicación da un vector. La pendiente del vector determinado converge lentamente a la varianza máxima si se repite la multiplicación. En última instancia, aquí estamos realizando la descomposición propia y encontrando el vector propio y los valores propios. Veamos cómo podemos hacer esto en códigos Python.
Implementación de descomposición propia
Hay muchas maneras de hacerlo y para realizar esto solo necesitamos una matriz. Podemos realizar esto usando la biblioteca numpy de la siguiente manera
Definición de la matriz
importar numpy como datos np = np.array([[2.5, 2.4, 2.3], [0.5, 0.7, 0.9], [2.2, 2.9, 2.7]]) datos
Producción:
Extracción de valor propio y vector
valores, vectores = np.linalg.eig(datos) print(‘vector propio:’,vectores) print(‘valores propios:’,valores)
Producción:
También podemos usar la biblioteca TensorFlow para la factorización de la matriz usando la descomposición propia de la siguiente manera
importar tensorflow como valores tf, vectores = tf.linalg.eigh(datos) print(‘vector propio:’,vectores) print(‘valores propios:’,valores)
Producción:
Ahora, uno de los principales usos de esta descomposición se encuentra en el análisis de componentes principales. El PCA del módulo sklearn lo aplica en segundo plano. Digamos que estamos realizando una reducción dimensional usando PCA, entonces podemos extraer estos valores de la siguiente manera
Montaje del PCA en matriz
from sklearn.decomposition import PCA import numpy as np print(data) pca = PCA() pca.fit(data)
Producción:
Extracción de vectores propios y valores
print(‘vectores propios:’,pca.components_) print(‘valores propios:’,pca.varianza_explicada_)
Producción:
Aquí podemos ver que este módulo de sklearn usa componentes y varianza en lugar de valores y vectores porque se vuelve más fácil para cualquier otra técnica de reducción de dimensionalidad. Para el módulo PCA, podemos compararlos como vectores propios y valores propios.
Ultimas palabras
En el artículo, hemos discutido la descomposición propia que consiste en descomponer una matriz cuadrada en su valor propio y vector propio. Junto con esto, hemos discutido cómo se utiliza en el aprendizaje automático y cómo podemos factorizar matrices usando el lenguaje python.