plot_decision_regions 错误“当 X 具有超过 2 个训练特征时,必须提供填充值。”

新手上路,请多包涵

我正在为 SVC 伯努利输出绘制 2D 图。

从 Avg word2vec 和 standerdised 数据拆分数据转换为向量以进行训练和测试。通过网格搜索找到最好的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 must be an integer array。找到的对象。尝试将数组作为 y.astype(np.integer)

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

原文由 Ramakrishna B 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 868
1 个回答

您可以使用 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)

原文由 Vardan Agarwal 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进