![](/img/trans.png)
[英]Issues with plotting the decision boundaries for the Iris Dataset with KNearestNeighbors
[英]Error in SVM decision boundaries plotting
我试图模仿我在Kaggle上发现的一个代码,用于绘制SVM决策边界。 我使用自己的数据集,包含608个数据和10个功能,共有2个类。 例如,这两个类是你是否是diabetec。 我在这个链接上复制了代码的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, ...
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.