绘制 VotingClassifier 的决策边界#
绘制鸢尾花数据集的两个特征的 VotingClassifier
的决策边界。
绘制玩具数据集中第一个样本的类别概率,该概率由三个不同的分类器预测并由 VotingClassifier
进行平均。
首先,初始化三个示例分类器(DecisionTreeClassifier
、KNeighborsClassifier
和 SVC
),并使用它们初始化一个权重为 [2, 1, 2]
的软投票 VotingClassifier
,这意味着在计算平均概率时,DecisionTreeClassifier
和 SVC
的预测概率分别计为 KNeighborsClassifier
分类器权重的 2 倍。
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 计算的类别概率
绘制在鸢尾花数据集上训练的决策树的决策面
在鸢尾花数据集中绘制不同的支持向量机分类器
在鸢尾花数据集上绘制多类 SGD