Разница ядер в SVM?


27

Может кто-нибудь подскажите пожалуйста разницу между ядрами в SVM:

  1. линейный
  2. многочлен
  3. Гауссовский (RBF)
  4. сигмоид

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

Когда они используются (при каких условиях) и почему?

Ответы:


4

Линейное ядро ​​- это то, что вы ожидаете, линейная модель. Я полагаю, что ядро ​​многочлена аналогично, но граница имеет некоторый определенный, но произвольный порядок

(например, порядок 3: a=b1+b2X+b3X2+b4X3 ).

RBF использует нормальные кривые вокруг точек данных и суммирует их так, чтобы граница решения могла быть определена типом условия топологии, таким как кривые, где сумма превышает значение 0,5. (см. эту картину )

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


Таким образом, мы можем получить линейно отделимую гиперплоскость (границу), если мы используем линейное ядро ​​?? и если мы используем полиномиальное ядро ​​или ядро ​​RBF, (для полиномиального) гиперлан может быть кругом сгруппированных классов (для RBF) и кривой ?? это правильно?? scikit-learn.org/stable/modules/svm.html
user3378327

Каждый из ядер работает для версий с большими размерами соответствующих границ. Это отвечает на ваш вопрос? Вы не ограничены тремя измерениями для любого ядра, о котором я знаю.
Джон Йеттер

Я просто хочу прояснить это. То есть граница с использованием линейного ядра является линейной? Для RBF это как круг сгруппированных классов ?? и для полинома, это может быть кривой, основанной на степени полинома ??
user3378327

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

U сказал, что Linier Kernel - это то, что я ожидал (чтобы получить линейно отделимый класс) с помощью Kernel. и с помощью классификатора SVM мы назвали его LINIER SVM. Но как, если мы сможем получить разделяемые данные без каких-либо ядер в SVM. Как мы это называем ?? Все еще Linier SVM или не Linier SVM ??
user3378327

11

Опираясь на базовые знания читателя о ядрах.

Линейное ядро: K(X,Y)=XTY

K(X,Y)=(γXTY+r)d,γ>0

K(X,Y)=exp(XY2/2σ2)exp(γXY2),γ>0

K(X,Y)=tanh(γXTY+r)

rdγ


3
Хотя информация в вашем ответе верна, я не думаю, что она отвечает на поставленный здесь вопрос, который больше относится к тому, какова практическая разница между ними, т.е. когда использовать один или другой.
Firebug

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

Есть ли официальный источник для них? (Я проверил их, и они кажутся правильными, но я хотел бы иметь возможность процитировать их.)
Кристиан Эрикссон

6

На этот вопрос можно ответить с теоретической и практической точек зрения. Из теоретического в соответствии с теоремой No-Free Lunch говорится, что нет никаких гарантий, что одно ядро ​​будет работать лучше, чем другое. Это априори, вы никогда не знаете, и вы не можете узнать, какое ядро ​​будет работать лучше.

С практической точки зрения обратитесь к следующей странице:

Как выбрать ядро ​​для SVM?


1

Размышляя о том, для чего «хорошо» ядро ​​или когда его следует использовать, жестких и быстрых правил не существует.

Если вы классификатор / регрессор хорошо работает с данным ядром, целесообразно, если нет, подумать о переходе на другое.

Понимание того, как может работать ваше ядро, особенно если это классификационная модель, можно получить, просмотрев некоторые примеры визуализации, например https://gist.github.com/WittmannF/60680723ed8dd0cb993051a7448f7805

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.