绘制VotingClassifier的决策边界#

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

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

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

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

# 加载一些示例数据
iris = datasets.load_iris()
X = iris.data[:, [0, 2]]
y = iris.target

# 训练分类器
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)

# 绘制决策区域
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()

Total running time of the script: (0 minutes 0.336 seconds)

Related examples

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

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

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

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

在鸢尾花数据集上绘制不同的SVM分类器

在鸢尾花数据集上绘制不同的SVM分类器

绘制鸢尾花数据集上树集成的决策边界

绘制鸢尾花数据集上树集成的决策边界

Gallery generated by Sphinx-Gallery