Importante

Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!

1
resposta

(Fundamentos de IA: investigando algoritmos e abordagens de machine learning) Faça como eu fiz: aplicando técnicas de aprendizado não supervisionado

Agora que entendi os conceitos de clustering e redução de dimensionalidade, apliquei na prática usando o dataset Iris.

No aprendizado não supervisionado, buscamos responder duas questões principais: como encontrar padrões naturais nos dados e como simplificar esses dados sem perder informações importantes.

Para isso, utilizei três técnicas: K-Means, Hierarchical Clustering e PCA.

No K-Means, os dados foram divididos em 3 grupos, onde o algoritmo organiza os pontos com base na semelhança entre eles, formando clusters automaticamente.

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

dados = load_iris()
X = dados.data

modelo_kmeans = KMeans(n_clusters=3, random_state=0, n_init=10)
labels = modelo_kmeans.fit_predict(X)

plt.figure()
plt.scatter(X[:, 2], X[:, 3], c=labels)
plt.title("Clusters gerados pelo K-Means")
plt.xlabel("Pétala comprimento")
plt.ylabel("Pétala largura")
plt.show()

No Hierarchical Clustering, foi gerado um dendrograma que mostra como os dados vão se agrupando aos poucos. Esse gráfico ajuda a entender melhor a estrutura dos dados e a definir o número ideal de clusters, observando onde faz sentido “cortar” a árvore.

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

dados = load_iris()
X = dados.data

X_norm = StandardScaler().fit_transform(X)

plt.figure(figsize=(8,4))
dendrogram(linkage(X_norm, method='complete'))
plt.title("Agrupamento Hierárquico - Dendrograma")
plt.xlabel("Amostras")
plt.ylabel("Distância")
plt.show()

Já com o PCA, reduzi as 4 variáveis do dataset para 2 componentes principais, o que facilitou a visualização dos dados em um gráfico 2D, mantendo a maior parte das informações originais.

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

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

X_padronizado = StandardScaler().fit_transform(X)

pca = PCA(n_components=2)
componentes = pca.fit_transform(X_padronizado)

plt.figure()
plt.scatter(componentes[:, 0], componentes[:, 1], c=y)
plt.title("PCA - Redução de Dimensão")
plt.xlabel("Componente 1")
plt.ylabel("Componente 2")
plt.show()

Com essas técnicas, foi possível identificar padrões escondidos, agrupar dados semelhantes e simplificar a análise visual do conjunto de dados.

Em resumo, o clustering ajuda a encontrar grupos naturais nos dados, enquanto o PCA ajuda a reduzir a complexidade sem perder informações importantes, tornando a análise mais eficiente e clara.

1 resposta

Olá, Eduardo! Tudo bem?

Parabéns por compartilhar sua experiência prática com aprendizado não supervisionado usando o dataset Iris.

Ver a aplicação das técnicas de clustering e redução de dimensionalidade em código real é exatamente o tipo de conteúdo que enriquece o aprendizado de toda a comunidade.

Você demonstrou bem como o K-Means organiza os dados em clusters com base na semelhança entre os pontos, como o Hierarchical Clustering usa o dendrograma para revelar a estrutura hierárquica dos agrupamentos, e como o PCA reduz as dimensões do dataset de forma eficiente, mantendo as informações mais relevantes para a análise.

Continue praticando com outros conjuntos de dados e experimentando novos parâmetros. Essa exploração contínua é o que consolida o aprendizado em machine learning.

Você já pensou em aplicar essas mesmas técnicas em um dataset do seu interesse pessoal ou profissional para ver quais padrões surgem?

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