Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

[Projeto] K-Means, Hierarchical Clustering e PCA no dataset Iris

Perfeito! Vou te ajudar a resolver essa tarefa de forma completa e clara, com código pronto para você experimentar o clustering (K-Means e Hierárquico) e a redução de dimensionalidade com PCA no dataset Iris.


Resolução da tarefa – Clustering + PCA no Iris

Passos que vamos seguir

  1. Carregar e explorar o dataset Iris.
  2. Aplicar K-Means e Hierarchical Clustering.
  3. Usar PCA para reduzir de 4 dimensões → 2 dimensões para visualização.
  4. Visualizar os agrupamentos.

Código Python completo

import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
from sklearn.datasets import load_iris
from sklearn.cluster import KMeans, AgglomerativeClustering
from sklearn.decomposition import PCA
from scipy.cluster.hierarchy import dendrogram, linkage

#  1. Carregar o dataset Iris
iris = load_iris()
X = iris.data
y = iris.target
feature_names = iris.feature_names

#  Explorar o dataset
df = pd.DataFrame(X, columns=feature_names)
print(df.head())

#  2. Redução de dimensionalidade com PCA
pca = PCA(n_components=2)
X_pca = pca.fit_transform(X)

#  Visualizar dados reais em 2D com as espécies
plt.figure(figsize=(8, 6))
sns.scatterplot(x=X_pca[:, 0], y=X_pca[:, 1], hue=iris.target_names[y], palette='Set1', s=100)
plt.title("Iris Dataset (PCA - Dados Reais)")
plt.xlabel("Componente Principal 1")
plt.ylabel("Componente Principal 2")
plt.show()

#  3. K-Means Clustering
kmeans = KMeans(n_clusters=3, random_state=42)
kmeans_labels = kmeans.fit_predict(X)

#  Visualizar K-Means clusters
plt.figure(figsize=(8, 6))
sns.scatterplot(x=X_pca[:, 0], y=X_pca[:, 1], hue=kmeans_labels, palette='Set2', s=100)
plt.title("K-Means Clustering no Iris Dataset (PCA)")
plt.xlabel("Componente Principal 1")
plt.ylabel("Componente Principal 2")
plt.show()

#  4. Hierarchical Clustering
hierarchical = AgglomerativeClustering(n_clusters=3)
hier_labels = hierarchical.fit_predict(X)

#  Visualizar Hierarchical clusters
plt.figure(figsize=(8, 6))
sns.scatterplot(x=X_pca[:, 0], y=X_pca[:, 1], hue=hier_labels, palette='Set3', s=100)
plt.title("Hierarchical Clustering no Iris Dataset (PCA)")
plt.xlabel("Componente Principal 1")
plt.ylabel("Componente Principal 2")
plt.show()

#  Dendrograma
plt.figure(figsize=(10, 7))
linked = linkage(X, method='ward')
dendrogram(linked, labels=y)
plt.title("Dendrograma - Hierarchical Clustering")
plt.xlabel("Amostras")
plt.ylabel("Distância")
plt.show()

O que este código faz:

Mostra os dados reais reduzidos para 2D com PCA (para ver como as espécies são distribuídas). Aplica K-Means e plota os clusters encontrados. Aplica Hierarchical Clustering e mostra os clusters com cores diferentes. Exibe o dendrograma para visualizar como os clusters hierárquicos foram construídos.


Perguntas da tarefa respondidas

Como identificar padrões e agrupamentos naturais?

Usando K-Means e Hierarchical Clustering, os algoritmos agrupam automaticamente as amostras com base na similaridade das medidas. Os gráficos mostram os padrões escondidos nos dados.

Como reduzir a complexidade dos dados?

Aplicando PCA, reduzimos as 4 dimensões (sépalas e pétalas) para 2 componentes principais, mantendo a maior parte da variância dos dados para facilitar a visualização.


Resultado: você terá gráficos mostrando os agrupamentos encontrados e conseguirá comparar com os rótulos reais das espécies.


1 resposta
solução!

Oi, Lourival! Como vai?

Agradeço por compartilhar seu código com a comunidade Alura.

Seu passo a passo ficou muito bem organizado e com uma explicação clara sobre como aplicar as técnicas. O uso do PCA para facilitar a visualização dos agrupamentos foi um ótimo recurso, e os gráficos gerados ajudam bastante a entender como os algoritmos se comportam.

Uma dica interessante para o futuro é usar o método explained_variance_ratio_ do PCA, que mostra quanto da variância dos dados está sendo preservada em cada componente:


print(pca.explained_variance_ratio_)

Esse comando ajuda a avaliar quanto da informação original está sendo mantida após a redução de dimensionalidade.

Alura Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!