LIBSVM svmpredict:为什么需要 testLabel?

LIBSVM svmpredict: why is testLabel needed for?

我是 matlab 和 libsvm 的新手。我有 8 个大小为 8*1000 的不同对象的词袋。我对他们每个人都进行了这样的培训:

buildingStruct = libsvm_svmtrain(bow,[1;0;0;0;0;0;0;0],'-b 1')

之后,我想通过 bow(1,:) 来测试它,它是 buildingStruct 的训练数据。即:

[predict_label, accuracy, prob_values] = libsvm_svmpredict(testLabel, bow(1,:), buildingStruct, '-b  1');

从这个意义上说;我不明白我应该给 testLabel 什么。而且,如果我制作 testLabel 1,例如,我得到 prob_values 大小为 5。为什么它是 5,为什么它们不接近 100,因为我测试了火车数据?准确度也像 [0;9;NaN]。这是什么意思?

谢谢

你应该改变参数的顺序,让它变成这样:

buildingStruct = libsvm_svmtrain([1;0;0;0;0;0;0;0],bow,'-b 1')

然后它会给你 1.00 概率作为结果。如果您不知道测试标签,只需提供随机数作为参数。 对于准确度:是一个向量,包括准确度(用于分类)、均值 平方误差和平方相关系数(用于回归)。