No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

Apliquemos PCA a un conjunto de imágenes

17/18
Recursos

Aportes 11

Preguntas 3

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

o inicia sesión.

Resumen de pasos fundamentales en la aplicación de PCA a un conjunto de imágenes:

  1. Definir el porcentaje de información a obtener y aplicar el método.
caras_pca = PCA(n_components = 0.5)  # 50% de información
caras_pca.fit(caras) # ejecutar PCA
  1. Mostrar el número de elementos necesarios
print(caras_pca.n_components_)
  1. Mostrar el resultado del procesamiento y evaluar
componentes = caras_pca.transform(caras)
proyeccion = caras_pca.inverse_transform(componentes)

fig, axes = plt.subplots(5, 10, figsize=(15, 8),
                       subplot_kw = {'xticks' : [], 'yticks':[]},
                        gridspec_kw = dict(hspace = 0.01, wspace = 0.01))

for i, ax in enumerate(axes.flat):
    ax.imshow(proyeccion[i].reshape(112,92), cmap = "gray")

  • Únicamente con 44 componentes podemos recuperar el 80% de la información.

Todo lo sacaron de este link, solo le cambiaron unos cuantos parametros, se supone que deben enseñar cosas que no se pueden encontrar facilmente.
Muy mal por parte de platzi.
Aqui el link:
https://medium.com/@sebastiannorena/pca-principal-components-analysis-applied-to-images-of-faces-d2fc2c083371

Interesante forma de utilizar PCA para imagenes. Tendré que repasar el curso, me gustó mucho

Alguien me explica, por favor, cómo funciona el método " .fit()".

Gracias!!

Deben de explicar un poco mejor cada termino del codigo. Uno no sabe si utilizar o no en otros problemas que tengamos. Además el mismo ejercicio se encuentra en internet.

Uff! ¡Excelente clase! El profesor Sebastián explica muy bien.

También podemos explicar cada varianza

# Verificar la varianza explicada por cada componente principal
explained_variance_ratio = pca.explained_variance_ratio_
cumulative_variance = np.cumsum(explained_variance_ratio)
print("Varianza explicada por cada componente principal:")
print(explained_variance_ratio)
print("Varianza explicada acumulada:")
print(cumulative_variance)

Para los que están el colab y tienen líos para montar las imagenes

caras = pd.DataFrame([])

for root, dirs, files in os.walk(path):  
   for file in files:
      im = imageio.imread(root+"/"+file)/255
      cara = pd.Series(im.flatten(), name=path)
      caras = caras.append(cara)
    
fig, axes = plt.subplots(5, 10, figsize=(15,8),
                       subplot_kw = {'xticks' : [], 'yticks':[]},
                        gridspec_kw = dict(hspace = 0.01, wspace = 0.01))


for i, ax in enumerate(axes.flat):
    ax.imshow(caras.iloc[i].values.reshape(112,92), cmap = "gray")
     

Excelente curso.