Arbres de décision sur l'ensemble de données Iris

Machine LearningMachine LearningBeginner
Pratiquer maintenant

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

💡 Ce tutoriel est traduit par l'IA à partir de la version anglaise. Pour voir la version originale, vous pouvez cliquer ici

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.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL sklearn(("Sklearn")) -.-> sklearn/UtilitiesandDatasetsGroup(["Utilities and Datasets"]) ml(("Machine Learning")) -.-> ml/FrameworkandSoftwareGroup(["Framework and Software"]) sklearn(("Sklearn")) -.-> sklearn/CoreModelsandAlgorithmsGroup(["Core Models and Algorithms"]) sklearn(("Sklearn")) -.-> sklearn/ModelSelectionandEvaluationGroup(["Model Selection and Evaluation"]) sklearn/CoreModelsandAlgorithmsGroup -.-> sklearn/tree("Decision Trees") sklearn/ModelSelectionandEvaluationGroup -.-> sklearn/inspection("Inspection") sklearn/UtilitiesandDatasetsGroup -.-> sklearn/datasets("Datasets") ml/FrameworkandSoftwareGroup -.-> ml/sklearn("scikit-learn") subgraph Lab Skills sklearn/tree -.-> lab-49167{{"Arbres de décision sur l'ensemble de données Iris"}} sklearn/inspection -.-> lab-49167{{"Arbres de décision sur l'ensemble de données Iris"}} sklearn/datasets -.-> lab-49167{{"Arbres de décision sur l'ensemble de données Iris"}} ml/sklearn -.-> lab-49167{{"Arbres de décision sur l'ensemble de données Iris"}} end

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.