Matlab SVM тренинг для набора мультиклассовых данных - PullRequest
1 голос
/ 29 января 2012

У меня есть вопрос о наборе инструментов SVM MATLAB 2009b!вопрос:

Как я могу обучить классификатор SVM для классификации наборов данных нескольких классов в наборе инструментов MATLAB 2009b?

Я просто хочу работать с набором инструментов MATLAB, поэтому, пожалуйста, ответьте, если естьспособ реализовать это.Например, приведенный ниже код предназначен для классификации наборов данных двух классов:

svmtrain( training data,              ...
          labels of training data,    ...
          'Kernel_Function',          ...
          'rbf',                      ...
          'RBF_Sigma',                ...
          sigma value,                ...
          'Method',                   ...
          'LS',                       ...
          'BoxConstraint',            ...
          C                           ...
          ); 

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

Это означает, должен ли я рассмотреть 1 для метки выбранного класса и установить метку другогоклассы до 0, и обучите SVM с кодом выше, и сделайте это для всех классов!?

Спасибо за ваше внимание: -)

Ответы [ 3 ]

1 голос
/ 05 мая 2015

Если у вас версия MATLAB R2014b или новее, вы можете использовать функцию fitcecoc в наборе инструментов статистики и машинного обучения для обучения многоклассного SVM.

1 голос
/ 30 января 2012

Я не использовал SVM в Matlab, поэтому другие люди, вероятно, могут дать более информированный ответ, но я поделюсь тем, что узнал.

Набор инструментов для биоинформатики Matlab SVM

После прочтения документации SVM в наборе инструментов биоинформатики поддерживает только двоичную классификацию. Как предлагается в вопросе, двоичный классификатор может, с некоторыми усилиями, использоваться для классификации на несколько классов. Существует некоторое обсуждение подходов для этого в контексте SVM здесь .

Альтернативные опции

LIBSVM поддерживает многоклассовую классификацию и поставляется с интерфейсом Matlab . Вы можете попробовать установить и использовать его.

Кроме того, глядя на это, я наткнулся на несколько других наборов инструментов Matlab с реализациями SVM. Если LIBSVM не подходит для вас, возможно, стоит поискать, подходит ли другая реализация SVM для ваших нужд.

0 голосов
/ 04 февраля 2012

Да, способ решения вашей проблемы - это реализовать одну стратегию против всех. Одним из недостатков SVM является то, что он не имеет прямой реализации мультиклассификации. Но вы можете реализовать это через двоичную классификацию. Я не видел никакой функции для классификации SVM Multi в Matlab. Но я думаю, что это не сложно реализовать самостоятельно

...