【问题标题】:MATLAB SVMstructMATLAB 支持向量机结构
【发布时间】:2012-04-20 21:25:07
【问题描述】:

我对 MATLAB 中的 SVMstruct 函数有疑问。请记住,我是这类事情的初学者,有人可以帮我解决这个问题:

对于我的项目,我已经下载了 NUS 范围内的图像数据集,其中还有一个 500 维的词袋:http://lms.comp.nus.edu.sg/research/NUS-WIDE.htm(我假设所有图像的 BoW 信息都被压缩到该文件中) .现在我应该使用 SVM 分类器对此进行分类。我是否正确假设对于 SVMstruct 函数:SVMStruct = svmtrain(Training,Group),我可以将整个 BoW 矩阵作为输入(作为训练参数),然后对于 Group,我可以给出标签的字符矩阵(作为组参数)?如果 Training 和 Group 的行数和列数不同,可以吗?

【问题讨论】:

    标签: matlab image-processing svm


    【解决方案1】:

    Training 的大小应该是 (N, M),其中 N(行)是实例的数量(对于这个数据集看起来像 269,648),M 是特征的数量 (500)。 Group 数组的大小应为 (N, 1),其中每一行对应一个训练实例。

    我认为您不能将标签字符矩阵用于 group 参数。您也许可以给出一个像 {'tag1'; 这样的字符串单元数组。 '标签2'; '标签3'; ...'标签N'}。通常我会将其转换为数值数组。

    【讨论】:

    • 感谢您的回复。哦,是不是对于 Flickr 数据库中的每张图片,都有一个 500-D 的词袋?而且,'tag1'、'tag2'、'tag3' 与字符矩阵有何不同?是因为它有命令吗……?一个数字向量只有按顺序排列的数字,对吗?对不起,问题的弹幕,再次感谢!
    • 我认为“500-D 词袋”通常意味着有 500 个词,对于每个词,您将有一个 0 或 1,具体取决于该词是否与图像相关联。所以训练数据矩阵中的每一列对应一个词。训练数据中 (n, m) 处的值告诉您“单词 m 是否与图像 n 相关联?”
    • 我给出的例子是一个元胞数组,而不是一个矩阵。因此,当您执行 size(Group) 时,结果应该是 (N, 1) - 如果它是字符矩阵,那么列数将是最长组名的长度。 Group 中 (n, 1) 处的值告诉您与训练数据中的 (n, :) 行相对应的图像的真实标签。
    猜你喜欢
    • 2017-09-19
    • 2011-06-25
    • 2015-01-18
    • 2014-05-12
    • 2012-01-31
    • 2019-06-03
    • 1970-01-01
    相关资源
    最近更新 更多