對於圖片或文本,如果童鞋們需要初試分類效果,在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)問題。