Classificação de Flores Iris com Scikit-learn

Beginner

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

Introdução

Este é um laboratório passo a passo para demonstrar o uso do Scikit-learn, uma popular biblioteca de aprendizado de máquina em Python. Usaremos o Conjunto de Dados Iris, que contém informações sobre os atributos físicos de diferentes tipos de flores de íris. O objetivo deste laboratório é mostrar como usar o Scikit-learn para realizar tarefas básicas de aprendizado de máquina, como carregamento de dados, pré-processamento de dados, seleção de recursos e visualização.

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 Bibliotecas

Começaremos importando as bibliotecas necessárias. Neste laboratório, usaremos o Scikit-learn, o NumPy e o Matplotlib.

import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
from sklearn import datasets
from sklearn.decomposition import PCA

Carregar o Conjunto de Dados Iris

Carregaremos o Conjunto de Dados Iris usando a função load_iris embutida do Scikit-learn.

iris = datasets.load_iris()
X = iris.data[:, :2]  ## apenas as duas primeiras características são selecionadas.
y = iris.target

Visualizar os Dados

Visualizaremos o Conjunto de Dados Iris usando um gráfico de dispersão. Plotaremos a Comprimento da Sépala contra a Largura da Sépala, e coloriremos os pontos com base em sua classe.

x_min, x_max = X[:, 0].min() - 0.5, X[:, 0].max() + 0.5
y_min, y_max = X[:, 1].min() - 0.5, X[:, 1].max() + 0.5

plt.figure(2, figsize=(8, 6))
plt.clf()

## Plotar os pontos de treinamento
plt.scatter(X[:, 0], X[:, 1], c=y, cmap=plt.cm.Set1, edgecolor="k")
plt.xlabel("Comprimento da Sépala")
plt.ylabel("Largura da Sépala")

plt.xlim(x_min, x_max)
plt.ylim(y_min, y_max)
plt.xticks(())
plt.yticks(())

Executar PCA

Executaremos a Análise de Componentes Principais (PCA) para reduzir a dimensionalidade do conjunto de dados. Projetamos os dados nos três primeiros componentes principais e plotamos os resultados em 3D.

fig = plt.figure(1, figsize=(8, 6))
ax = fig.add_subplot(111, projection="3d", elev=-150, azim=110)

X_reduced = PCA(n_components=3).fit_transform(iris.data)
ax.scatter(
    X_reduced[:, 0],
    X_reduced[:, 1],
    X_reduced[:, 2],
    c=y,
    cmap=plt.cm.Set1,
    edgecolor="k",
    s=40,
)

ax.set_title("Primeiras três direções PCA")
ax.set_xlabel("1º autovetor")
ax.xaxis.set_ticklabels([])
ax.set_ylabel("2º autovetor")
ax.yaxis.set_ticklabels([])
ax.set_zlabel("3º autovetor")
ax.zaxis.set_ticklabels([])

Resumo

Neste laboratório, aprendemos como carregar o Conjunto de Dados Iris usando o Scikit-learn, visualizar os dados usando o Matplotlib e executar PCA usando o Scikit-learn. Também aprendemos como projetar os dados nos três primeiros componentes principais e visualizar os resultados em 3D.