对于图片或文本,如果童鞋们需要初试分类效果,在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)问题。