【问题标题】:Interpreting Support Vector Machine Training file. How to calcute confidence after SVM.predict?解释支持向量机训练文件。如何在 SVM.predict 之后计算置信度?
【发布时间】:2013-12-14 02:16:59
【问题描述】:

SVM.predict 后如何计算置信度?

%YAML:1.0
my_svm: !!opencv-ml-svm
svm_type: EPS_SVR
kernel: { type:LINEAR }
C: 1.0000000000000001e-001
p: 1.0000000000000001e-001
term_criteria: { epsilon:9.9999999747524271e-007, iterations:1000 }
var_all: 10000
var_count: 10000
sv_total: 1
support_vectors:
  - [ 1.55572503e-004, 1.84632663e-004, 4.96124958e-005,
      -2.17121196e-005, -2.92743789e-005, 7.10865497e-005,
      9.92513524e-005, 3.12738739e-005, 1.05619969e-004,
      1.52145614e-004, 6.48323912e-005, 1.48814761e-005,
      2.78663483e-005, -4.44514626e-005, -1.67053367e-004,
      -2.43851537e-006, -1.06875894e-004, -3.03472800e-004,
      -3.82891594e-004 ]
decision_functions:
  -
     sv_count: 1
     rho: -1.4309503841001982e+001
     alpha: [ 1. ]

【问题讨论】:

    标签: opencv machine-learning computer-vision svm


    【解决方案1】:

    OpenCV 中的 SVM 不会让您对预测充满信心。也许你会尝试在 C++ 上结合 OpenCV 使用 libsvm

    由于训练后只有一个支持向量,您也可以尝试自己计算置信度。

    (1) w = alpha*yn*xn 其中 xn 是训练输出文件中的支持向量,

    (2) yn*(w'*xn+b) = 1 求解b。

    (3) 使用您的测试样本 x_new,svm.predict 为您提供分类(+ 或 - 1),计算为符号(w·x + b)。只需查看 |w·x+b| 即可获得信心。任何大于 1 的值都意味着 SVM 对该点有合理的把握,而任何小于 1 的值都意味着它不是。

    【讨论】:

      猜你喜欢
      • 2017-09-19
      • 2013-07-14
      • 2016-07-18
      • 2021-04-10
      • 2021-11-05
      • 2020-10-26
      • 2018-07-31
      • 2017-08-08
      • 2021-04-20
      相关资源
      最近更新 更多