2013-06-14 3 views
0

У меня есть 25 классов, а класс 0 содержит все отрицательные образцы всех 24 других классов, поэтому количество образцов в этом классе намного больше, чем у других (например, в 10 раз больше, поскольку оно должно включать все отрицательные образцы из 24 других классов)тренировка несбалансированных данных в libsvm

Теперь мой вопрос: что мне делать, когда я хочу обучать этот набор данных?

Должен ли я использовать вариант использования без балансировки, который libsvm prodives? -w0 1 -w1 ....

Я имею в виду, это обязательно, чтобы использовать этот параметр или нет?

потому что, когда я тренирую данные без этой опции, дает 99,8% точности для разделения классов и когда я тестирую эту точную модель !!! для некоторых классов я получаю 100% -ную точность, а для некоторых других классов я получаю 0.0% !!!

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

Я хочу использовать эту опцию, но я не знаю правил для нее. Я имею в виду, как мне установить значение для класса с помощью этой опции?

Пусть число выборок в каждых классах:

класса 0 -> 3433

класс 1 -> 745

класс 2 -> 232

класс 3 -> 53

. . . класс 23 -> 975

Как мне установить wi для каждого класса, если бы я масштабировал их между [0,1] или [-1 1] или (-inf + inf) или что?

Резюме>

1). Обязательно ли использовать параметр -wi для моего набора данных?

2). как я должен установить это значение

Благодаря

+0

Итак, если вы проверите и скажете, что образец 3 не находится в классе 1, вы помещаете его в класс 0, даже если это пример класса 2? Другими словами, какие-либо образцы отображаются в нескольких классах? –

+0

, конечно, нет, может случиться так, что два образца из двух классов будут похожи на 60% значения вектор-функции, но никогда не произойдет, что образец из определенного класса появится в другом ... – PsP

+0

Я вижу, я просто делал уверен, что это не было причиной огромного размера выборки класса 0. Вес по умолчанию равен 1, и вам, возможно, придется попробовать несколько разных значений с помощью набора проверки. К сожалению, параметр w изменяет C на основе каждого класса, что также будет влиять на регуляризацию/гладкость границы решения в низкоразмерном пространстве. Вы можете оставить остальные классы в 1 на данный момент и начать уменьшать w для класса 0. Вам нужно использовать параметр -wi, если класс 0 не так распространен, как в данных обучения. В противном случае вы на самом деле не достигаете 99,8% точности. –

ответ

0

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

+0

хотя я получил свой ответ несколько месяцев назад ... но да, это правда ... это не обязательно, и все зависит от данных в пространстве n-го пространства ... – PsP

0

не в состоянии комментировать, так что я буду писать его в качестве ответа:

два предложения:

  1. уменьшить вес для class0
  2. или принять двухэтапный подход:
    • объединить все примеры из других 24 классов, рассматривать их как один класс, и построить бинарный классификатор
    • построить 24-позиционный классификатор только для положительных примеров. используйте его, если результат классификации с последнего шага положительный.
0

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

Если вы настроили многоклассовый SVM с помощью LIBSVM, внутри он просто будет генерировать несколько двоичных SVM. Таким образом, нет ничего странного в том, что я устанавливаю 24 SVM самостоятельно.

+1

Я категорически не согласен создавать только бинарные классификаторы и самостоятельно выполнять голосование. есть очень мало шансов, что вы сможете реализовать лучшего избирателя. класс с наивысшей вероятностью против «0» не обязательно выигрывает против других не «0» классов (проблема с бумажными ножницами). Оставьте это для образованных математиков, которые предоставили теории, стоящие за реализацией. – stefan

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