python - ValueError:尝试绘制 SVM 时 x 和 y 的大小必须相同
问题描述
我是机器学习的新手,我发现 python 代码可以从 python 中的 sklearn 中查看 SVM 模型的结果,代码是
import numpy as np
import matplotlib.pyplot as plt
from sklearn import svm
from sklearn.datasets.samples_generator import make_blobs
X,y=make_blobs(n_samples=40,centers=2,random_state=20)
clf=svm.SVC(kernel='linear',C=1000)
clf.fit(X,y)
plt.scatter(X[:,0],X[:,1],c=y,s=30,cmap=plt.cm.Paired)
### assign new data
newData=[[3,4],[5,6]]
#print(clf.predict(newData))
#plot the deciston function
ax=plt.gca()
xlim=ax.get_xlim()
ylim=ax.get_ylim()
#creat a grid to evalute the modle
xx=np.linspace(xlim[0],xlim[1],30)
yy=np.linspace(ylim[0],ylim[1],30)
YY,XX=np.meshgrid(yy,xx)
xy=np.vstack([XX.ravel(),YY.ravel()]).T
Z=clf.decision_function(xy).reshape(XX.shape)
#plot decision bundray and margins
ax.contour(XX,YY,Z,colors='k',levels=[-1,0,1],alpha=0.5,linestyles=['--','-','--'])
# plot support vector
ax.scatter(clf.support_vectors_[:0],clf.support_vectors_[:1],s=100,linewidths=1,facecolors='none')
plt.show()
当我运行上面的代码时,我得到了这个错误:
文件“C:/Users/Black_Swan/PycharmProjects/test/images/svm.py”,第 47 行,在 ax.scatter(clf.support_vectors_[:0],clf.support_vectors_[:1],s=100,linewidths= 1,facecolors='none') 文件“C:\Python27\lib\site-packages\matplotlib_init _.py ”,第 1870 行,内部返回 func(ax, *args, **kwargs) 文件“C:\ Python27\lib\site-packages\matplotlib\axes_axes.py",第 4257 行,在 scatter raise ValueError("x and y must be the same size") ValueError: x and y must be the same size
谁能帮我找出错误?
解决方案
.scatter()
函数采用浮点数或类似数组的x
和y
坐标。由于这些是坐标,它们应该是成对的,因此x
应该y
是相等的长度。在您的代码x
中 isclf.support_vectors_[:0]
和y
is clf.support_vectors_[:1]
。语法iterator[:k]
说我们应该选择迭代器中的每个元素,直到我们不应该选择的第 k 个元素。因此,当我们将这些东西组合在一起时,我们可以发现它x
并y
具有不同的长度,因此会引发错误。
推荐阅读
- c# - 如何将类名传递给 DeserializeObject,我将在运行时以字符串 c# 获得该类名
- html - 如何制作响应式侧边栏
- html - 动态站点上的 VBA Web 自动化
- python - TypeError:python中需要一个整数(得到类型str)
- javascript - 使用动态字段将数据插入数据库
- java - 使用键和 getStringArray (Android) 从资源 xml 文件中检索字符串值
- javascript - 以声明方式更新组件内的标记
- pandas - pandas iterrows 覆盖值
- tensorflow - 预训练的 TensorFlow 模型 RGB -> RGBY 通道扩展
- ios - iPhone 7 - CPU 使用率超过 400%?