Árvores de Decisão no Conjunto de Dados Iris

Beginner

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

Introdução

Neste laboratório, utilizaremos o conjunto de dados Iris e árvores de decisão para classificar os tipos de flores Iris. Primeiro, visualizaremos os limites de decisão de árvores de decisão treinadas em pares de características do conjunto de dados Iris. Em seguida, exibiremos a estrutura de uma única árvore de decisão treinada em todas as características do conjunto de dados Iris.

Dicas da Máquina Virtual

Após o arranque da VM, clique no canto superior esquerdo para mudar para a aba Notebook para aceder ao Jupyter Notebook para a prática.

Por vezes, pode ser necessário esperar alguns segundos para o Jupyter Notebook terminar de carregar. A validação das operações não pode ser automatizada devido a limitações no Jupyter Notebook.

Se tiver problemas durante a aprendizagem, não hesite em contactar o Labby. Forneça feedback após a sessão e resolveremos o problema rapidamente para si.

Carregar o Conjunto de Dados Iris

O primeiro passo é carregar o conjunto de dados Iris usando o scikit-learn.

from sklearn.datasets import load_iris

iris = load_iris()

Visualizar Fronteiras de Decisão

Agora, visualizaremos as fronteiras de decisão de árvores de decisão treinadas em pares de características do conjunto de dados Iris.

import numpy as np
import matplotlib.pyplot as plt

from sklearn.datasets import load_iris
from sklearn.tree import DecisionTreeClassifier
from sklearn.inspection import DecisionBoundaryDisplay

## Parâmetros
n_classes = 3
plot_colors = "ryb"
plot_step = 0.02

for pairidx, pair in enumerate([[0, 1], [0, 2], [0, 3], [1, 2], [1, 3], [2, 3]]):
    ## Apenas as duas características correspondentes
    X = iris.data[:, pair]
    y = iris.target

    ## Treinar
    clf = DecisionTreeClassifier().fit(X, y)

    ## Plotar a fronteira de decisão
    ax = plt.subplot(2, 3, pairidx + 1)
    plt.tight_layout(h_pad=0.5, w_pad=0.5, pad=2.5)
    DecisionBoundaryDisplay.from_estimator(
        clf,
        X,
        cmap=plt.cm.RdYlBu,
        response_method="predict",
        ax=ax,
        xlabel=iris.feature_names[pair[0]],
        ylabel=iris.feature_names[pair[1]],
    )

    ## Plotar os pontos de treino
    for i, color in zip(range(n_classes), plot_colors):
        idx = np.where(y == i)
        plt.scatter(
            X[idx, 0],
            X[idx, 1],
            c=color,
            label=iris.target_names[i],
            cmap=plt.cm.RdYlBu,
            edgecolor="black",
            s=15,
        )

plt.suptitle("Superfície de decisão de árvores de decisão treinadas em pares de características")
plt.legend(loc="lower right", borderpad=0, handletextpad=0)
_ = plt.axis("tight")

Exibir a Estrutura da Árvore de Decisão

Em seguida, exibiremos a estrutura de uma única árvore de decisão treinada em todas as características do conjunto de dados Iris.

from sklearn.tree import plot_tree

plt.figure()
clf = DecisionTreeClassifier().fit(iris.data, iris.target)
plot_tree(clf, filled=True)
plt.title("Árvore de decisão treinada em todas as características do conjunto de dados Iris")
plt.show()

Resumo

Neste laboratório, utilizamos árvores de decisão para classificar os tipos de flores de íris. Primeiro, visualizamos as fronteiras de decisão de árvores de decisão treinadas em pares de características do conjunto de dados Iris. Em seguida, exibimos a estrutura de uma única árvore de decisão treinada em todas as características do conjunto de dados Iris.