【发布时间】:2011-12-04 15:13:32
【问题描述】:
我目前正在对具有不同图像描述符的图像进行分类。因为他们有自己的指标,所以我使用的是预先计算的内核。因此,鉴于这些 NxN 内核矩阵(总共 N 图像),我想训练和测试 SVM。不过,我对使用 SVM 不是很有经验。
但让我感到困惑的是如何输入训练输入。使用内核 MxM 的子集(M 是训练图像的数量),训练具有 M 个特征的 SVM。但是,如果我理解正确,这会限制我使用具有相似数量特征的测试数据。尝试使用大小为 MxN 的子内核,会在训练期间导致无限循环,因此,在测试时使用更多特征会导致较差的结果。
这导致使用相同大小的训练集和测试集给出合理的结果。但是,如果我只想分类,比如一张图像,或者为每个类使用给定数量的图像进行训练并用其余的图像进行测试,那么这根本行不通。
如何消除训练图像数量和特征之间的依赖关系,以便我可以使用任意数量的图像进行测试?
我在 MATLAB 中使用 libsvm,内核是 [0,1] 之间的距离矩阵。
【问题讨论】:
-
解决了它:给定一个用于训练的 Mx(M+1) 内核(+1 是强制性索引),测试内核应该(当然)大小为 Kx(M+1),其中K 是测试图像的数量。
标签: matlab machine-learning svm libsvm