我使用了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个结果。