2014-01-23 4 views
0

думаю, что у нас есть две категории с большим количеством документов, некоторые из которых находятся в первой категории, а остальные - во второй категории, я успешно получил модель категорий, и, как вы знаете, метод svm.svm_predict_probability возвращает 1 or -1Как работает метод svm.svm_predict_probability (для возвращаемого типа)?

я хочу знать, что, когда он возвращается 1 и когда он возвращается -1 и как я могу найти то, что номер, присвоенный первой категории и который один из них присвоен второй категории

заранее спасибо,

ответ

3

Согласно libsvm FAQ :

Этикетки с внутренним классом упорядочены по их первому появлению в учебном наборе . Для данных k-класса внутренние метки: 0, ..., k-1, , и каждый двухклассный SVM рассматривает пару (i, j) с i < j. Затем класс i рассматривается как положительный (+1) и j как отрицательный (-1). Например, если набор данных имеет метки + 5/+ 10 и +10, то сначала проблема +5 против +10 SVM имеет +10 как положительный (+1) и +5 как отрицательный (-1).

В этой настройке, если у вас есть метки +1 и -1, возможно, что внутренне соответствуют -1 и +1 соответственно. Некоторые новые пользователи были смущены по этому поводу, поэтому после версии 3.17, если набор данных имеет только две метки +1 и -1, внутренне мы обеспечиваем +1 до -1. Тогда класс +1 всегда рассматривается как положительный в проблеме SVM. Обратите внимание, что это только для двухклассных данных.

Таким образом, в современной libsvm (после 3.17) существуют два случая:

  • Если у вас есть +1 и -1 clases в данных учебных, чем это же в модели
  • В противном случае первым классом, который появляется в данных обучения, является класс +1, а второй - -1 один

Внутреннее решение составлено на основе конкретной формулировки проблемы SVM, которая может быть кратко указана as:

f(x) = sgn(SUM_i alpha_i y_i K(SV_i,x) + b)

где

  • alpha_i - lagragian коэффициенты, найденные во время процедуры оптимизации (для i-го вектора поддержки)
  • Y_i - ярлыком i-ой поддержки вектора
  • SV_i - я 1-й опорный вектор
  • b - значение перехвата/смещения (найдено в процессе оптимизации)
  • K (. ,.) - функция ядра, используемая при обучении, например линейное ядро ​​K (x, y) = x'y или rbf Ядро K (x, y) = exp (-гамма || xy ||^2)
Смежные вопросы