svmtrain - не удалось решить проблему оптимизации - PullRequest
2 голосов
/ 03 июля 2011

Я использую svmtrain для различения нескольких пар данных.Хотя в одном случае svmtrain работает как нужно (вывод объекта классификатора с точностью ~ 70%, что подтверждается svmclassify), все остальные случаи, похоже, дают сбой.Мои векторные векторы имеют 134 измерения, и я использую от 300 до 800 точек данных для каждого класса.(Каждый класс не обязательно имеет одинаковое количество точек данных).Я попытался использовать ядро ​​по умолчанию для svmtrain, используя метод

SVM = svmtrain(double(train{k}), group_train{k},'showplot',true);

В этом случае я получаю сообщение об ошибке:

Невозможно решить проблему оптимизации: превышено максимальное количество итераций;увеличить параметры. MaxIter.Чтобы продолжить решение проблемы с текущим решением в качестве отправной точки, установите x0 = x перед вызовом quadprog.

Я также попытался увеличить число итераций и указать ядро ​​с помощью вызова:

options = optimset('maxiter',1000,'largescale','on');
SVM = svmtrain(double(train{k}),group_train{k},'Kernel_Function','mlp','Method','QP',...
   'quadprog_opts',options);

В этом случае я получаю ошибку:

Невозможно решить задачу оптимизации: Выход: решение не ограничено и находится в бесконечности;ограничения недостаточно ограничительны.

В случае, если это сработало, у меня есть 338 точек данных из первого класса и 476 точек данных из второго класса.Например, в трех случаях, которые не работают, у меня есть 828, 573 и 333 точки данных во втором классе, в то время как первый класс остается тем же и имеет 338 точек данных.Кажется, что ни один из методов не работает.

Не могли бы вы мне помочь?Я пытался решить эту проблему в течение недели и не повезло.Я использую MATLAB 7.9.0 R2009B на виртуальной машине Windows XP с процессором 1 ГГц и 2 ГБ оперативной памяти.

Большое спасибо!-Vivek

1 Ответ

4 голосов
/ 09 сентября 2011

Сделай так:

options = optimset('maxiter',1000);
svmtrain(TotalResult,YResultsTotal,'Kernel_Function','mlp','Method','QP',...
            'quadprog_opts',options);
...