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 12

Preguntas 3

Ordenar por:

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

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.

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!!

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")
     

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.

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)

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

Estos son los pasos de los videos de Juan Gabriel Gomila, para comparar otras enseñanzas: Analisis de Componentes Principales - Paso a Paso \- Estandarizar los datos (para cada una de las m observaciones) \- Obtener los vectores y valores propios a partir de la matriz de covarianzas o de correlaciones o incluso la técnica de "singular vector descomposition" \- Ordenar los valores propios en orden descendente y quedarnos con los "p" que se correspondan a los "p" mayores y así disminuir el número de variables del dataset (p\
Algo interesante para analizar es la relacion de Cantidad de Componentes Vs. Porcentaje de varianza explicada, la relacion es explonencial: ![](https://static.platzi.com/media/user_upload/image-35b42794-b209-4fc6-8a01-3ef17b94fe10.jpg)

Excelente curso.