2013-11-28 55 views
2

如何在SVM.predict之後調用置信度?口譯支持向量機培訓文件。如何在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. ] 

回答

0

OpenCV中的SVM不會給你一個預測的信心。也許你會在C++和OpenCV上嘗試libsvm

既然您在訓練後只有一個支持向量,您也可以嘗試自己計算信心。

(1)W =阿爾法*炔* XN其中xn是在你的訓練輸出文件中的支持向量,

(2)炔*(W'* XN + B)= 1來解決灣(3)用你的測試樣本x_new,svm.predict給出了以符號(w·x + b)計算的分類(+或 - 1)。僅僅通過查看| w·x + b | 。任何大於1的值都意味着SVM對此有合理的把握,任何小的值都意味着它不是。