我对我的 3D 图像数据集进行了 PCA,并使用前 n 个 PC 作为线性 SVM 中的特征。我有每台 PC 的 SVM 权重。现在,我想将 PC 权重投影到原始图像空间中,以找出图像的哪些区域在分类过程中更具辨别力。我在权重向量上使用了 inverse_transform PCA 方法。然而,生成的图像只有正值,而 SVM 权重既有正值又有负值。这让我思考我的方法是否有效。有人有什么建议吗?
提前致谢。
我对我的 3D 图像数据集进行了 PCA,并使用前 n 个 PC 作为线性 SVM 中的特征。我有每台 PC 的 SVM 权重。现在,我想将 PC 权重投影到原始图像空间中,以找出图像的哪些区域在分类过程中更具辨别力。我在权重向量上使用了 inverse_transform PCA 方法。然而,生成的图像只有正值,而 SVM 权重既有正值又有负值。这让我思考我的方法是否有效。有人有什么建议吗?
提前致谢。
我有一个程序可以在图像空间中进行这种投影。要意识到的是,权重本身并没有定义“区分”权重(也如本文中所称)。您需要按内核系数加权的输入总和。
考虑这个玩具示例:
类A
有 2 个向量:a1=(1,1)
并且a2=(2,2)
类B
有 2 个向量:b1=(2,4)
和a3=(4,2)
。
如果你画这个,你可以手动构建决策边界:它是点的线,(x,y)
其中x+y == 5
. 我的 SVM 程序找到解决方案,其中w_a1 == 0
(无支持向量)、w_a2 == -1)
和w_b1 == w_b2 == 1/2
、 和bias == -5
。
现在您可以构造投影向量p = a2*w_a2 + b1*w_b1 + b2*w_b2
= -1*(2,2) + 1/2*(2,4) + 1/2*(4,2)
= (1,1)
。
换句话说,每个点都应该投影到线上y == x
,对于新向量,A 类向量v
的内积<v,p>
低于 5,B 类向量的内积高于 5。您可以通过添加偏差将结果集中在 0 附近。