Spec-Zone.ru › scikit-learn

Примечание

Перейти в конец, чтобы скачать полный код примера или запустить этот пример в браузере через JupyterLite или Binder.

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

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

Дополнительную информацию об оценивателе см. в разделе деревья решений.

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

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

# 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
from matplotlib.colors import ListedColormap

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

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)
    disp = DecisionBoundaryDisplay.from_estimator(
        clf,
        X,
        response_method="predict",
        ax=ax,
        xlabel=iris.feature_names[pair[0]],
        ylabel=iris.feature_names[pair[1]],
        alpha=0.5,
    )

    # Plot the training points
    scatter = disp.ax_.scatter(
        X[:, 0],
        X[:, 1],
        c=y,
        cmap=ListedColormap(disp.multiclass_colors_),
        edgecolor="black",
        s=15,
    )

plt.suptitle("Decision surface of decision trees trained on pairs of features")
plt.figlegend(
    scatter.legend_elements()[0],
    iris.target_names,
    loc="lower center",
    ncols=len(iris.target_names),
)
_ = 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.728 секунды)

Launch binder
Launch JupyterLite

Download Jupyter notebook: plot_iris_dtc.ipynb

Download Python source code: plot_iris_dtc.py

Download zipped: plot_iris_dtc.zip

Похожие примеры

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

Классификация методом ближайшего центроида

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

Классификация методом ближайших соседей

© 2007–2026 The scikit-learn developers
Licensed under the 3-clause BSD License.
https://scikit-learn.org/1.9/auto_examples/tree/plot_iris_dtc.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API