• Saltar al contenido principal
  • Skip to secondary menu
  • Saltar a la barra lateral principal
  • Saltar al pie de página
  • Inicio
  • Secciones
    • Ciencia de datos
    • Criptografía
    • Herramientas
    • Machine Learning
    • Noticias
    • Opinión
    • Productividad
    • Programación
      • JavaScript
      • Julia
      • Matlab
      • Python
      • R
  • Programación
    • JavaScript
    • Julia
    • Matlab
    • Python
    • R
  • Laboratorio
    • Encuestas: Tamaño de Muestra
    • Lotería: Probabilidad de Ganar
    • Reparto de Escaños (D’Hondt)
    • Tres en Raya con IA
  • Noticias
  • Boletín
  • Contacto
  • Tienda
    • Libros
    • Equipamiento de oficina
    • Equipamiento en movilidad
    • Tiendas afiliadas
      • AliExpress
      • Amazon
      • Banggood
      • GeekBuying
      • Lenovo

Analytics Lane

Ciencia e ingeniería de datos aplicada

  • Ciencia de datos
  • Machine Learning
  • Python
  • Pandas
  • NumPy
  • Matlab
  • Julia
  • Excel
  • IA Generativa

Selección del número de componentes principales mediante el Método de Reconstrucción del Error

febrero 28, 2025 Por Daniel Rodríguez Deja un comentario
Tiempo de lectura: 6 minutos

En el análisis de componentes principales (PCA), disponer de un método para identificar el número óptimo de componentes principales es fundamental para reducir el número de elementos sin perder información. Una forma intuitiva y práctica de hacer esto es mediante el Método de Reconstrucción del Error. Bajo este enfoque, en primer lugar, se debe cuantificar la pérdida de información al reducir la dimensionalidad de los datos. Pasa así, identificar cuántos componentes son necesarios para mantener un nivel aceptable de precisión. En esta entrada, explicaremos cómo funciona este método, mostraremos un ejemplo práctico con datos reales y crearemos una función en Python para automatizar el proceso.

Tabla de contenidos

  • 1 ¿Cuál es el Método de Reconstrucción del Error para seleccionar los componentes en PCA?
  • 2 Proceso para seleccionar el número de componentes mediante el Método de Reconstrucción del Error
  • 3 Ejemplo práctico: Conjunto de datos de Diabetes
    • 3.1 Paso 1: Carga y preprocesamiento de los datos
    • 3.2 Paso 2: Reconstrucción de los datos y cálculo del error
    • 3.3 Paso 3: Determinación del número óptimo de componentes
    • 3.4 Paso 4: Visualización del error de reconstrucción
  • 4 Conclusiones

¿Cuál es el Método de Reconstrucción del Error para seleccionar los componentes en PCA?

El Método de Reconstrucción del Error se basa en evaluar cuánto se desvían los datos originales de los datos reconstruidos utilizando un subconjunto de componentes principales. Este desvío se mide mediante un cálculo del error de reconstrucción, para los que generalmente se emplean métricas como el error cuadrático medio (MSE).

La idea central es que, al incluir más componentes principales, se captura una mayor proporción de la información original, lo que reduce el error. Cuando se utilizan todos los componentes, el error es cero, ya que los datos originales se reconstruyen perfectamente. Sin embargo, el objetivo no es usar todos los componentes, sino encontrar un equilibrio entre la cantidad de información conservada y la simplicidad del modelo.

¡Nuevo video! Aprende a seleccionar datos en Pandas con .iloc y .loc
En Analytics Lane
¡Nuevo video! Aprende a seleccionar datos en Pandas con .iloc y .loc

El objetivo principal de este método es identificar el número mínimo de componentes necesarios para que el error de reconstrucción esté por debajo de un umbral aceptable. Este enfoque es útil en aplicaciones donde se necesita garantizar una alta precisión al tiempo que se reduce la complejidad computacional.

Publicidad


Proceso para seleccionar el número de componentes mediante el Método de Reconstrucción del Error

