簡體   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