Classificação por Centro Mais Próximo

Beginner

This tutorial is from open-source community. Access the source code

Introdução

Este laboratório guiará você pela implementação da Classificação por Centro Mais Próximo usando o Scikit-learn. A Classificação por Centro Mais Próximo é um método de classificação simples que funciona calculando o centroide para cada classe e, em seguida, classificando novos pontos de dados com base no centroide mais próximo.

Dicas da Máquina Virtual

Após o término da inicialização da máquina virtual, clique no canto superior esquerdo para mudar para a aba Notebook para acessar o Jupyter Notebook para praticar.

Às vezes, pode ser necessário aguardar alguns segundos para que o Jupyter Notebook termine de carregar. A validação das operações não pode ser automatizada devido a limitações no Jupyter Notebook.

Se você enfrentar problemas durante o aprendizado, sinta-se à vontade para perguntar ao Labby. Forneça feedback após a sessão e resolveremos o problema rapidamente para você.

Importar as Bibliotecas Necessárias

Primeiro, precisamos importar as bibliotecas necessárias, incluindo Numpy, Matplotlib, conjuntos de dados do Scikit-learn, NearestCentroid e DecisionBoundaryDisplay.

import numpy as np
import matplotlib.pyplot as plt
from matplotlib.colors import ListedColormap
from sklearn import datasets
from sklearn.neighbors import NearestCentroid
from sklearn.inspection import DecisionBoundaryDisplay

Carregar os Dados

Em seguida, carregamos o conjunto de dados iris do Scikit-learn e selecionamos apenas as duas primeiras características para fins de visualização.

iris = datasets.load_iris()
X = iris.data[:, :2]
y = iris.target

Criar Mapas de Cores

Criamos dois mapas de cores para fins de visualização usando a função ListedColormap do Matplotlib.

cmap_light = ListedColormap(["orange", "cyan", "cornflowerblue"])
cmap_bold = ListedColormap(["darkorange", "c", "darkblue"])

Criar e Ajustar o Classificador

Criamos uma instância do classificador Nearest Centroid com um valor de encolhimento de 0,2 e ajustamos os dados.

clf = NearestCentroid(shrink_threshold=0.2)
clf.fit(X, y)

Predizer e Medir a Precisão

Prevemos as etiquetas de classe para os dados de entrada e medimos a precisão do classificador.

y_pred = clf.predict(X)
print("Precisão: ", np.mean(y == y_pred))

Visualizar as Fronteiras de Decisão

Visualizamos as fronteiras de decisão do classificador usando a função DecisionBoundaryDisplay do Scikit-learn.

_, ax = plt.subplots()
DecisionBoundaryDisplay.from_estimator(
    clf, X, cmap=cmap_light, ax=ax, response_method="predict"
)

Plotar os Pontos de Dados

Plotamos os pontos de dados de entrada usando a função scatter do Matplotlib.

plt.scatter(X[:, 0], X[:, 1], c=y, cmap=cmap_bold, edgecolor="k", s=20)

Adicionar Título e Rótulos dos Eixos

Adicionamos um título e rótulos aos eixos do gráfico usando as funções title, xlabel e ylabel do Matplotlib.

plt.title("Classificação por Centro Mais Próximo")
plt.xlabel("Comprimento da Sépala")
plt.ylabel("Largura da Sépala")

Exibir o Gráfico

Exibimos o gráfico usando a função show do Matplotlib.

plt.show()

Resumo

Neste laboratório, aprendemos a implementar a Classificação por Centro Mais Próximo usando o Scikit-learn. Carregamos o conjunto de dados iris, criamos um classificador, previmos as etiquetas de classe, medimos a precisão e visualizamos as fronteiras de decisão e os pontos de dados de entrada.