El proceso para determinar el número óptimo de componentes principales mediante el Método de Reconstrucción del Error se puede resumir en los siguientes pasos:

  1. Ajustar el PCA al conjunto de datos: Aplicar PCA para descomponer los datos en componentes principales.
  2. Reconstruir los datos: Usar un número creciente de componentes principales para reconstruir los datos originales.
  3. Calcular el error de reconstrucción: Evaluar la diferencia entre los datos originales y los reconstruidos mediante una métrica de error, como el error cuadrático medio (MSE).
  4. Seleccionar el número óptimo de componentes: Identificar el punto en el que el error se estabiliza o cae por debajo de un umbral previamente definido.

Ejemplo práctico: Conjunto de datos de Diabetes

Para ilustrar cómo utilizar el Método de Reconstrucción del Error, trabajaremos con el conjunto de datos Diabetes de la biblioteca Scikit-learn. Este conjunto de datos incluye múltiples variables relacionadas con la salud, como niveles de glucosa, presión arterial, índice de masa corporal y edad, entre otras. Estas variables son utilizadas habitualmente en estudios médicos para predecir la progresión de la diabetes en pacientes.

El conjunto de datos Diabetes es ideal para aplicar técnicas de reducción de dimensionalidad como el análisis de componentes principales (PCA), ya que contiene diversas características que pueden tener correlaciones significativas. Reducir la dimensionalidad permitirá simplificar el análisis sin perder información relevante.

Además, este conjunto de datos ya se ha empleado en enfoques previos, como el Criterio de Kaiser y el método de la varianza explicada acumulada, lo que lo convierte en una excelente referencia para comparar diferentes metodologías.

Publicidad


Paso 1: Carga y preprocesamiento de los datos

En primer lugar, se importan los datos utilizando la función load_diabetes() de Scikit-learn. Para garantizar que todas las variables tengan el mismo peso y contribuyan de manera equitativa al análisis de componentes principales (PCA), es fundamental normalizar los datos. Este paso ajusta las características a una escala común, eliminando posibles sesgos derivados de diferencias en las unidades de medida o rangos de los datos.

import numpy as np
import pandas as pd
from sklearn.decomposition import PCA
from sklearn.preprocessing import StandardScaler
from sklearn.datasets import load_diabetes

# Cargar el conjunto de datos de diabetes
data = load_diabetes()
X = data.data
df = pd.DataFrame(X, columns=data.feature_names)

# Normalizar los datos
scaler = StandardScaler()
X_scaled = scaler.fit_transform(df)

Paso 2: Reconstrucción de los datos y cálculo del error

El error de reconstrucción se calcula como el promedio del error cuadrático entre los datos originales y los datos reconstruidos. Esto se realiza para un número creciente de componentes principales, generando un vector de errores que muestra cómo disminuye el error a medida que se incluyen más componentes.

def calcular_error_reconstruccion(X):
    """
    Calcula el error de reconstrucción para diferentes números de componentes principales.

    Parámetros:
        X (array-like): Datos originales.

    Devuelve:
        dict: Errores de reconstrucción por número de componentes principales.
    """
    errores = []

    # Creacion del objeto PCA
    pca = PCA().fit(X)

    for i in range(1, pca.n_components_ + 1):
        # Transformar y reconstruir los datos
        X_reducido = pca.transform(X)[:, :i]
        X_reconstruido = np.dot(X_reducido, pca.components_[:i, :])

        # Calcular el error cuadrático medio
        error = np.mean((X - X_reconstruido) ** 2)
        errores.append(error)
        
    return errores


# Calcular errores de reconstrucción
errores = calcular_error_reconstruccion(X_scaled)

# Imprime por pantalla los erroes
for componente, valor in enumerate(errores, 1):
    print(f"Para {componente} componentes es error es: {valor:.4f}")
Para 1 componentes es error es: 0.5976
Para 2 componentes es error es: 0.4483
Para 3 componentes es error es: 0.3278
Para 4 componentes es error es: 0.2322
Para 5 componentes es error es: 0.1660
Para 6 componentes es error es: 0.1057
Para 7 componentes es error es: 0.0521
Para 8 componentes es error es: 0.0087
Para 9 componentes es error es: 0.0009
Para 10 componentes es error es: 0.0000

Publicidad


Paso 3: Determinación del número óptimo de componentes

