我在绘制脑海中的图像时遇到了一些麻烦。我想用支持向量机可视化内核技巧。所以我做了一些由两个圆(一个内圆和一个外圆)组成的二维数据,这两个圆应该被一个超平面分开。显然这在二维中是不可能的 - 所以我将它们转换成 3D。令 n 为样本数。现在我有一个 (n,3) 数组(3 列,n 行)X 的数据点和一个带标签的 (n,1) 数组 y。使用 sklearn 我通过获得线性分类器
clf = svm.SVC(kernel='linear', C=1000)
clf.fit(X, y)
Run Code Online (Sandbox Code Playgroud)
我已经通过以下方式将数据点绘制为散点图
plt.scatter(X[:, 0], X[:, 1], c=y, s=30, cmap=plt.cm.Paired)
Run Code Online (Sandbox Code Playgroud)
现在我想将分离超平面绘制为曲面图。我的问题是缺少超平面的显式表示,因为决策函数仅通过 产生隐式超平面decision_function = 0。因此,我需要绘制 4 维对象的级别集(级别 0)。
由于我不是 Python 专家,如果有人能帮助我,我将不胜感激!而且我知道这并不是使用 SVM 的真正“风格”,但我需要这张图片作为我论文的插图。
clf = svm.SVC(kernel='linear', C=1000)
clf.fit(X, y)
Run Code Online (Sandbox Code Playgroud)