繁体   English   中英

具有 3 个类别的 OpenCV SVM 预测置信度

[英]OpenCV SVM prediction confidence with 3 classes

我真的需要知道我的预测的置信度,而 OpenCV 的 SVM 预测方法确实给了我“ returnDFVal ”的选项:

returnDFVal – 指定返回值的类型。 如果为真,并且问题是 2 类分类,则该方法返回决策函数值,即到边缘的有符号距离,否则该函数返回类标签(分类)或估计的函数值(回归)。

不幸的是,我有 3 个课程,所以这对我不起作用。 有什么方法可以解决这个问题或我可以调用的另一种方法来确定我的预测的置信度吗?

预测概率尚不可能,但有一种方法可以从libsvm获取它,请在此处找到我的答案。

使用 opencv 3.x:

float distanceSample(cv::Mat &sample)
{
        assert(svm != NULL && svm->isTrained());
        assert(!sample.empty());

        cv::Mat result;
        svm->predict(sample, result, cv::ml::StatModel::Flags::RAW_OUTPUT);
        float dist = result.at<float>(0, 0);
        return dist;
}

...

float dist = distanceSample(yourSample);
float confidence = (1.0 / (1.0 + exp(-dist)));

附注。 这仅适用于 2-classes 分类。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM