Java中的Libsvm:在0次迭代后退出,没有结果

时间:2012-04-16 14:50:35

标签: java libsvm

这是我的代码:

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

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

1 个答案:

答案 0 :(得分:0)

我意识到这是多年前提出来的,但如果这种情况发生在其他任何人身上,我会猜测所选nu的价值会产生不可行的问题。

在文档中注意,

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

确保所选择的nu尊重这些界限。默认情况下,nu0.5