2010-08-05 1 views
1

Реализация SVM opencv принимает параметр, обозначенный как «тип SVM», который должен использоваться в структуре CVSVMParams, используемой для обучения SVM. Все объяснение, которое я могу найти:Что такое параметр типа svm OpenCV

// SVM type
enum { C_SVC=100, NU_SVC=101, ONE_CLASS=102, EPS_SVR=103, NU_SVR=104 };

Каждый знает, что представляют собой эти разные значения?

ответ

6

В целом:

  • Классификации МЫ Тип 1 (также известный как классификация С-SVM)
  • Классификация МОВ Тип 2 (также известный как классификации NU-SVM)
  • Регрессии МЫ Тип 1 (также известный как эпсилон-SVM регрессия)
  • регрессия МОВ типа 2 (также известный как ню-SVM регрессии)

Детали могут быть найдено на странице SVM

+1

Как насчет одного класса? – petersaints

9

Это разные формулировки СВМ. В основе SVM лежит проблема математической оптимизации. Эта проблема может быть сформулирована по-разному.

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

nu-SVM использует nu вместо C. nu - это примерно процент тренировочных очков, которые в конечном итоге окажутся в качестве векторов поддержки. Чем больше векторов поддержки, тем шире ваша маржа, тем больше очков обучения будет ошибочно классифицировано. nu варьируется от 0,1 до 0,8 - при 0,1 примерно 10% очков тренировки будут поддерживающими векторами, на 0,8, больше, чем 80%. Я говорю грубо, потому что это только что коррелировало именно так - это не точно.

epsilon-SVR и nu-SVR используют SVM для регрессии. Вместо того, чтобы выполнять двоичную классификацию путем нахождения гиперплоскости максимального предела, вместо этого понятие используется для поиска гипертубы, которая лучше всего подходит для данных, чтобы использовать ее для прогнозирования будущих моделей. Они отличаются тем, как они параметризуются (например, nu-SVM и C-SVM отличаются).

One-Class SVM - обнаружение новизны. Вместо бинарной классификации или прогнозирования значения вместо этого вы даете SVM обучающий набор и он пытается подготовить модель для обертывания вокруг этого набора, чтобы будущий экземпляр можно было классифицировать как часть класса или вне класса (роман или останец).