Alex Xiomar Rubio Lopez
Al cmabiar la dimension a 1 los resultados brindados fueron los siguientes:
Una varianza de 0.53 conservando un solo componente
Cuando trabajas con modelos de machine learning, sumar más características parece una buena idea. Más datos, más información, mejor predicción. Pero el análisis de componentes principales (PCA) existe justamente porque esa intuición falla: a partir de cierto punto, añadir dimensiones empeora el rendimiento. Aquí entenderás por qué ocurre y cómo PCA lo resuelve con un ejemplo en Python.
Por qué más dimensiones empeoran tu modelo
Este fenómeno se llama maldición de la dimensionalidad y se nota en dos efectos concretos que afectan a cualquier algoritmo que dependa de distancias entre puntos.
Imagina 10 puntos en una línea. Están cerca. Mete esos mismos 10 puntos en un cuadrado y luego en un cubo. Con cada dimensión que añades, la distancia promedio entre puntos crece exponencialmente. Tus datos se vuelven solitarios y al modelo le cuesta encontrar patrones porque ya no hay vecinos cercanos reales.
El segundo efecto es aún más raro: en espacios de miles de dimensiones, la distancia entre cualquier par de puntos tiende a ser casi la misma. Si todas las distancias son iguales, la idea de vecino más cercano se rompe, y con ella muchos algoritmos clásicos.
¿Qué es la maldición de la dimensionalidad? Es el deterioro del rendimiento de los modelos cuando aumentan las características: los datos se vuelven escasos y las distancias entre puntos pierden significado.
El resultado práctico es que los modelos hacen overfitting, tardan más en entrenar y generalizan peor. Por eso necesitas reducir dimensiones, pero sin tirar características al azar.
Cómo funciona PCA y por qué es un cambio de base
PCA usa los eigenvectores de la matriz de covarianza, esos mismos que ya sabes calcular [01:08]. Esos vectores apuntan a las direcciones de máxima varianza, y cuando se usan dentro de PCA reciben el nombre de componentes principales.
La idea conecta directo con el concepto de cambio de base del álgebra lineal. PCA no solo encuentra ejes nuevos: rota tu sistema de coordenadas estándar (X, Y, Z) hacia esos componentes principales. Al proyectar tus datos, simplemente estás calculando sus coordenadas en un sistema de ejes más eficiente.
El proceso tiene tres pasos claros:
Así proyectas los datos a un espacio menor conservando casi toda la información útil.
Cómo aplicar PCA en Python con scikit-learn
El ejemplo parte de 300 puntos generados aleatoriamente en tres dimensiones, donde la coordenada Z es una combinación lineal de X e Y más algo de ruido [03:20]. Esto se hace a propósito: queremos que la información real viva en dos dimensiones aunque los datos parezcan tridimensionales.
Preparar los datos en una matriz
Primero apilas los vectores X, Y y Z en una matriz con np.column_stack, lo que produce una matriz de 300 filas y 3 columnas.
python import numpy as np import matplotlib.pyplot as plt from sklearn.decomposition import PCA
np.random.seed(42) n = 300 x = np.random.randn(n) y = np.random.randn(n) z = 0.6 * x + 0.2 * y + np.random.randn(n)
datos_3d = np.column_stack((x, y, z))
Aplicar PCA y leer la varianza explicada
Con PCA(n_components=2) indicas a cuántas dimensiones quieres proyectar. El método fit_transform hace todo el trabajo: calcula los componentes principales y devuelve los datos en el nuevo espacio [05:45].
python pca = PCA(n_components=2) datos_2d = pca.fit_transform(datos_3d)
varianza_explicada = pca.explained_variance_ratio_ varianza_total = varianza_explicada.sum()
En este caso, el primer componente captura cerca del 53% de la información y el segundo alrededor del 30%. Entre los dos conservan casi el 83% de la varianza total. El tercer componente, que era ruido, se descarta sin perder casi nada.
¿Qué es la varianza explicada en PCA? Es el porcentaje de información original que captura cada componente principal. Si los dos primeros suman 83%, conservas esa proporción de la estructura de los datos al reducir dimensiones.
Inspeccionar eigenvalores y eigenvectores
Puedes acceder a los valores reales con pca.explained_variance_ y a los vectores con pca.components_ [07:30]. Al imprimirlos verás algo revelador: el primer componente principal tiene valores grandes en los ejes X y Z, casi nulos en Y. Tiene sentido, porque Z fue construida como combinación lineal de X. El segundo componente, en cambio, está dominado por Y.
Qué te aporta reducir dimensiones con PCA
Al visualizar los datos originales en 3D y la proyección en 2D, los puntos forman una especie de panqueque dentro del cubo. PCA lo voltea para que veas su cara plana, conservando la estructura real [11:20]. Los eigenvectores graficados sobre la proyección casi se alinean con los ejes X e Y, confirmando dónde estaba la información.
Reducir dimensiones con PCA te sirve para tres cosas concretas:
Ahora prueba algo: cambia n_components=2 por n_components=1, vuelve a ejecutar y comparte en los comentarios qué porcentaje de varianza total conservas. ¿Crees que pasar de 3 a 1 dimensión sigue siendo un buen trato?
Alex Xiomar Rubio Lopez
Al cmabiar la dimension a 1 los resultados brindados fueron los siguientes:
Una varianza de 0.53 conservando un solo componente
Diego Silvera
Un detalle, la distancia promedio no crece exponencialmente si no como $\Theta(\sqrt(dim))$.
import numpy as np import matplotlib.pyplot as plt dim = 50 n = 1e2 mean = np.arange(dim, dtype=float) for i in range(dim): arr = np.random.uniform(-1, 1, size=(i, int(n))) dist = np.linalg.norm(arr[:, :, None] - arr[:, None, :], axis=0) dist = dist[np.triu_indices_from(dist, k=1)] mean[i] = np.mean(dist) y = np.sqrt(2 * np.arange(dim, dtype=float) / 3) plt.plot(mean, label="Distancia media real") plt.plot(y, label="Distancia media teórica") plt.legend() plt.show()
Gabriel Obregón
📊 PCA y reducción de dimensionalidad en Machine Learning
🧠 IDEA CLAVE
➡️ Más dimensiones ≠ mejores modelos
Cuando aumentan las dimensiones:
· Los datos se dispersan
· Las distancias dejan de ser útiles
· Los modelos sobreajustan
👉 Para resolverlo, usamos PCA.
⚠️ MALDICIÓN DE LA DIMENSIONALIDAD
❓ ¿Qué es?
Un problema que aparece al trabajar en espacios de alta dimensión, donde los datos se comportan de forma poco intuitiva.
🔍 ¿Por qué afecta a los modelos?
· 📏 La distancia promedio entre puntos crece
· 🎭 Todos los puntos parecen igualmente lejanos
· 🧩 Fallan los algoritmos basados en cercanía
📉 CONSECUENCIAS PRINCIPALES
🔹 Datos escasos
👤 Cada punto queda aislado
🔹 Distancias sin significado
📐 En muchas dimensiones, casi todas las distancias son iguales
🔹 Overfitting
🐢 Entrenamiento lento
❌ Mala generalización
✅ BENEFICIOS DE REDUCIR DIMENSIONES
✔️ Visualización clara
👁️ Estructuras y clusters visibles en 2D o 3D
✔️ Mayor eficiencia
⚡ Modelos más rápidos
✔️ Menos ruido
🧹 Se eliminan variables irrelevantes
🔄 PCA — ANÁLISIS DE COMPONENTES PRINCIPALES
🎯 ¿Qué hace PCA?
Reduce dimensiones conservando la mayor varianza posible.
💡 Idea central
🔁 PCA realiza un cambio de base hacia las direcciones donde los datos varían más.
🧩 CONCEPTOS CLAVE
🧭 Eigenvectores
➡️ Direcciones de máxima varianza
📊 Eigenvalores
➡️ Cantidad de varianza en cada dirección
📈 Varianza explicada
➡️ Porcentaje de información conservada
🔁 PCA COMO CAMBIO DE BASE
🔄 Pasamos de:
· Ejes originales: x, y, z a
· Nuevos ejes: PC1, PC2, …
📍 Proyectar = calcular nuevas coordenadas
⭐ Conservar primeros componentes = conservar información