python - SVM 决策边界绘图中的错误
问题描述
我试图模仿我在 Kaggle 上找到的关于绘制 SVM 决策边界的代码。我正在使用我自己的数据集,其中包含 608 个数据和 10 个特征,有 2 个类。例如,这两个类别是您是否患有糖尿病。我复制了此链接上代码的 SVM 部分(当您在底部向下滚动时可以找到该链接),其中提到了决策边界可视化。这是我的参考资料的链接。
但是,我收到此错误消息,说“X 必须是 Numpy 数组”。有人可以向我解释这是什么意思吗?
下面的代码是我所做的。请注意,我的数据集已预先标准化。另外,我将数据分成 70:30 的比例。
import numpy as np
import matplotlib.pyplot as plt
import pandas as pd
import matplotlib.pyplot as show
import matplotlib as cm
import matplotlib.colors as colors
from sklearn.model_selection import train_test_split
from sklearn.svm import SVC
from sklearn import svm
from mlxtend.plotting import plot_decision_regions
autism = pd.read_csv('diabetec.csv')
x = autism.drop(['TARGET'], axis = 1)
y = autism['TARGET']
x_train, X_test, y_train, y_test = train_test_split(x, y, test_size = 0.30, random_state=1)
t = np.array(y_train)
t = t.astype(np.integer)
clf_svm = SVC(C=1.3, gamma=0.8, kernel='rbf')
clf_svm.fit(x_train, t)
plt.figure(figsize=[15,10])
plot_decision_regions(x_train, t, clf = clf_svm, hide_spines = False, colors = 'purple,limegreen', markers = ['x','o'])
plt.title('Support Vector Machine')
解决方案
plot_decision_regions
需要一个 numpy 数组,但x_train
它是一个 pandas 数据框。试试看x_train.values
,即
plot_decision_regions(x_train.values, t, clf = clf_svm, ...
推荐阅读
- reactjs - 运行 npx 以启动 Strapi 应用程序时,我收到与我的节点版本相关的相同错误
- functional-programming - [R2DBC-Spring-Data-kofu]:在标准 API 中表达不同
- python - Python,在列表列表中搜索给定坐标最近匹配的索引
- python - 为什么 Python 会忽略这些操作?
- kubernetes-pod - 我们可以从正在运行的 kubernetes pod 中卸载卷吗
- python-3.x - 如何从python的循环外部循环访问多个图像对象?
- javascript - 为什么我的 for 循环不起作用或者是其他导致问题的原因?
- node.js - 由于某种原因尝试运行 node.js 服务器它不接受我的代码
- php - 使用 Outlook API 发送电子邮件时 CreateReply 出错
- arrays - 合并数组成为简单数组