Różnica jąder w SVM?


27

Czy ktoś może mi powiedzieć różnicę między jądrami w SVM:

  1. Liniowy
  2. Wielomian
  3. Gaussowski (RBF)
  4. Sigmoid

Ponieważ, jak wiemy, jądro służy do mapowania naszej przestrzeni wejściowej na przestrzeń cech o wysokiej wymiarowości. I w tej przestrzeni cech znajdujemy liniowo oddzielalną granicę.

Kiedy są używane (pod jakim warunkiem) i dlaczego?

Odpowiedzi:


4

Jądro liniowe jest tym, czego można oczekiwać, modelem liniowym. Uważam, że wielomianowe jądro jest podobne, ale granica jest w pewnym określonym, ale arbitralnym porządku

(np. zamówienie 3: ).za=b1+b2)X+b3)X2)+b4X3)

RBF wykorzystuje krzywe normalne wokół punktów danych i sumuje je, aby granicę decyzyjną można zdefiniować na podstawie rodzaju warunków topologicznych, takich jak krzywe, w których suma jest wyższa niż 0,5. (patrz to zdjęcie )

Nie jestem pewien, czym jest jądro sigmoidalne, chyba że jest ono podobne do modelu regresji logistycznej, w którym funkcja logistyczna jest używana do definiowania krzywych zgodnie z tym, gdzie wartość logistyczna jest większa niż pewna wartość (prawdopodobieństwo modelowania), na przykład 0,5 jak normalna walizka.


Tak więc możemy uzyskać liniowo oddzielalną hiperpłaszczyznę (granicę), jeśli użyjemy liniowego jądra? a jeśli użyjemy jądra wielomianowego lub RBF, hiperlan (dla wielomianu) może być okręgiem zgrupowanych klas (dla RBF) i krzywej ?? czy to prawda? scikit-learn.org/stable/modules/svm.html
user3378327

Każde z jąder działa dla wysokowymiarowych wersji ich odpowiednich granic. Czy to jest odpowiedź na Twoje pytanie? Nie jesteś ograniczony do trzech wymiarów dla każdego jądra, o którym wiem.
John Yetter

Chcę tylko wyjaśnić. Więc granica przy użyciu liniowego jądra jest liniowa? Bo RBF jest jak krąg zgrupowanych klas? a dla wielomianu może być krzywą opartą na stopniu wielomianu ??
user3378327

Nie powiedziałbym, że RBF to krąg zgrupowanych klas. Rozumiem, że stosuje funkcję opartą na rozkładzie normalnym w każdym punkcie danych i sumuje te funkcje. Następnie granica jest tworzona przez krzywą reprezentującą określoną wartość dla tej funkcji. Jeśli ktoś, kto wniósł wkład do biblioteki SVM, może się do niego włączyć, może to pomóc. Myślę, że twoje rozumienie dwóch pozostałych jąder jest prawidłowe.
John Yetter

U powiedział, że jądro Liniera jest tym, czego się spodziewałem (aby uzyskać klasę rozdzielaną liniowo) za pomocą jądra. i używając klasyfikatora SVM, nazwaliśmy go LINIER SVM. Ale jak możemy uzyskać dane rozdzielane liniowo bez jądra w SVM. Jak to nazywamy? Nadal Linier SVM lub Non Linier SVM ??
user3378327

11

Opierając się na podstawowej wiedzy czytelnika na temat jąder.

Jądro liniowe: K.(X,Y)=XT.Y

K.(X,Y)=(γXT.Y+r)re,γ>0

K.(X,Y)=exp(X-Y2)/2)σ2))exp(-γX-Y2)),γ>0

Jądro Sigmoid: który jest podobny do funkcji sigmoidalnej w regresji logistycznej.K.(X,Y)=tanh(γXT.Y+r)

Tutaj , i są parametrami jądra.d γrreγ


3
Chociaż informacje zawarte w odpowiedzi są poprawne, nie sądzę, aby odpowiadały na postawione tutaj pytanie, które dotyczy raczej praktycznej różnicy między nimi, tj. Kiedy należy użyć jednego lub drugiego.
Firebug

1
O dziwo, te proste definicje są trudne do zdobycia. Powinny one być pierwszą rzeczą przedstawioną w rozmowach na temat różnic w jądrach, ale ich brak jest powszechny.
cammil

Czy jest na to jakieś oficjalne źródło? (Przetestowałem je i wydają się poprawne, ale chciałbym móc je cytować.)
Christian Eriksson

6

Na to pytanie można odpowiedzieć z teoretycznego i praktycznego punktu widzenia. Z teorii zgodnie z twierdzeniem No-Free Lunch wynika, że ​​nie ma gwarancji, że jedno jądro będzie działać lepiej niż drugie. Jest to a priori, którego nigdy nie wiesz ani nie możesz dowiedzieć się, które jądro będzie działać lepiej.

Z praktycznego punktu widzenia zapoznaj się z następującą stroną:

Jak wybrać jądro dla SVM?


1

Zastanawiając się nad tym, do czego jądro jest „dobre” lub kiedy należy go używać, nie ma twardych i szybkich reguł.

Jeśli twój klasyfikator / regressor działa dobrze z danym jądrem, dobrze jest, jeśli nie, rozważyć zmianę na inne.

Wgląd w to, jak może działać twoje jądro, szczególnie jeśli jest to model klasyfikacyjny, można uzyskać, przeglądając niektóre przykłady wizualizacji, np. Https://gist.github.com/WittmannF/60680723ed8dd0cb993051a7448f7805

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.