Opencv 解释支持向量机训练文件。如何计算支持向量机预测后的置信度?

Opencv 解释支持向量机训练文件。如何计算支持向量机预测后的置信度?,opencv,machine-learning,computer-vision,svm,Opencv,Machine Learning,Computer Vision,Svm,如何计算支持向量机预测后的置信度 %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_

如何计算支持向量机预测后的置信度

%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中的支持向量机不会为预测提供信心。也许你会尝试C++与OpenCV结合。 由于训练后只有一个支持向量,您也可以自己尝试计算置信度

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

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

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