Árboles de Decisión en el Conjunto de Datos Iris

Machine LearningMachine LearningBeginner
Practicar Ahora

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

💡 Este tutorial está traducido por IA desde la versión en inglés. Para ver la versión original, puedes hacer clic aquí

Introducción

En este laboratorio, usaremos el conjunto de datos Iris y árboles de decisión para clasificar los tipos de flores Iris. Primero visualizaremos los límites de decisión de los árboles de decisión entrenados con pares de características del conjunto de datos Iris. A continuación, mostraremos la estructura de un solo árbol de decisión entrenado con todas las características del conjunto de datos Iris.

Consejos sobre la VM

Una vez finalizada la inicialización de la VM, haga clic en la esquina superior izquierda para cambiar a la pestaña Cuaderno y acceder a Jupyter Notebook para practicar.

A veces, es posible que tenga que esperar unos segundos a que Jupyter Notebook termine de cargarse. La validación de las operaciones no se puede automatizar debido a las limitaciones de Jupyter Notebook.

Si tiene problemas durante el aprendizaje, no dude en preguntar a Labby. Deje sus comentarios después de la sesión y lo resolveremos rápidamente para usted.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL sklearn(("Sklearn")) -.-> sklearn/CoreModelsandAlgorithmsGroup(["Core Models and Algorithms"]) sklearn(("Sklearn")) -.-> sklearn/ModelSelectionandEvaluationGroup(["Model Selection and Evaluation"]) sklearn(("Sklearn")) -.-> sklearn/UtilitiesandDatasetsGroup(["Utilities and Datasets"]) ml(("Machine Learning")) -.-> ml/FrameworkandSoftwareGroup(["Framework and Software"]) 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{{"Árboles de Decisión en el Conjunto de Datos Iris"}} sklearn/inspection -.-> lab-49167{{"Árboles de Decisión en el Conjunto de Datos Iris"}} sklearn/datasets -.-> lab-49167{{"Árboles de Decisión en el Conjunto de Datos Iris"}} ml/sklearn -.-> lab-49167{{"Árboles de Decisión en el Conjunto de Datos Iris"}} end

Cargar el conjunto de datos Iris

El primer paso es cargar el conjunto de datos Iris usando scikit-learn.

from sklearn.datasets import load_iris

iris = load_iris()

Visualizar los límites de decisión

Ahora visualizaremos los límites de decisión de los árboles de decisión entrenados con pares de características del conjunto de datos 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]]):
    ## Solo tomamos las dos características correspondientes
    X = iris.data[:, pair]
    y = iris.target

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

    ## Grafica el limite de decisión
    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]],
    )

    ## Grafica los puntos de entrenamiento
    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("Superficie de decisión de árboles de decisión entrenados con pares de características")
plt.legend(loc="lower right", borderpad=0, handletextpad=0)
_ = plt.axis("tight")

Mostrar la estructura del árbol de decisión

A continuación, mostraremos la estructura de un solo árbol de decisión entrenado con todas las características del conjunto de datos Iris.

from sklearn.tree import plot_tree

plt.figure()
clf = DecisionTreeClassifier().fit(iris.data, iris.target)
plot_tree(clf, filled=True)
plt.title("Decision tree trained on all the iris features")
plt.show()

Resumen

En este laboratorio, usamos árboles de decisión para clasificar los tipos de flores Iris. Primero visualizamos los límites de decisión de los árboles de decisión entrenados con pares de características del conjunto de datos Iris. A continuación, mostramos la estructura de un solo árbol de decisión entrenado con todas las características del conjunto de datos Iris.