Spec-Zone.ru › scikit-learn

Примечание

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

Построение границ принятия решений для VotingClassifier

Построение границ принятия решений для VotingClassifier для двух признаков набора данных Iris.

Построение вероятностей классов первого образца в наборе данных с игрушечными данными, предсказанных тремя различными классификаторами и усреднённых VotingClassifier.

Сначала инициализируются три примерных классификатора (DecisionTreeClassifier, KNeighborsClassifier и SVC) и используются для инициализации мягкого голосования VotingClassifier с весами [2, 1, 2], что означает, что предсказанные вероятности DecisionTreeClassifier и SVC каждая учитывается в 2 раза больше, чем веса классификатора KNeighborsClassifier, когда вычисляется усреднённая вероятность.

Decision Tree (depth=4), KNN (k=7), Kernel SVM, Soft Voting
# Authors: The scikit-learn developers
# SPDX-License-Identifier: BSD-3-Clause

from itertools import product

import matplotlib.pyplot as plt

from sklearn import datasets
from sklearn.ensemble import VotingClassifier
from sklearn.inspection import DecisionBoundaryDisplay
from sklearn.neighbors import KNeighborsClassifier
from sklearn.svm import SVC
from sklearn.tree import DecisionTreeClassifier

# Loading some example data
iris = datasets.load_iris()
X = iris.data[:, [0, 2]]
y = iris.target

# Training classifiers
clf1 = DecisionTreeClassifier(max_depth=4)
clf2 = KNeighborsClassifier(n_neighbors=7)
clf3 = SVC(gamma=0.1, kernel="rbf", probability=True)
eclf = VotingClassifier(
    estimators=[("dt", clf1), ("knn", clf2), ("svc", clf3)],
    voting="soft",
    weights=[2, 1, 2],
)

clf1.fit(X, y)
clf2.fit(X, y)
clf3.fit(X, y)
eclf.fit(X, y)

# Plotting decision regions
f, axarr = plt.subplots(2, 2, sharex="col", sharey="row", figsize=(10, 8))
for idx, clf, tt in zip(
    product([0, 1], [0, 1]),
    [clf1, clf2, clf3, eclf],
    ["Decision Tree (depth=4)", "KNN (k=7)", "Kernel SVM", "Soft Voting"],
):
    DecisionBoundaryDisplay.from_estimator(
        clf, X, alpha=0.4, ax=axarr[idx[0], idx[1]], response_method="predict"
    )
    axarr[idx[0], idx[1]].scatter(X[:, 0], X[:, 1], c=y, s=20, edgecolor="k")
    axarr[idx[0], idx[1]].set_title(tt)

plt.show()

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

Launch binder
Launch JupyterLite

Download Jupyter notebook: plot_voting_decision_regions.ipynb

Download Python source code: plot_voting_decision_regions.py

Download zipped: plot_voting_decision_regions.zip

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

Построение вероятностей классов, рассчитанных VotingClassifier

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

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

Построение различных классификаторов SVM в наборе данных Iris

© 2007–2025 The scikit-learn developers
Licensed under the 3-clause BSD License.
https://scikit-learn.org/1.6/auto_examples/ensemble/plot_voting_decision_regions.html

Spec-Zone.ru

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