小编oak*_*ric的帖子

如何绘制 Python 3 维水平集?

我在绘制脑海中的图像时遇到了一些麻烦。我想用支持向量机可视化内核技巧。所以我做了一些由两个圆(一个内圆和一个外圆)组成的二维数据,这两个圆应该被一个超平面分开。显然这在二维中是不可能的 - 所以我将它们转换成 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)

期望输出

我想要得到的东西像那个。总的来说,我想重建他们在本文中所做的工作,尤其是“非线性变换”。

python matplotlib svm

5
推荐指数
1
解决办法
669
查看次数

标签 统计

matplotlib ×1

python ×1

svm ×1