【发布时间】:2017-05-03 21:47:14
【问题描述】:
我在 MATLAB 上使用 libsvm。模型结构有一个名为“参数”的字段,其中包含 5 个值。每个的含义是什么?在哪个字段中可以找到用于径向基核的参数“c”和“gamma”?
【问题讨论】:
标签: libsvm
我在 MATLAB 上使用 libsvm。模型结构有一个名为“参数”的字段,其中包含 5 个值。每个的含义是什么?在哪个字段中可以找到用于径向基核的参数“c”和“gamma”?
【问题讨论】:
标签: libsvm
libsvm 的代码很难阅读,但我认为你需要看看matlab/svm_model_matlab.c。在那里,您将看到以下内容:
ptr[0] = model->param.svm_type;
ptr[1] = model->param.kernel_type;
ptr[2] = model->param.degree;
ptr[3] = model->param.gamma;
ptr[4] = model->param.coef0;
所以我希望“参数”字段中的第 4 和第 5 个值将包含 gamma 和 C(C 中的索引从 0 开始,而在 Matlab 中,它们从 1 开始)。
我没有对此进行测试,但我希望它能回答你的问题。
【讨论】:
我明确训练了一个模型来查看参数。 在 Matlab 中使用下面的代码,我设置了参数。
model = svmtrain(train_l, traindata,['-s 0 -t 3 -c 20 -g 0.0007 ']);
参数如下。
model.Parameters
ans =
0
3.0000
3.0000
0.0007
0
如您所见,我多次测试,参数 C 在此列表中。第 3 位是度数,默认为 3,第 4 位为 gamma。
【讨论】: