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.