Aplicar PCA (Análisis de Componentes Principales) antes del clustering puede ayudarte a:
- Reducir la dimensionalidad del dataset.
- Eliminar ruido y redundancia.
- Mejorar visualización de los grupos.
- Hacer que algoritmos como K-means o DBSCAN funcionen mejor si los datos tienen muchas dimensiones.
🔧 Pasos para aplicar PCA antes de clustering:
from sklearn.decomposition import PCA
from sklearn.preprocessing import StandardScaler
# 1. Escalar los datos
scaler = StandardScaler()
X_scaled = scaler.fit_transform(df_country.drop('country', axis=1)) # Asegúrate que 'country' existe
# 2. Aplicar PCA
pca = PCA(n_components=2) # Elige 2 o más componentes para visualización o clustering
X_pca = pca.fit_transform(X_scaled)
# 3. Visualización opcional
import matplotlib.pyplot as plt
plt.figure(figsize=(8,6))
plt.scatter(X_pca[:, 0], X_pca[:, 1])
plt.xlabel('PCA 1')
plt.ylabel('PCA 2')
plt.title('Datos reducidos con PCA')
plt.grid(True)
plt.show()
🧪 Usar PCA con K-means (ejemplo):
from sklearn.cluster import KMeans
kmeans = KMeans(n_clusters=3, random_state=42)
clusters = kmeans.fit_predict(X_pca)
# Visualizar clustering
plt.figure(figsize=(8,6))
plt.scatter(X_pca[:, 0], X_pca[:, 1], c=clusters, cmap='viridis')
plt.xlabel('PCA 1')
plt.ylabel('PCA 2')
plt.title('Clustering con K-means después de PCA')
plt.colorbar(label='Cluster')
plt.grid(True)
plt.show()
✅ ¿Cuántos componentes usar?
Puedes revisar cuánta varianza explica cada componente:
print(pca.explained_variance_ratio_)
print("Varianza acumulada:", sum(pca.explained_variance_ratio_))
Si los primeros 2 o 3 componentes explican >80% de la varianza, puedes usarlos sin perder mucha información.