Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/opencv/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 三类OpenCV-SVM预测置信度_C++_Opencv_Machine Learning_Svm - Fatal编程技术网

C++ 三类OpenCV-SVM预测置信度

C++ 三类OpenCV-SVM预测置信度,c++,opencv,machine-learning,svm,C++,Opencv,Machine Learning,Svm,我真的需要知道我的预测的可信度,OpenCV的SVM预测方法确实给了我选择“”: returnDFVal–指定返回值的类型。如果是真的,那么 问题是2类分类,然后该方法返回决策 函数值,该值是到边距的有符号距离,否则 函数返回类标签(分类)或估计的函数 价值(回归) 不幸的是,我有3门课,所以这对我不适用。是否有任何方法可以绕过此方法或其他方法来确定预测的可信度?使用opencv 3.x: float distanceSample(cv::Mat &sample) { a

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

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

不幸的是,我有3门课,所以这对我不适用。是否有任何方法可以绕过此方法或其他方法来确定预测的可信度?

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

注:这只适用于2类分类。

预测概率还不可能,但有一种方法可以从引擎盖下得到它
libsvm
,请找到我的答案。

你有没有想过如何做这样的事情?没有,最后我用深度学习lib库解决了这个问题,它处理像素和图像的2D性质,并给了我一个置信区间。
float dist = distanceSample(yourSample);
float confidence = (1.0 / (1.0 + exp(-dist)));