Reduccion de dimensiones Flashcards
Por que es importante estudiar la reduccion de dimensiones?
i) debido a que a medida que va creciendo el tamano de los datos, se requiere cada vez mas poder de computo para poder entrenar algun modelo. Ademas, puede ocurrir que se agregan features que no aportan informacion nueva y por lo tanto no tiene sentido utilizarla para entrenar modelos.
ii) visualizacion de los datos.
iii) cmopresion esde imagenes.
iv) feature engineering.
Define ‘maldicion de la dimension’.
Quitar o agregar features conlleva a que un algoritmo funcione mejor o peor y eso dependerá de qué algoritmo se utiliza y de los datos en sı́.
Como puede servir la red. de dim. como herramienta de feature eng.?
Los algoritmos de reducción de dimensiones sirven muchas veces para reducir el ruido de un set de datos filtrando los features ruidosos y devolviendo un nuevo set de features con menor cantidad de ruido.
En otros casos es posible reducir las dimensiones de nuestro set de datos a unas pocas columnas y luego agregar estas columnas al set de datos original, este aumento de dimensiones muchas veces agrega features en donde la señal es muy fuerte en relación al ruido y es frecuente que un algoritmo funcione mejor al agregar estos features con respecto a su funcionamiento con el set de datos original.
Que tipos de algoritmos existen para manipular la dimensionalidad de los datos?
Existen metodos lineales y no lineales.
Mencione algoritmos lineales y no lineales.
Lineales:
SVD y PCA, que son en realidad el mismo algoritmo.
No lineales:
son los denominados algoritmos de Manifold learning.
Por que se caracterizan los algoritmos no lineales?
Se destacan porque muchas veces pueden representar muy bien datos no lineales en dos dimensiones.
Un buen algoritmo de Manifold Learning deberı́a mantener a los punto que están cerca en los datos originales como vecinos en su representación bidimensional.
Explique SVD.
Sea A una matriz de nxm, se puede demostrar que existen tres matrics U, V y Σ tales que:
A = U ∗ Σ ∗ V T
Donde U es una matriz unitaria en nxn, V es otra matriz unitaria en mxm y Σ es una matriz diagonal en nxm.
A continuación, se muestra un método para obtener dichas matrices:
- Calcular los autovalores y autovectores de A t A.
- La matriz Σ se compone de la raiz cuadrada de los autovalores de A t A de forma diagonal y ordenados de forma descendiente.
- La matriz U se compone con los autovectores normalizados como columnas.
- La matriz V se puede obtener resolviendo el sistema AV = U Σ sabiendo que V T V es la matriz identidad.
Se ha mencionado anteriormente que U y V son matrices unitarias. Esto quiere decir que U t U = I y que las columnas de U forman una base ortonormal. Esto mismo también vale para V . En definitiva, si a una descomposición en valores singulares la multiplicamos a ambos lados por V se obtiene lo siguiente:
AV = U Σ
Esto quiere decir que si a una base ortogonal le aplico una transformación A entonces el resultado será una segunda base ortogonal donde los vectores que componen dicha base son multiplicados por un escalar.
Explique SVD reducida.
Se ha visto que Σ se obtiene a partir de la raı́z cuadrada de la matriz A t A y también se mencionó que estos valores son los que ”estiran” a la base ortogonal compuesta por los vectores U . En determinadas ocasiones, estos valores pueden ser cero y la consecuencia que traen es que anulan ciertas componentes a la hora de realizar el producto matricial y de ahı́ surge el concepto de descomposición en valores singulares reducida. Resumidamente, de los elementos σ 1 , σ 2 …σ n de la matriz Σ se pueden tomar solo aquellos r valores que son positivos de forma tal que σ 1 , σ 2 …σ r son positivos. Teniendo esto en cuenta, serı́a necesario solamente utilizar las primeras r columnas de U y las primeras r columnas de V t . Se puede demostrar que este valor r coincide con el rango de la matriz A.
En resumen, la SVD da a entender que bajo determinados escenarios se podrı́a encontrar una forma más compacta de representar la matriz A y esto da origen a la SVD para el uso de compresión de imágenes.
Explique aproximacion de rango k de una matriz.
Se ha visto con la SVD reducida que una matriz A se puede representar de una forma compacta donde utilizábamos aquellos r valores singulares no nulos puesto que eran los únicos que aportaban información y entonces permitı́a también descartar ciertos vectores de U y V .
Dicho de otra forma, se puede pensar que como los valores de la matriz Σ se encuentran ordenados de mayor a menor entonces estos valores representan un grado de importancia de los datos. Esto podrı́a dar a entender que la matriz V es una base en donde los vectores de la base están ordenados por su grado de importancia. En consecuencia, se podrı́a ir más allá de quedarse con los r valores no nulos, es decir, podrı́a ser posible quedarse con los k valores no nulos de Σ (k < r) y aproximar bastante bien a la matriz A. Esto también es conocido como aproximación de rango k.
De la misma forma que se hacı́a con r, en este escenario hay que quedarse con las primeras k columnas de U , las primeras k filas y columnas de Σ y las primeras k columnas de V .
Defina energia de una matriz.
Sumatoria de los autovalores.
Como se puede definir cual seria un buen k para utilizar la aprox. de rango k de una matriz.
Mediante la energia de la matriz.
Como se pueden agregar nuevos datos a una SVD?
Una vez calculada la SVD puede surgir la necesidad de agregar nuevas filas a la matriz A, es decir, agregar nuevos datos en las mismas dimensiones. En consecuencia, es necesario obtener la nueva SVD. La forma trivial de obtenerla es simplemente recalcular la SVD, pero esto puede llegar a ser una tarea muy costosa. La forma no trivial es intentar reutilizar la descomposición que tenemos y realizar ciertos cálculos. Si bien no hay una única forma de recalcular una SVD cuando se agregan datos, la forma más sencilla es pensar cómo se relaciona la matriz U con las demás matrices:
A = U ΣV t
De esta ecuación, se puede despejar U de la siguiente forma:
AV = U ΣV T V = U Σ
AV Σ − 1 = U ΣΣ − 1 = U
Se podrı́a pensar de este despeje que si se agregara una nueva fila a la matriz A entonces se la podrı́a multiplicar por la matriz V y luego por Σ − 1. De esta forma obtenemos su representación dentro de nuestro nuevo espacio, es decir, un nuevo vector que se agregará en la última fila de la matriz U . Si bien este método es sencillo, a medida que se van agregando datos se irá perdiendo la precisión de la SVD calculada originalmente y será necesario recalcular por completo la SVD para recuperar la precisión.
Cual es la idea de PCA?
La idea de PCA es encontrar las ”direcciones” principales de los datos, es decir, aquellas direcciones sobre las cuales podemos proyectar los datos reteniendo su variabilidad.
Indique los pasos para calcular la PCA.
Una forma sencilla de utilizar este método sobre una matriz A es la siguiente:
1. Para cada elemento de la columna de A i , restarle el promedio de dicha columna. Esto permite centrar los datos en el origen.
2. Para cada elemento de la columna A i , dividirlo por la desviación estándar de dicha columna. Esto permite escalar los datos.
3. Calcular la matriz de covarianza
cov(A) = (1/(n − 1))* At A
4. Calcular los autovalores y autovectores de la matriz de covarianza. Los autovectores conformarán las componentes principales y los autovalores indicarán la importancia de cada componente.
SVD vs PCA.
La SVD es en general mas eficiente y numéricamente mas estable que PCA dado que no hace falta construir la matriz de covarianza y es por este motivo que como método genérico lineal para reducción de dimensiones se prefiere siempre usar la SVD.