Деревья решений на наборе данных Iris

Machine LearningMachine LearningBeginner
Практиковаться сейчас

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

💡 Этот учебник переведен с английского с помощью ИИ. Чтобы просмотреть оригинал, вы можете перейти на английский оригинал

Введение

В этом лабораторном задании мы будем использовать датасет Iris и деревья решений для классификации типов ирисных цветов. Сначала мы визуализируем границы решений деревьев решений, обученных на парах признаков датасета Iris. Затем мы отображаем структуру одного дерева решений, обученного на всех признаках датасета Iris.

Советы по использованию ВМ

После запуска ВМ перейдите в левый верхний угол и переключитесь на вкладку Notebook, чтобы приступить к практике с Jupyter Notebook.

Иногда вам может потребоваться подождать несколько секунд, пока Jupyter Notebook полностью загрузится. Проверка операций не может быть автоматизирована из-за ограничений Jupyter Notebook.

Если вы сталкиваетесь с проблемами во время обучения, не стесняйтесь обращаться к Labby. Оставьте отзыв после занятия, и мы оперативно решим проблему для вас.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL sklearn(("Sklearn")) -.-> sklearn/ModelSelectionandEvaluationGroup(["Model Selection and Evaluation"]) sklearn(("Sklearn")) -.-> sklearn/UtilitiesandDatasetsGroup(["Utilities and Datasets"]) ml(("Machine Learning")) -.-> ml/FrameworkandSoftwareGroup(["Framework and Software"]) sklearn(("Sklearn")) -.-> sklearn/CoreModelsandAlgorithmsGroup(["Core Models and Algorithms"]) 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{{"Деревья решений на наборе данных Iris"}} sklearn/inspection -.-> lab-49167{{"Деревья решений на наборе данных Iris"}} sklearn/datasets -.-> lab-49167{{"Деревья решений на наборе данных Iris"}} ml/sklearn -.-> lab-49167{{"Деревья решений на наборе данных Iris"}} end

Загрузка датасета Iris

Первым шагом является загрузка датасета Iris с использованием scikit - learn.

from sklearn.datasets import load_iris

iris = load_iris()

Визуализация границ решений

Теперь мы визуализируем границы решений деревьев решений, обученных на парах признаков датасета 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

## Параметры
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]]):
    ## Мы берем только два соответствующих признака
    X = iris.data[:, pair]
    y = iris.target

    ## Обучаем
    clf = DecisionTreeClassifier().fit(X, y)

    ## Строим границу решений
    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]],
    )

    ## Строим обучающие точки
    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("Decision surface of decision trees trained on pairs of features")
plt.legend(loc="lower right", borderpad=0, handletextpad=0)
_ = plt.axis("tight")

Отображение структуры дерева решений

Далее мы отобразим структуру одного дерева решений, обученного на всех признаках датасета 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()

Резюме

В этом лабораторном задании мы использовали деревья решений для классификации типов ирисных цветов. Сначала мы визуализировали границы решений деревьев решений, обученных на парах признаков датасета Iris. Затем мы отобразили структуру одного дерева решений, обученного на всех признаках датасета Iris.