繁体   English   中英

为什么predicted_label +1 即使它应该是-1? 在 MATLAB 中使用 LIBSVM

[英]Why is the predicted_label +1 even though it should be -1? Using LIBSVM in MATLAB

我提取了训练和测试数据的主要成分。
'trainingdata.train' 具有来自 +1(人脸 1)和 -1(所有其他人脸)标签的特征值。 'testdata.train' 具有来自 face 2 的特征值并且没有标签,因为我希望 SVM 预测它的标签。 LIBSVM 给出的“predicted_label”是 +1,即使它应该是 -1。

[training_label_matrix, training_instance_matrix] = libsvmread('trainingdata.train');
[testing_label_matrix, testing_instance_matrix] = libsvmread('testdata.train');
model = svmtrain(training_label_matrix, training_instance_matrix);
[predicted_label] = svmpredict(testing_label_matrix, testing_instance_matrix, model);

请指出我做错了什么。

使用[predict_label, accuracy, prob_values] = svmpredict(testLabel, testData, model, '-b 1'); 以观察准确性。

testLabel是包含测试数据“正确”标签的向量。 给出这个参数是为了计算accuracy 在测试数据标签未知的实际情况下,只需使用任何随机值即可获得predict_label而不计算accuracy

此外,虽然不是必需的,但您最好在svmtrain指定选项,查看他们的页面以获取更多详细信息。

@Lennon:那么代码应该像这样吗?

[training_label_matrix, training_instance_matrix] = libsvmread('trainingdata.train');
[testing_label_matrix, testing_instance_matrix] = libsvmread('testdata.train');
model = svmtrain(training_label_matrix, training_instance_matrix);
[predict_label, accuracy, prob_values] = svmpredict(ones(size(testData,1),1), testing_instance_matrix, model, '-b 1');

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM