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()