如何在特征提取中使用 svm 分类器

Posted

技术标签:

【中文标题】如何在特征提取中使用 svm 分类器【英文标题】:how to use svm classifier in feature extraction 【发布时间】:2013-04-23 13:37:53 【问题描述】:

我计算了视频的 5 个特征 .. 运行此视频 40 帧 ...40 x 5 构造的数组...为了制作我的训练数据,我计算了 20 个视频的特征 ...20*[ 40 x 5 ] ...在进行分组时,我遇到了一些问题...第 1 类和第 0 类分配给每行训练数据,例如 800 行半 1 和其他半 0 ....或分配与 40 的单个块相关的 5,例如 20行......以及计算类性能的另一个问题,其中术语定义为“真实标签”......CP = classperf(truelabels,classout)......classout一个数组,它在真实标签上更新其值......但是 truelabels 是一个由 1 和 0 组成的相同长度的测试数据的数组?????

【问题讨论】:

您能花 5 分钟时间问一个可读性强的问题吗?如果您希望有人回答这个问题,您应该... 我以为您的疑问在this 问题中得到了解决。另外,请不要像在与某人交谈一样提问。我知道这是一个作业/项目,所以像写报告一样写一个问题。 另外,truelabels是训练标签,如果你通过预测训练样本得到classout,如果你通过预测测试样本得到classout,它就是测试标签。阅读文档here parag 先生对不起可读类型...但你不是我的任务或项目...我正在为此做我的满足..我现在靠近模式机器主题它不是我的课程但我想做它.... 但是你的问题是什么? 【参考方案1】:

这个问题是关于如何使用这些matlab函数:

http://www.mathworks.com.au/help/stats/svmtrain.html http://www.mathworks.com.au/help/stats/svmclassify.html http://www.mathworks.com.au/help/bioinfo/ref/classperf.html

如果您尝试对整个视频进行分类,则每个视频将有一个标签,即为“40 x 5 的单个块,例如 20 行”分配 1 或 0,在这种情况下,您的训练数据矩阵应为 20x200(20 个视频具有 200 个特征),您将拥有一个 20x1 组标签向量。

如果您尝试对每个视频中的单个帧进行分类,您的训练数据矩阵应该是 800x5(800 帧,包含 5 个特征),并且您将拥有一个 800x1 的组标签向量。

根据 classperf 文档: “classout 必须包含与 truelabels 相同数量的元素。” 它也有一个很好的例子来说明如何使用 classperf。

【讨论】:

先生感谢您理解我的问题...因此 truelabel 将是我的组向量排列

以上是关于如何在特征提取中使用 svm 分类器的主要内容,如果未能解决你的问题,请参考以下文章

如何存储 CNN 提取的特征来训练 SVM 分类器

如何使用两个特征向量训练 svm?

SVM:向从图像中提取的特征向量添加临床特征

opencv进阶-HOG+SVM行人检测(已训练好的分类器)

翻拍特征提取及SVM分类

如何从图像中提取特征进行分类和对象识别?