la mejor manera de conseguir el data set es:
import sklearn.datasets
data= sklearn.datasets.fetch_olivetti_faces()
automaticamente se descarga el dataset.
Transformaciones lineales y descomposición de matrices
Lo que aprenderás sobre álgebra lineal aplicada
Podemos y debemos pensar a las matrices como transformaciones lineales
Autovalores y Autovectores
Cómo calcular los autovalores y autovectores
Descomposición de matrices
¿Cómo descompongo una matriz no cuadrada (SVD)?
Las tres transformaciones
Aplicación de las matrices D y V y U y su efecto en la transformación
¿Cómo interpretar los valores singulares?
Aplicaciones de SVD a una imagen
Una imagen es una matriz
Apliquemos la descomposición SVD a una imagen
Buscando la cantidad de valores singulares que nos sirvan
¿Qué es una pseudo inversa de Moore Penrose y cómo calcularla?
Usando la pseudo inversa para resolver un sistema sobredeterminando
Aplicando Álgebra Lineal: Análisis de Componentes Principales (PCA)
¿Qué es PCA?
Preparando el conjunto de imágenes para aplicar PCA
Apliquemos PCA a un conjunto de imágenes
Cierre del curso
Aún no tienes acceso a esta clase
Crea una cuenta y continúa viendo este curso
Aportes 15
Preguntas 2
la mejor manera de conseguir el data set es:
import sklearn.datasets
data= sklearn.datasets.fetch_olivetti_faces()
automaticamente se descarga el dataset.
En la siguiente clase en el sistema de archivos se puede acceder a las imágenes y a todos los archivos del curso. La carpeta que utiliza se encuentra en la sección de PCA, llamada “imagenes”. Sólo es necesario descargar esa carpeta.
Buenas, les dejo una libreria que hice en python para aplicar transformacion PCA de manera rapida y sencilla. Espero que les sea útil.
La web GitDown permite descargar la carpeta deseada de un proyecto solo hay que indicarle la [rl y listo, es cómodo y fácil.
“El proceso de PCA identifica aquellas direcciones en las que la varianza es mayor. Como la varianza de una variable se mide en su misma escala elevada al cuadrado, si antes de calcular las componentes no se estandarizan todas las variables para que tengan media 0 y desviación estándar 1, aquellas variables cuya escala sea mayor dominarán al resto. De ahí que sea recomendable estandarizar siempre los datos”.
Para los que no saben usar el dataset de scikit learn que compartio johanR
, con ese dataset no hay necesidad de usar imageio para cargar las imagenes, porque ya al hacer:
import sklearn.datasets
data= sklearn.datasets.fetch_olivetti_faces()
Alli se descarga automaticamente, como dice johanR
, todo el dataset en la variable data
tampoco es necesario normalizar los valores porque ya en el dataset estan normalizados, lo unico que se necesitaria es consumirlos.
la variable data
contiene el dataset, pero los valores estarian dentro de data.data
.
Ademas, data.data
es un array almacena individualmente cada imagen en cada posicion del mismo.
La imagen esta almacenada como una tira de valores (todos los valores en una sola dimension), como necesitamos es una matriz, le aplicaremos un reshape.
Las imagenes tienen 4096 valores en una dimension, el cual es un tamaño de 64 x 64 en dos dimensiones, entonces por ejemplo hariamos algo asi:
imagen_1 = data.data[0].reshape(64, 64)
imagen_2 = data.data[1].reshape(64, 64)
De esa forma estarian manipulando la misma matriz normalizada del profesor, por ejemplo para mostrar la imagen numero 6 del dataset seria asi:
plt.imshow(data.data[5].reshape(64,64), cmap='gray')
Para no ver los ejes cartesianos pueden usar tambien esto:
ax.set_axis_off()
Aunque si bien puede ser más fácil descargar las imágenes de la libreria de sklearn, con este código aprendemos a cargar nuestros propios datasets de imágenes, vale la pena entenderlo.
En el minuto 10:05, para saber las dimensiones a las que se debe volver a dar forma basta con ejecutar:
im.shape
Si quieren evitar complicarse importando el dataset de sklearn y prefieren seguir directamente a como lo hizo el profesor, les dejo como subir el database para tenerlo disponible en Jupyter (en Windows):
Les dejo el dataset para que lo descarguen
Entra en tu explorador de archivos y sigue la ruta OS(C:) /Usuarios/TuNombreDeUsuario/Documents/Platzi/ CarpetaDondeTengasGuardadoLaClaseEnJupyter
Obtener el archivo con el dataset que envié antes
Copiar la carpeta con el dataset a la ruta que usa el profesor: "imagenes/s3/3.pgm
¡Es todo! La carpeta aparecerá disponible para su uso en Jupyter y podrán utilizar el código que muestra el profesor.
Para poder abrir la imagen en google colab yo usé las siguientes líneas de código, además de subir la carpeta a mi drive
<code>
from google.colab import drive
drive.mount('/content/drive')
%cd "/content/drive/MyDrive/Colab Notebooks/Curso AL aplicada a machine learning/Img/imagenes/s3"
im = imageio.imread("./3.pgm")
Algunas opciones para poder cargar los datos:
import sklearn.datasets
im1= sklearn.datasets.fetch_olivetti_faces()
im3 = imageio.imread('imagenes/s3/3.pgm')
im2 = imageio.imread(r'D:\VS Code\imagenes\s7\7.pgm')
no entendí muy bien dado que no tengo una carpeta con tantas caras 😦
¿Quieres ver más aportes, preguntas y respuestas de la comunidad? Crea una cuenta o inicia sesión.