我有一个关于代码被剪掉的问题,我发现我是一本书。 作者创建了两类采样点。接下来,作者学习一个模型并将SVC模型绘制到“斑点”上。 这是剪断代码:C支持向量分类理解
# create 50 separable points
X, y = make_blobs(n_samples=50, centers=2,
random_state=0, cluster_std=0.60)
# fit the support vector classifier model
clf = SVC(kernel='linear')
clf.fit(X, y)
# plot the data
fig, ax = plt.subplots(figsize=(8, 6))
point_style = dict(cmap='Paired', s=50)
ax.scatter(X[:, 0], X[:, 1], c=y, **point_style)
# format plot
format_plot(ax, 'Input Data')
ax.axis([-1, 4, -2, 7])
# Get contours describing the model
xx = np.linspace(-1, 4, 10)
yy = np.linspace(-2, 7, 10)
xy1, xy2 = np.meshgrid(xx, yy)
Z = np.array([clf.decision_function([t])
for t in zip(xy1.flat, xy2.flat)]).reshape(xy1.shape)
line_style = dict(levels = [-1.0, 0.0, 1.0],
linestyles = ['dashed', 'solid', 'dashed'],
colors = 'gray', linewidths=1)
ax.contour(xy1, xy2, Z, **line_style)
结果如下:
我的问题是,现在,我们为什么要打造 “XX” 和 “YY”,以及“XY1 “和”xy2“?因为实际上我们想要显示X和y数据的SVC“函数”,并且如果我们将xy1和xy2以及Z(也是用xy1和xy2创建的)传递给meshgrid函数来绘制meshgrid,则不存在连接SVC模型的数据......不是吗?
有人可以向我解释这个或请给出一个建议如何解决这个更容易?
谢谢您的回答
你检查过'''contour'''的文档吗?这是轮廓图的常用输入。这些线不是手动绘制的,轮廓在这里很重要,因此这种设置。 – sascha
@sascha,谢谢。是的,我检查了轮廓文件。但为什么我们分别使用xx和xy xy1和xy2代替X和y?我的意思是xy1和xy2是从以下创建的人造阵列: xx = np.linspace(-1,4,10) yy = np.linspace(-2,7,10) xy1,xy2 = np.meshgrid(xx, yy)但是这个数字与我们从中创建“blob”的数据没有什么共同之处。那么我们为什么要使用它们呢? – 2Obe