0

我想在我的数据特征上使用 svm、knn、adaboost 分类器。我构建了代码,在其中计算了帧差异并计算了特征(特征值、应变能、势能)......构建了一个 [帧数、特征] 的数组。我尝试将 svm 用作:

 Features = data;  % Features array [40, 5]
 class = ones(numFrames-1, 1);  % numFrames=41
 class(1:(fix(numFrames/2))) = -1;
 SVMstruct = svmtrain(Features, class, 'Kernel_Function', 'rbf');
 newclass = svmclassify(SVMstruct, [40 5]);  %Test data

我收到一个错误:

TEST 和训练数据中的列数必须相等。

%classperf(cp,newclass); cp'`给出的类的%性能

这个错误的原因是什么?以及如何使用具有此功能集的更多分类器?

4

1 回答 1

2

我可以从你得到的错误中推断出以下事情。

svmtrain这意味着没有错误size(features)=[40 5]。错误在最后一行。请参阅 的语法svmclassify。您传递了一个测试数据样本,其特征/列数与案例 5) 中的训练数据相同。相反,您传递的是[40 5]只有两列的大小。n通过行和5列的实际测试集。最后一行应该是

newclass= svmclassify(SVMstruct,testData); %where size(testData)=[n 5], n indicates how many test samples you have.
于 2013-04-10T01:25:04.980 回答