2

我试图重现这篇文章中的例子,它产生了这个数字。

在此处输入图像描述

上面的彩色区域由mlxtend.plotting(版本'0.14.0')绘制。

使用 colab 上的默认设置,此代码

from mlxtend.plotting import plot_decision_regions
plot_decision_regions(X, y, clf=ppn)

产生这个数字。

在此处输入图像描述

数据点已绘制,而底部区域尚未绘制。

是否可以使用 设置底部区域的颜色mlxtend.plotting

4

2 回答 2

1

这似乎是由两个区域的分类衍生的错误,如果您尝试像以下示例那样分离 3 个集群,它将起作用。

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)
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']

for clf, lab, grd in zip([clf1, clf2, clf3, 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()

尝试直接在他们的 github 目录上询问:https ://github.com/rasbt/mlxtend

于 2019-09-17T12:17:08.707 回答
0

我认为这是可能的。您可以改用颜色参数,我认为它更容易。你应该试试这个,这是你要找的吗?

fig = plot_decision_regions(
  X=X,
  y=y.astype(int),
  clf=clf,
  legend=2,
  colors='yellow,red'
)

结果示例

于 2021-11-07T07:25:11.987 回答