注意
转到结尾 下载完整的示例代码。或者通过 JupyterLite 或 Binder 在您的浏览器中运行此示例
绘制投票分类器的决策边界#
绘制 Iris 数据集两个特征的VotingClassifier
的决策边界。
绘制三种不同分类器预测的玩具数据集中第一个样本的类概率,并由VotingClassifier
取平均值。
首先,初始化三个示例分类器(DecisionTreeClassifier
、KNeighborsClassifier
和 SVC
),并使用权重 [2, 1, 2]
初始化软投票 VotingClassifier
,这意味着 DecisionTreeClassifier
和 SVC
的预测概率的权重是 KNeighborsClassifier
分类器的两倍,在计算平均概率时。

# 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.696 秒)
相关示例