如何在matplotlib中绘制具有超过2个特征的sklearn svm的超平面?

3
我有一个scikits-learn线性支持向量机分类器(SVM.SVC),用于将文本分类为两类(-1,1)。该分类器使用来自训练集的250个特征进行预测,并且分类效果还不错。
然而,我无法弄清如何在matplotlib中绘制超平面或支持向量。所有在线示例仅使用2个特征来导出决策边界和支持向量点。我似乎找不到任何绘制具有超过2个特征或缺少固定特征的超平面或支持向量的示例。我知道这里缺少了一个基本的数学步骤,希望能得到帮助。

你可以尝试使用PCA或PCoA来降低特征空间的维度。 - Korem
有道理,但这是否是分类器支持向量和决策边界的公平表示呢?展示这个分类器的“如何”几乎和它的结果一样重要。在svm分类图中使用PCA来降低维度是一种常见做法吗? - user1882766
1个回答

2
如果您的线性SVM分类器工作得很好,那么这意味着存在一个超平面可以将您的数据分开。因此,将有一个漂亮的二维几何表示决策边界。
要理解“如何”,您需要查看支持向量本身,查看哪些支持向量对超平面的哪一侧有贡献,例如通过将单个支持向量馈入训练过的分类器。总的来说,可视化文本算法并不直观。

我能否只使用decision_function(X)的输出来推断超平面,通过检查哪些向量最接近决策边界? - user1882766
例如,如果我有2个支持向量,其decision_function输出分别为0.00040158和-0.0004701,那么我是否在类之间有一个0.00087168的边距距离? - user1882766
@user1882766 是的,那正是我所建议的。 - drenerbas
1
@user1882766 请不要忘记给这个答案点赞,声望在SO上很重要 :) - drenerbas

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接