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

[Projeto] Aplicando técnicas de aprendizado não supervisionado

Agrupamento com K-Means

# =========================================
# IMPORTAÇÃO DAS BIBLIOTECAS
# =========================================

import pandas as pd
import matplotlib.pyplot as plt
from sklearn.datasets import load_iris
from sklearn.cluster import KMeans

# =========================================
# CARREGAR O DATASET
# =========================================

iris = load_iris()
X = iris.data

# Converter para DataFrame (opcional)
df = pd.DataFrame(X, columns=iris.feature_names)

# =========================================
# APLICAR K-MEANS
# =========================================

kmeans = KMeans(n_clusters=3, random_state=42)
kmeans.fit(X)

# Rótulos dos clusters
clusters = kmeans.labels_

# =========================================
# VISUALIZAÇÃO DOS CLUSTERS
# =========================================

plt.figure()

# Usando duas dimensões para visualização:
# comprimento da pétala (coluna 2) e largura da pétala (coluna 3)
plt.scatter(X[:, 2], X[:, 3], c=clusters)

# Centros dos clusters
centros = kmeans.cluster_centers_
plt.scatter(centros[:, 2], centros[:, 3], marker='X', s=200)

plt.xlabel("Comprimento da Pétala")
plt.ylabel("Largura da Pétala")
plt.title("Clusters do K-Means (Iris Dataset)")

plt.show()

Agrupamento Hierárquico

# =========================================
# IMPORTAÇÃO DAS BIBLIOTECAS
# =========================================

import matplotlib.pyplot as plt
from sklearn.datasets import load_iris
from scipy.cluster.hierarchy import linkage, dendrogram

# =========================================
# CARREGAR O DATASET
# =========================================

iris = load_iris()
X = iris.data

# =========================================
# APLICAR HIERARCHICAL CLUSTERING
# =========================================

# Método de ligação: ward (minimiza variância)
Z = linkage(X, method='ward')

# =========================================
# GERAR DENDROGRAMA
# =========================================

plt.figure()

dendrogram(Z)

plt.title("Dendrograma - Hierarchical Clustering (Iris)")
plt.xlabel("Amostras")
plt.ylabel("Distância")

plt.show()

Hierarchical Clustering Aglomerativo

# =========================================
# IMPORTAÇÃO DAS BIBLIOTECAS
# =========================================

import matplotlib.pyplot as plt
from sklearn.datasets import load_iris
from sklearn.cluster import AgglomerativeClustering

# =========================================
# CARREGAR O DATASET
# =========================================

iris = load_iris()
X = iris.data

# =========================================
# APLICAR HCA
# =========================================

hca = AgglomerativeClustering(n_clusters=3, linkage='ward')
clusters = hca.fit_predict(X)

# =========================================
# VISUALIZAÇÃO DOS CLUSTERS
# =========================================

plt.figure()

# Usando pétalas (melhor separação)
plt.scatter(X[:, 2], X[:, 3], c=clusters)

plt.xlabel("Comprimento da Pétala")
plt.ylabel("Largura da Pétala")
plt.title("Clusters com HCA (Iris Dataset)")

plt.show()

Redução de Dimensionalidade com PCA

# =========================================
# IMPORTAÇÃO DAS BIBLIOTECAS
# =========================================

import matplotlib.pyplot as plt
from sklearn.datasets import load_iris
from sklearn.decomposition import PCA

# =========================================
# CARREGAR O DATASET
# =========================================

iris = load_iris()
X = iris.data
y = iris.target

# =========================================
# APLICAR PCA
# =========================================

pca = PCA(n_components=2)
X_pca = pca.fit_transform(X)

# =========================================
# VISUALIZAÇÃO
# =========================================

plt.figure()

plt.scatter(X_pca[:, 0], X_pca[:, 1], c=y)

plt.xlabel("Componente Principal 1")
plt.ylabel("Componente Principal 2")
plt.title("PCA - Redução para 2 Dimensões (Iris)")

plt.show()
1 resposta
solução!

Olá, Cássio! Como vai?

Parabéns pela resolução da atividade!

Observei que você explorou o K-Means para realizar agrupamento com Python, utilizou muito bem o Hierarchical Clustering para analisar relações entre amostras e ainda compreendeu a importância da redução de dimensionalidade com PCA para facilitar a visualização dos dados.

Continue postando as suas soluções, com certeza isso ajudará outros estudantes e tem grande relevância para o fórum.

Sugestão de conteúdo para você mergulhar ainda mais no tema:

Alguns materiais podem estar em inglês, mas é possível compreendê-los usando o recurso de tradução de páginas do próprio navegador.

Fico à disposição! E se precisar, conte sempre com o apoio do fórum.

Abraço e bons estudos!

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