我有一個關於代碼被剪掉的問題,我發現我是一本書。 作者創建了兩類採樣點。接下來,作者學習一個模型並將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