绘制 VotingClassifier 的决策边界#

绘制鸢尾花数据集的两个特征的 VotingClassifier 的决策边界。

绘制玩具数据集中第一个样本的类别概率,该概率由三个不同的分类器预测并由 VotingClassifier 进行平均。

首先,初始化三个示例分类器(DecisionTreeClassifierKNeighborsClassifierSVC),并使用它们初始化一个权重为 [2, 1, 2] 的软投票 VotingClassifier,这意味着在计算平均概率时,DecisionTreeClassifierSVC 的预测概率分别计为 KNeighborsClassifier 分类器权重的 2 倍。

Decision Tree (depth=4), KNN (k=7), Kernel SVM, Soft Voting
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.860 秒)

相关示例

绘制由 VotingClassifier 计算的类别概率

绘制由 VotingClassifier 计算的类别概率

绘制在鸢尾花数据集上训练的决策树的决策面

绘制在鸢尾花数据集上训练的决策树的决策面

在鸢尾花数据集中绘制不同的支持向量机分类器

在鸢尾花数据集中绘制不同的支持向量机分类器

在鸢尾花数据集上绘制多类 SGD

在鸢尾花数据集上绘制多类 SGD

由 Sphinx-Gallery 生成的图库