Scikit learn 对于多项式核,对偶系数中的每个系数对应于什么特征?

Scikit learn 对于多项式核,对偶系数中的每个系数对应于什么特征?,scikit-learn,svm,Scikit Learn,Svm,我在3个特征上使用sklearn.SVM.SVC训练了一个简单的二次支持向量机。换句话说,X是nx3,Y是长度n,我只是毫无问题地运行了以下代码: svc = SVC(kernel='poly', degree = 2) svc.fit(X,Y) 因为我的目标是在3D中绘制这个边界,所以我试图找出每个结果系数对应的特征。自然地,具有3个特征的二次函数将产生一个截距项和10个系数,其中每个系数对应于: x1^2, x2^2, x3^2, x1x2, x1x3, x2x3, x1x2x3, x1,

我在3个特征上使用sklearn.SVM.SVC训练了一个简单的二次支持向量机。换句话说,X是nx3,Y是长度n,我只是毫无问题地运行了以下代码:

svc = SVC(kernel='poly', degree = 2)
svc.fit(X,Y)
因为我的目标是在3D中绘制这个边界,所以我试图找出每个结果系数对应的特征。自然地,具有3个特征的二次函数将产生一个截距项和10个系数,其中每个系数对应于:

x1^2, x2^2, x3^2, x1x2, x1x3, x2x3, x1x2x3, x1, x2, x3
然而,
svc.dual_coef
返回一个由10个系数组成的数组,但我不知道它们中的哪一个对应于10个特征中的哪一个,有办法解决这个问题吗


谢谢

我似乎找不到答案。事实上,很多人都说这很棘手。为什么不使用线性支持向量机提前构建多项式特征呢?我最终使用对偶系数、支持向量和特征映射向量Phi来解决原始问题的权重。之后,我使用闭式二次解,在给定x1 X x2网格的情况下求解x3。这允许您在三维空间中绘制具有二次内核的SVC。我想这是有道理的,为什么开发人员在“degree=2”的情况下没有包含原始权重,因为这只是一种情况。对于阶数>=3的情况,如果不是不可能显式求解,则会变得极其困难。