2012-04-16 2 views
2

Вот код, у меня есть:Libsvm в Java: выходит после 0 итераций, нет результата

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

Этот фрагмент кода не распечатывает ни одно из сообщений, которые вы указали. В чем же проблема? – ryanprayogo

+0

Печатное сообщение поступает из библиотеки libsvm. Проблема в том, что не должно быть 0 итераций, потому что это означает, что обучение не проводилось, что абсурдно. – Trup

+2

Привет, вы могли найти решение? Я столкнулся с той же проблемой –

ответ

0

Я понимаю, что это было задано много лет назад, но если это произойдет с кем-то еще, я собираюсь предположить, что значение nu выбрало недопустимую проблему.

Примечание в документации,

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

Убедитесь, что в nu выбранном отличие этих оценок. По умолчанию nu - 0.5.

Смежные вопросы