é um conceito que tem uma curva para entender:
PCA não é feature selection
PCA é criação de novas features a partir das originais , com identificação dos elementos mais influeciam.
from sklearn.datasets import load_iris
from sklearn.preprocessing import StandardScaler
from sklearn.decomposition import PCA
from sklearn.cluster import KMeans
import matplotlib.pyplot as plt
# Carregar dados
iris = load_iris()
X = iris.data
# Padronizar
X_scaled = StandardScaler().fit_transform(X)
# Reduzir de 4 para 2 dimensões
X_pca = PCA(n_components=2).fit_transform(X_scaled)
# Aplicar K-Means nos dados reduzidos
kmeans = KMeans(n_clusters=3, random_state=42)
clusters = kmeans.fit_predict(X_pca)
# Visualizar clusters
plt.figure(figsize=(8,5))
plt.scatter(X_pca[:, 0], X_pca[:, 1], c=clusters)
plt.scatter(
kmeans.cluster_centers_[:, 0],
kmeans.cluster_centers_[:, 1],
marker='X',
s=200
)
plt.xlabel("PC1")
plt.ylabel("PC2")
plt.title("K-Means após PCA")
plt.show()