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

时间:2015-07-13 02:44:29

标签: c++ opencv machine-learning svm

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

  

returnDFVal - 指定返回值的类型。如果是真的那么   问题是2级分类然后方法返回决定   与边距签名距离的函数值,否则为   函数返回类标签(分类)或估计函数   价值(回归)。

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

2 个答案:

答案 0 :(得分:1)

尚无法预测概率,但是有一种方法可以从from random import randint class MathQuiz: def whole_math_quiz(self): while True : self.actual_math_quiz() newgame = input ("Do you want to play again ?") if newgame.lower() not in [ 'y', 'yes']: break def actual_math_quiz(self): num1 = randint(2, 9) num2 = randint(3, 10) product = num1 * num2 ans = int(input(f"What is {num1} X {num2}? ")) if ans == product: print("Well done! You have got the answer right!") else: print("You have got it wrong!") 机缘下获得它,请找到我的答案here

答案 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)));