python-3.x - plot_decision_regions 错误 "Filler values must be provided when X has more than 2 training features."

标签 python-3.x plot svc mlxtend

我正在为 SVC Bernoulli 输出绘制二维图。

从 Avg word2vec 和标准数据转换为向量
拆分数据以进行训练和测试。
通过网格搜索找到最好的C和gamma(rbf)

clf = SVC(C=100,gamma=0.0001)

clf.fit(X_train1,y_train)

from mlxtend.plotting import plot_decision_regions



plot_decision_regions(X_train, y_train, clf=clf, legend=2)


plt.xlabel(X.columns[0], size=14)
plt.ylabel(X.columns[1], size=14)
plt.title('SVM Decision Region Boundary', size=16)

接收错误:-
ValueError: y 必须是一个 NumPy 数组。成立

还尝试将 y 转换为 numpy。然后提示错误
ValueError: y 必须是整数数组。找到对象。尝试将数组作为 y.astype(np.integer) 传递

最后我将它转换为整数数组。
现在是提示错误。
ValueError:当 X 有超过 2 个训练特征时,必须提供填充值。

最佳答案

您可以使用 PCA 将您的数据多维数据缩减为二维数据。然后将得到的结果传入plot_decision_region并且不需要填充值。

from sklearn.decomposition import PCA
from mlxtend.plotting import plot_decision_regions

clf = SVC(C=100,gamma=0.0001)
pca = PCA(n_components = 2)
X_train2 = pca.fit_transform(X_train)
clf.fit(X_train2, y_train)
plot_decision_regions(X_train2, y_train, clf=clf, legend=2)

plt.xlabel(X.columns[0], size=14)
plt.ylabel(X.columns[1], size=14)
plt.title('SVM Decision Region Boundary', size=16)

关于python-3.x - plot_decision_regions 错误 "Filler values must be provided when X has more than 2 training features.",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52952310/

相关文章:

python - 仅将循环返回的值发送给 print() 一次

plot - Gnuplot:使用线或线点仅绘制数据集的特定值

在 Windows 上绘制 Haskell 图形

python - 提高单个样本的 SVC 预测性能

Python3.8.2 编译 Cython 扩展错误 - 警告 : 'tp_print' is deprecated

c++ - 使用 C++ 扩展 Python/Numpy,模块在初始化时崩溃

ios - 在 IOS 上使用 WebService

python-3.x - 加载 spacy.load ('en_core_web_md' 时出现问题)

matlab - 使用 Matlab spy 函数可视化具有强度的稀疏模式