Построить поверхность решений деревьев решений, обученных на наборе данных ирисов#

Построить поверхность решений дерева решений, обученного на парах признаков набора данных ирисов.

См. дерево решений для получения дополнительной информации об оценщике.

Для каждой пары признаков ириса дерево решений изучает границы решений, состоящие из комбинаций простых правил пороговой обработки, выведенных из обучающих выборок.

Мы также показываем древовидную структуру модели, построенной на всех признаках.

# Authors: The scikit-learn developers
# SPDX-License-Identifier: BSD-3-Clause

Сначала загрузите копию набора данных Iris, поставляемую с scikit-learn:

from sklearn.datasets import load_iris

iris = load_iris()

Отображение решающих функций деревьев, обученных на всех парах признаков.

import matplotlib.pyplot as plt
import numpy as np

from sklearn.datasets import load_iris
from sklearn.inspection import DecisionBoundaryDisplay
from sklearn.tree import DecisionTreeClassifier

# Parameters
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]]):
    # We only take the two corresponding features
    X = iris.data[:, pair]
    y = iris.target

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

    # Plot the decision boundary
    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]],
    )

    # Plot the training points
    for i, color in zip(range(n_classes), plot_colors):
        idx = np.asarray(y == i).nonzero()
        plt.scatter(
            X[idx, 0],
            X[idx, 1],
            c=color,
            label=iris.target_names[i],
            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")
Decision surface of decision trees trained on pairs of features

Отобразите структуру одного дерева решений, обученного на всех признаках вместе.

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()
Decision tree trained on all the iris features

Общее время выполнения скрипта: (0 минут 0.803 секунды)

Связанные примеры

Анализ главных компонент (PCA) на наборе данных Iris

Анализ главных компонент (PCA) на наборе данных Iris

Построение многоклассового SGD на наборе данных iris

Построение многоклассового SGD на наборе данных iris

Построить поверхности решений ансамблей деревьев на наборе данных ирисов

Построить поверхности решений ансамблей деревьев на наборе данных ирисов

Инкрементальный PCA

Инкрементальный PCA

Галерея, созданная Sphinx-Gallery