首页 文章

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

提问于
浏览
2

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

returnDFVal - 指定返回值的类型 . 如果为true且问题是2级分类,则该方法返回与边距签名距离的决策函数值,否则该函数返回类标签(分类)或估计函数值(回归) .

不幸的是,我有3个 class ,所以这对我不起作用 . 我有什么方法可以绕过这个或另一个我可以调用的方法来确定我的预测的信心吗?

1 回答

  • 0

    使用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)));
    

相关问题