使用Python在三维空间中绘制最大间隔超平面

我发现了一个关于SVM的非常酷的笔记本:

https://github.com/jakevdp/sklearn_tutorial/blob/master/notebooks/03.1-Classification-SVMs.ipynb

但我有点沮丧,因为它没有展示如何在三维空间中绘制最大间隔。我已经尽力了,但不知道该怎么做…例如,我想在以下表示中绘制它(这是从笔记本中取的):

enter image description here

另外,如果能圈出支持向量,那就更好了。


回答:

这是一个非常好的问题,不过提供的笔记本实际上是“欺骗性的”。这不是核函数的工作方式,虽然这种可视化很酷,但这并不是SVM内部发生的情况。不过,我们先把这点放在一边,专注于如何在这个投影空间中绘制3D分离超平面(这不是RBF投影空间)。

你需要做的就是:

  1. 对用于此图的3D数据拟合线性SVM。
  2. 提取权重(clf.coefs_)和偏置(clf.intercept_)。
  3. 绘制3D超平面,使用法向量(clf.coefs_)和原点的距离(clf.intercept_)。

Related Posts

L1-L2正则化的不同系数

我想对网络的权重同时应用L1和L2正则化。然而,我找不…

使用scikit-learn的无监督方法将列表分类成不同组别,有没有办法?

我有一系列实例,每个实例都有一份列表,代表它所遵循的不…

f1_score metric in lightgbm

我想使用自定义指标f1_score来训练一个lgb模型…

通过相关系数矩阵进行特征选择

我在测试不同的算法时,如逻辑回归、高斯朴素贝叶斯、随机…

可以将机器学习库用于流式输入和输出吗?

已关闭。此问题需要更加聚焦。目前不接受回答。 想要改进…

在TensorFlow中,queue.dequeue_up_to()方法的用途是什么?

我对这个方法感到非常困惑,特别是当我发现这个令人费解的…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注