issue of setting up C=0 when using Libsvm operator in Rapidminer
When using libsvm operator, I can set up C = 0. However,when I study the source code of Rapidminer, the Svm.java implements the setting up function as this
if (svm_type == svm_parameter.C_SVC || svm_type == svm_parameter.EPSILON_SVR || svm_type == svm_parameter.NU_SVR) {Looks like Rapidminer transforms 'C=0' to some other values base on the above implementation. I would like to know the underlying reason of doing this kind of transformation. SVM should allow us to setup C=0, why Rapidminer changes this to another value.
if (param.C < 0)
return "C < 0";
if (param.C == 0.0d) {
Kernel kernel = getGenericKernel(prob, param);
double c = 0.0d;
for (int i = 0; i < prob.l; i++) {
c += kernel.kernel_function(i, i);
}
c = prob.l / c;
param.C = c;
}
}