Con el vector de errores calculado, se define un umbral que establece el nivel de error aceptable. En este ejemplo, hemos considerado un error cuadrático medio inferior a 0,05 como criterio para seleccionar el número óptimo de componentes. Si se revisan los valores de la sección anterior, en base a este criterio, el número óptimo es 8 componentes principales. El siguiente código calcula automáticamente el valor.

# Definir umbral aceptable de error
umbral_error = 0.05

# Identificar el número óptimo de componentes
n_componentes_optimos = next(i for i, e in enumerate(errores) if e <= umbral_error) + 1

print(f"Número óptimo de componentes: {n_componentes_optimos}")
Número óptimo de componentes: 8

Paso 4: Visualización del error de reconstrucción

Para facilitar la interpretación, se puede crear un gráfico que muestre cómo evoluciona el error de reconstrucción en función del número de componentes principales.

import matplotlib.pyplot as plt

plt.figure(figsize=(10, 6))
plt.plot(range(1, len(errores) + 1), errores, marker='o', label='Error de reconstrucción')
plt.axhline(y=umbral_error, color='r', linestyle='--', label='Umbral de error')
plt.xlabel('Número de componentes principales')
plt.ylabel('Error de reconstrucción')
plt.title('Selección de componentes mediante error de reconstrucción')
plt.legend()
plt.grid()
plt.show()
Gráfica que muestra la relación entre el número de componentes principales (eje horizontal) y el error de reconstrucción medido como error cuadrático medio (eje vertical). La curva desciende rápidamente al principio y se estabiliza a partir de la octava componente, indicando que incluir más componentes a partir de este punto no reduce significativamente el error.
La gráfica muestra la evolución del error de reconstrucción en función del número de componentes principales utilizados en el análisis PCA. El eje horizontal representa el número de componentes principales seleccionados, mientras que el eje vertical indica el error cuadrático medio (MSE) al reconstruir los datos originales. Se observa que el error disminuye rápidamente al incluir las primeras componentes y se estabiliza a partir de la octava, lo que sugiere que este número de componentes es óptimo para mantener un equilibrio entre la reducción de dimensionalidad y la preservación de la información.

Este gráfico revela un punto de inflexión, donde el error se estabiliza, lo que confirma que el número óptimo de componentes es 8.

Publicidad


Conclusiones

El Método de Reconstrucción del Error es un enfoque práctico y efectivo para seleccionar el número de componentes principales en PCA. Este método permite cuantificar de manera objetiva la pérdida de información asociada con la reducción de dimensionalidad, lo que facilita encontrar un equilibrio entre la precisión y la simplicidad del modelo.

Entre sus principales ventajas, destaca:

  • Flexibilidad: Puede adaptarse a diferentes métricas de error según los objetivos específicos del análisis.
  • Intuición: Proporciona una forma visual y cuantitativa de evaluar el impacto de incluir o excluir componentes.
  • Automatización: Es fácil de implementar en Python, lo que lo convierte en una opción accesible para diversos tipos de usuarios.

Sin embargo, es importante tener en cuenta que este método requiere definir un umbral adecuado para el error de reconstrucción, lo que puede depender del contexto y los objetivos del análisis. Además, en conjuntos de datos con alta variabilidad, puede ser necesario combinar este método con otros enfoques, como la varianza explicada acumulada, para obtener resultados más robustos.

En resumen, el Método de Reconstrucción del Error es una herramienta para tener en el arsenal de técnicas para análisis de componentes principales, ya que permite reducir la dimensionalidad de los datos de manera informada y eficiente, asegurando un balance óptimo entre simplicidad y precisión.

Nota: La imagen de este artículo fue generada utilizando un modelo de inteligencia artificial.

¿Te ha parecido de utilidad el contenido?

¡Puntúalo entre una y cinco estrellas!

Puntuación promedio 0 / 5. Votos emitidos: 0

Ya que has encontrado útil este contenido...

¡Síguenos en redes sociales!

¡Siento que este contenido no te haya sido útil!

¡Déjame mejorar este contenido!

Dime, ¿cómo puedo mejorar este contenido?

