我使用了6个模型,希望在2行3列中绘制所有六个结果。最初,示例代码有4个初始模型,我从这里得到:http://rasbt.github.io/mlxtend/.问题是我只绘制了最初的4个模型。
我添加了clf4和clf5,但无法绘制它们。我试图在gs = gridspec.GridSpec(2, 3)上更改gs = gridspec.GridSpec(2, 2),但这段代码可能会更改每个地块的高度和宽度比例。我想ax = plt.subplot(gs[grd[0], grd[1]])会有助于改变,但我不明白grd[0]和grd[1]是什么。
import numpy as np
import matplotlib.pyplot as plt
import matplotlib.gridspec as gridspec
import itertools
from sklearn.linear_model import LogisticRegression
from sklearn.svm import SVC
from sklearn.ensemble import RandomForestClassifier
from mlxtend.classifier import EnsembleVoteClassifier
from mlxtend.data import iris_data
from mlxtend.plotting import plot_decision_regions
# Initializing Classifiers
clf1 = LogisticRegression(random_state=0)
clf2 = RandomForestClassifier(random_state=0)
clf3 = SVC(random_state=0, probability=True)
clf4 = DesicionTree(random_state=0)
clf5 = GaussianProcess()
eclf = EnsembleVoteClassifier(clfs=[clf1, clf2, clf3],
weights=[2, 1, 1], voting='soft')
# Loading some example data
X, y = iris_data()
X = X[:,[0, 2]]
# Plotting Decision Regions
gs = gridspec.GridSpec(2, 2)
fig = plt.figure(figsize=(10, 8))
labels = ['Logistic Regression',
'Random Forest',
'RBF kernel SVM',
'Ensemble', 'Desicion Tree', 'Gaussian Process']
for clf, lab, grd in zip([clf1, clf2, clf3,clf4,clf5 eclf],
labels,
itertools.product([0, 1],
repeat=2)):
clf.fit(X, y)
ax = plt.subplot(gs[grd[0], grd[1]])
fig = plot_decision_regions(X=X, y=y,
clf=clf, legend=2)
plt.title(lab)
plt.show()
我期望在一个图上绘制所有6个结果。