这是我的代码:
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
我试过通过调试器,但没有任何成功,我现在几乎被困住了。知道发生了什么事吗?
答案 0 :(得分:0)
我意识到这是多年前提出来的,但如果这种情况发生在其他任何人身上,我会猜测所选nu
的价值会产生不可行的问题。
在文档中注意,
nu <= 2 * min(#y_i = + 1, #y_i = - 1) / l <= 1
确保所选择的nu
尊重这些界限。默认情况下,nu
为0.5
。