Introduction
Dans ce laboratoire, nous utiliserons l'ensemble de données Iris et les arbres de décision pour classifier les types de fleurs d'iris. Nous visualiserons d'abord les limites de décision des arbres de décision entraînés sur des paires de caractéristiques de l'ensemble de données Iris. Ensuite, nous afficherons la structure d'un seul arbre de décision entraîné sur toutes les caractéristiques de l'ensemble de données Iris.
Conseils sur la machine virtuelle
Une fois le démarrage de la machine virtuelle terminé, cliquez dans le coin supérieur gauche pour basculer vers l'onglet Carnet de notes pour accéder à Jupyter Notebook pour la pratique.
Parfois, vous devrez peut-être attendre quelques secondes pour que Jupyter Notebook ait fini de charger. La validation des opérations ne peut pas être automatisée en raison des limitations de Jupyter Notebook.
Si vous rencontrez des problèmes pendant l'apprentissage, n'hésitez pas à demander à Labby. Donnez des commentaires après la session, et nous réglerons rapidement le problème pour vous.
Charger l'ensemble de données Iris
La première étape consiste à charger l'ensemble de données Iris à l'aide de scikit-learn.
from sklearn.datasets import load_iris
iris = load_iris()
Visualiser les limites de décision
Nous allons maintenant visualiser les limites de décision des arbres de décision entraînés sur des paires de caractéristiques de l'ensemble de données 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
## Paramètres
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]]):
## Nous ne prenons que les deux caractéristiques correspondantes
X = iris.data[:, pair]
y = iris.target
## Entraînement
clf = DecisionTreeClassifier().fit(X, y)
## Tracer la limite de décision
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]],
)
## Tracer les points d'entraînement
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("Surface de décision d'arbres de décision entraînés sur des paires de caractéristiques")
plt.legend(loc="lower right", borderpad=0, handletextpad=0)
_ = plt.axis("tight")
Afficher la structure de l'arbre de décision
Ensuite, nous allons afficher la structure d'un seul arbre de décision entraîné sur toutes les caractéristiques de l'ensemble de données Iris.
from sklearn.tree import plot_tree
plt.figure()
clf = DecisionTreeClassifier().fit(iris.data, iris.target)
plot_tree(clf, filled=True)
plt.title("Arbre de décision entraîné sur toutes les caractéristiques de l'iris")
plt.show()
Sommaire
Dans ce laboratoire, nous avons utilisé des arbres de décision pour classifier les types de fleurs d'iris. Nous avons d'abord visualisé les limites de décision d'arbres de décision entraînés sur des paires de caractéristiques de l'ensemble de données Iris. Ensuite, nous avons affiché la structure d'un seul arbre de décision entraîné sur toutes les caractéristiques de l'ensemble de données Iris.