Publicaciones relacionadas

  • ¡Nuevo video! Aprende a seleccionar datos en Pandas con .iloc y .loc
  • ¡Nuevo video! Aprende a eliminar filas y columnas en Pandas sin errores
  • Nuevo video en el canal: Cómo eliminar duplicados de una lista en Python
  • Nuevo video en YouTube: Trabajando con archivos JSON en Python
  • Nuevo video: Leer y guardar archivos Excel y CSV en Python
  • Nuevo video: cómo activar copiar y pegar en VirtualBox fácilmente
  • Cómo extender el tamaño de un disco en Rocky Linux 9 usando growpart y LVM
  • Curiosidad: El origen del análisis exploratorio de datos y el papel de John Tukey
  • Cómo calcular el tamaño de la muestra para encuestas

Publicado en: Ciencia de datos Etiquetado como: Machine learning, PCA

Interacciones con los lectores

Deja una respuesta Cancelar la respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

I accept the Terms and Conditions and the Privacy Policy

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.

Barra lateral principal

Suscríbete a nuestro boletín

Suscríbete al boletín semanal para estar al día de todas las publicaciones.

Política de Privacidad

Analytics Lane en redes sociales

  • Amazon
  • Bluesky
  • Facebook
  • GitHub
  • Instagram
  • Mastodon
  • Pinterest
  • RSS
  • Telegram
  • Tumblr
  • Twitter
  • YouTube

Publicidad

Entradas recientes

Cómo calcular el tamaño de la muestra para encuestas

septiembre 9, 2025 Por Daniel Rodríguez

Curiosidad: El origen del análisis exploratorio de datos y el papel de John Tukey

septiembre 4, 2025 Por Daniel Rodríguez

Cómo extender el tamaño de un disco en Rocky Linux 9 usando growpart y LVM

septiembre 2, 2025 Por Daniel Rodríguez

Publicidad

Es tendencia

  • Sistema de ecuaciones Sistemas de ecuaciones lineales con numpy publicado el octubre 29, 2018 | en Python
  • pandas Pandas: Obtener el nombre de las columnas y filas en Pandas publicado el diciembre 7, 2020 | en Python
  • Número óptimo de clústeres con Silhouette e implementación en Python publicado el junio 23, 2023 | en Ciencia de datos
  • Cómo desinstalar Oracle Database 19c en Windows publicado el noviembre 25, 2022 | en Herramientas
  • La pantalla del sistema operativo anfitrión no se adapta al de la pantalla en VirtualBox Configuración del tamaño de pantalla en VirtualBox publicado el noviembre 11, 2022 | en Herramientas

Publicidad

Lo mejor valorado

4.9 (24)

Seleccionar filas y columnas en Pandas con iloc y loc

4.6 (16)

Archivos JSON con Python: lectura y escritura

4.4 (14)

Ordenación de diccionarios en Python mediante clave o valor

4.7 (13)

Operaciones de filtrado de DataFrame con Pandas en base a los valores de las columnas

4.5 (10)

Diferencias entre var y let en JavaScript

Publicidad

Comentarios recientes

  • Pepe en Probabilidad básica: cómo entender el azar en nuestra vida diaria
  • CARLOS ARETURO BELLO CACERES en Justicio: La herramienta gratuita de IA para consultas legales
  • Piera en Ecuaciones multilínea en Markdown
  • Daniel Rodríguez en Tutorial de Mypy para Principiantes
  • Javier en Tutorial de Mypy para Principiantes

Publicidad


Footer

Analytics Lane

  • Acerca de Analytics Lane
  • Boletín de noticias
  • Contacto
  • Libros
  • Lo más popular
  • Noticias
  • Tienda
  • Tiendas afiliadas

Secciones

  • Ciencia de datos
  • Criptografía
  • Herramientas
  • Machine Learning
  • Opinión
  • Productividad
  • Programación
  • Reseñas

Sobre de Analytics Lane

En Analytics Lane tratamos de explicar los principales conceptos de la ciencia e ingeniería de datos con un enfoque práctico. Los principales temas tratados son ciencia de datos, ingeniería de datos, inteligencia artificial, machine learning, deep learning y criptografía. Además, también se habla de los principales lenguajes de programación y herramientas utilizadas por los científicos e ingenieros de datos.

Copyright © 2018-2025 Analytics Lane ·Términos y condiciones ·Política de Cookies ·Política de Privacidad ·Herramientas de privacidad ·Contacto