Как сделать многоклассовую классификацию с помощью Методов опорных векторов (SVM)

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

Здесь проблема, у меня есть 4 класса (c1, c2, c3, c4). У меня есть обучающие данные для 4 классов.

Для нового вектора вывод должен быть похожим

C1 80% (победитель)

c2 10%

c3 6%

c4 4%

Как сделать это? Я планирую использовать libsvm (потому что это самый популярный). Я не знаю много об этом. Если какой-либо из Вас, парни использовали его ранее, говорит мне определенные команды, что я, как предполагается, использую.

50
задан mlguy 24 December 2009 в 03:01
поделиться

2 ответа

Обычно используются методы One vs. Rest и One vs. One. В первом методе вы получаете n классификаторов и результирующий класс будет иметь наивысшую оценку. Во втором методе результирующий класс получается большинством голосов всех классификаторов.

AFAIR, libsvm поддерживает обе стратегии многоклассовой классификации.

.
19
ответ дан 7 November 2019 в 11:05
поделиться

Проблему классификации нескольких классов всегда можно свести к двоичной проблеме, рекурсивно выбирая случайные разделы набора классов. Это не обязательно менее эффективно и результативно, чем изучение всех классов одновременно, так как проблемы суб-обучения требуют меньшего количества примеров, так как проблема разбиения меньше. (Это может потребовать, в лучшем случае, постоянного времени порядка больше, например, в два раза больше). Это также может привести к более точному обучению.

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

.
5
ответ дан 7 November 2019 в 11:05
поделиться
Другие вопросы по тегам:

Похожие вопросы: