如何使用分类器

时间:2013-04-09 21:46:47

标签: matlab

我想在我的数据功能上使用svm,knn,adaboost分类器。我建立了代码,我计算了帧差异并计算了特征(eigenvalues,应变能量,势能)....构建了一个[帧数,特征]的数组。我尝试使用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'`

给出的班级表现

出现此错误的原因是什么?如何使用此功能集进一步使用分类器?

1 个答案:

答案 0 :(得分: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.