# 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;

}

}

0

## Answers

1,869UnicornDoes a C value of exactly 0 make sense at all?

Anyway, as far as I know in RapidMiner a value of C=0 is a "magic value", and C is replaced by 1/(number of examples in training set) . I will create an internal issue requesting to think about this magic value and at least document it better.

Best regards,

Marius

3Contributor Ihttp://rapid-i.com/rapidforum/index.php?topic=1962.0

discussed the same question as mine. However, I cannot find the exact reference that Ingo mentioned, which is authored by

Hastie and Tibshirani (and Friedman?)

Thank you for investigating this issue.