svm 預測標籤的概率輸出



對於圖片或文本,如果童鞋們需要初試分類效果,在MatLab做實驗是比較簡單的。例如:使用Libsvm庫函數svmtrain()訓練學習出一個模型Factor, 然後代入Factor,得到預測標籤向量Predict_label。


但是,這些都是人家的工作,假若我們加入自己的思路呢?例如:對於圖片分類實驗,預測標籤的時候,加入K階標籤共現值呢?你或許不是僅僅得到預測標籤Predict_label,而是希望得到標籤概率向量 Scores,輸出概率值。


在Libsvm下怎麼做?簡單。

Factor = svmtrain(train_label, train_data, '-b 1');

[predicted_label, accuracy, Scores] = svmpredict(test_label, test_data, Factor, '-b 1');

這裏,-b 1表示打開概率輸出開關。默認是:-b 0,不輸出概率值。

訓練標籤:train_label,

訓練數據:train_data,

預測標籤:predicted_label,

測試數據:test_data

查準率:accuracy

標籤概率:Scores


若是完全忽略掉predicted_label(預測標籤向量), accuracy(查準率),則libsvm函數寫爲:

test_label = zeros(size(X_te,1), 1);% 啞元test_label

Factor = svmtrain(train_label, train_data, '-b 1');

[~, ~, Scores] = svmpredict(test_label, test_data, Factor, '-b 1');


建議拿點真實的、靠譜的公開數據集玩玩。例如:Corel 5K等等。太多啦。


當然,這裏,我們還僅僅是隻談論多類單標籤(Multi Class & Single Label)問題。而沒有涉及多類多標籤(Multi Class & Multi Label)問題。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章