我已经培训了一个包含6个班级的SVM。
在OpenCV中使用SVM时是否有可能获得概率?
谢谢。
答案 0 :(得分:0)
SVM不是一种probalistic分类器,因此没有你可以获得的实际概率。您可以从SVM获得的是得分值:returnFDValue
此值可以像概率一样被插入。
double cv::ml::SVM::predict(const cv::Mat & data, double & returnFDValue);
答案 1 :(得分:0)
SVM没有为输出类别提供概率,而是为预测类别提供了欧几里得距离。
在function unique(arr) {
var hash = {}, result = [];
for (var i = 0, l = arr.length; i < l; ++i) {
if (!hash.hasOwnProperty(arr[i])) {
hash[arr[i]] = true;
result.push(arr[i]);
}
}
return result;
}
db.collection.find({}).forEach(function (doc) {
db.collection.update({ _id: doc._id }, { $set: { "favorites.books": unique(doc.favorites.books) } });
})
之后,您将通过predict
返回班级编号:
pred
然后跟随将通过cv::Mat pred;
cv::Mat sample;
...
svm->predict(sample, pred);
为您提供欧几里德距离:
pred