我使用scikit-learn在大型数据集上训练了几个多项式SVM分类器。我现在要做的是从训练模型中提取相关参数,以便我可以使用OpenCV重建分类器。例如,对于想要在Android上进行分类(而非培训)的人来说,这很有用。我知道有类似的question。但那个与RBF分类器有关。我的具体问题是,"在scikit中从训练模型中提取的相关参数是什么?学习在OpenCV中重构多项式 SVM分类器?"
到目前为止我所做的是在OpenCV中训练多项式SVM并将其保存到YML文件以查看保存的参数。以下是文件格式的示例:
%YAML:1.0
my_svm: !!opencv-ml-svm
svm_type: C_SVC
kernel: { type:POLY, degree:3., gamma:5.0000000000000000e-01, coef0:0. }
C: 1.
term_criteria: { epsilon:1.1920928955078125e-07, iterations:1000 }
var_all: 64
var_count: 64
class_count: 10
class_labels: !!opencv-matrix
rows: 1
cols: 10
dt: i
data: [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 ]
sv_total: 2416
support_vectors:
- [ 7.3965e-02, 1.6008e-01, ..., 6.3552e-02, 1.6624e-01 ]
#..... <<<many similar entries omitted for brevity>>> .....
- [ 1.3381e-01, 1.9319e-01, ..., 2.0670e-01, 1.5938e-01, ]
decision_functions:
-
sv_count: 100
rho: 2.3803118109947000e-01
alpha: [ 1., 2.0408e-01, 1., 1.3069e-01,..., -1.6480e-01 ]
index: [ 0, 11, ..., 281, 282 ]
#..... <<<many similar entries ommited for brevity>>> .....
-
sv_count: 249
rho: 2.6796084003857829e-01
alpha: [ 1., 6.9822, 4.6517e-01,..., -1., -1., -5.9540e-01 ]
index: [ 1784, 1785, ..., 2404, 2406 ]
我想知道哪些参数是相关的,哪些不是。我接下来要做的是从scikit-learn中训练的模型中提取相应的参数,替换上述文件中的相应参数,并运行测试分类以查看重建的分类器是否有效。我感谢所有能指出这些参数的人(例如var_all
,var_count
,sv_total
,dt
,index
等等...以及需要哪些来重建训练有素的分类器。