【问题标题】:OpenCV SVM prediction confidence with 3 classesOpenCV SVM 预测置信度与 3 类
【发布时间】:2015-10-01 05:00:28
【问题描述】:

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

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

不幸的是,我有 3 个课程,所以这对我不起作用。有什么方法可以绕过这个或我可以调用的其他方法来确定我的预测的置信度吗?

【问题讨论】:

  • 你有没有想过如何做这样的事情?
  • 不,我最终用深度学习库 Caffe 解决了这个问题,它处理像素和图像的 2D 特性并给了我一个置信区间。

标签: c++ opencv machine-learning svm


【解决方案1】:

预测概率尚不可能,但有一种方法可以从幕后得到它libsvm,请找到我的答案here

【讨论】:

    【解决方案2】:

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

    PS。这仅适用于 2 类分类。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-02-28
      • 2013-05-22
      • 2014-07-09
      • 2020-08-03
      • 1970-01-01
      • 2015-03-15
      • 2016-04-16
      • 2016-02-18
      相关资源
      最近更新 更多