2

这是我的代码:

svmProblem.x = new svm_node [numSamples][numDims];
svmProblem.y = trainingY;
for(int i=0; i < numSamples; i++) {
    for (int j = 0; j < numDims; j++) {
         svmProblem.x[i][j] = new svm_node();
         svmProblem.x[i][j].index = j;
         svmProblem.x[i][j].value = trainingX[i][j];
    }
    svmProblem.y[i] = trainingY[i];
 }

svmProblem.l = numSamples;
svm_parameter svmParam = new svm_parameter();
svmParam.probability = 1;
svmParam.kernel_type = svm_parameter.LINEAR;
svm_model model = svm.svm_train(svmProblem, svmParam);

这是执行结束时的消息:

optimization finished, #iter = 0
nu = NaN
obj = 0.0, rho = 0.0
nSV = 0, nBSV = 0
Total nSV = 0

我尝试通过调试器逐步调试它,但没有任何成功,我现在几乎被卡住了。知道发生了什么吗?

4

1 回答 1

0

我意识到这是几年前提出的问题,但如果其他人发生这种情况,我会猜测 selected 的值会nu产生一个不可行的问题。

在文档中注意,

nu <= 2 * min(#y_i = + 1, #y_i = - 1) / l <= 1

确保nu选择的人遵守这些界限。默认情况下,nu0.5.

于 2014-10-15T18:55:22.043 回答