Я использую LibSVM для выполнения некоторых классификаций нескольких классов. Я тренировал модель, используя интерфейс MATLAB LibSVM. Затем я сохранил эту модель в формате, который будет распознан в C. Теперь я хочу классифицировать с помощью svm_predict в C. У меня возникли проблемы с воспроизведением результатов, которые я видел в MATLAB. На самом деле я получаю один и тот же выпуск класса независимо от того, какой тестовый вектор я кормлю (даже вектор нулей). Я думаю, проблема связана с тем, как я загружаю вектор-тест x в структуру svm_node. Ниже приведен фрагмент кода. Дайте мне знать, если это правильно, или если я что-то упустил.Классификация с использованием LibSVM
struct svm_model *libsvm_model = svm_load_model('mymodel.svm');
struct svm_node x[2001]; // this is for one feature vector of size 2000x1
int index = 1;
int i = 0;
for (i = 0; i < features.size(); i++) {
x[i].index = index;
x[i].value = features.at(i);
index = index + 1;
}
x[i+1].index = -1;
x[i+1].value = '?';
double result = svm_predict(libsvm_model, x);