0Pricing
Learn AI with Python · Lekcja

Trik jądrowy: RBF, wielomianowe i sigmoidalne

Dlaczego jądra działają, parametr gamma jądra RBF, wybór jąder dla różnych kształtów danych.

Trik jądrowy: RBF, wielomianowe i sigmoidalne to bezpłatna lekcja Learn AI with Python na CoddyKit. To lekcja 2 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej Learn AI with Python, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs Learn AI with Python zawiera 4 lekcji w sumie.

Gdy proste to za mało

Liniowy SVM wyznacza wyłącznie proste granice. Wiele zbiorów danych nie jest separowalnych liniowo: okrąg zawierający klasę otoczoną inną klasą nie może zostać rozdzielony prostą. Rozwiązaniem jest trik jądra.

Odwzorowanie w wyższe wymiary

Jeśli danych nie można rozdzielić w ich pierwotnej przestrzeni, odwzorowanie ich w przestrzeń o większej liczbie wymiarów może sprawić, że staną się separowalne. Krzywa w dwóch wymiarach może stać się płaską płaszczyzną w trzech wymiarach.

Trik jądra

Trik jądra oblicza podobieństwo K(x, z) między punktami tak, jakby zostały one odwzorowane w przestrzeń o dużej liczbie wymiarów, bez wykonywania kosztownego odwzorowania. Dzięki temu nieliniowe SVM-y działają wydajnie.

Czym jest funkcja jądra

Jądro K(x, z) to funkcja zwracająca iloczyn skalarny x i z w pewnej wielowymiarowej przestrzeni cech. Różne jądra oznaczają różne odwzorowania cech i kształty granic.

Jądro RBF

Jądro RBF (gaussowskie) jest najpopularniejszym wyborem domyślnym: K(x, z) = exp(-gamma * ||x - z||^2). Mierzy podobieństwo, które maleje wraz z odległością, umożliwiając wyznaczanie elastycznych, zakrzywionych granic.

from sklearn.svm import SVC

model = SVC(kernel="rbf", gamma="scale", C=1.0)
model.fit(X, y)

Parametr gamma

gamma kontroluje szerokość jądra RBF. Duże gamma oznacza, że każdy punkt ma wąski obszar wpływu, co daje pofalowaną granicę podatną na przeuczenie. Małe gamma oznacza szeroki obszar wpływu i gładszą granicę.

from sklearn.svm import SVC

wiggly = SVC(kernel="rbf", gamma=10)    # tight, can overfit
smooth = SVC(kernel="rbf", gamma=0.01)  # broad, may underfit

gamma i C razem

SVM z jądrem RBF zależy zarówno od parametru gamma (elastyczność granicy), jak i od C (tolerancja błędów). Parametry te wzajemnie na siebie wpływają, dlatego zazwyczaj dostraja się je jednocześnie za pomocą przeszukiwania siatki.

from sklearn.model_selection import GridSearchCV
from sklearn.svm import SVC

param = {"C": [0.1, 1, 10], "gamma": [0.01, 0.1, 1]}
gs = GridSearchCV(SVC(kernel="rbf"), param, cv=5)
gs.fit(X, y)

Jądro wielomianowe

Jądro wielomianowe K(x, z) = (gamma * x . z + r)^degree modeluje interakcje do wybranego stopnia. Należy go użyć, gdy oczekuje się interakcji cech określonego rzędu.

from sklearn.svm import SVC

model = SVC(kernel="poly", degree=3, coef0=1, gamma="scale")
model.fit(X, y)

Jądro sigmoidalne

Jądro sigmoidalne K(x, z) = tanh(gamma * x . z + r) działa podobnie jak funkcja aktywacji sieci neuronowej. Jest rzadziej używane i nie zawsze stanowi prawidłowe jądro, dlatego rzadko jest pierwszym wyborem.

from sklearn.svm import SVC

model = SVC(kernel="sigmoid", gamma="scale", coef0=0)

Wybór jądra

Wskazówki:

  • Liniowe w przypadku danych o dużej liczbie wymiarów lub danych tekstowych
  • RBF jako dobry wybór domyślny dla danych nieliniowych
  • Wielomianowe, gdy istotne są interakcje o znanym stopniu
  • Sigmoidalne rzadko, w niszowych przypadkach

Zawsze należy skalować cechy

Jądra takie jak RBF opierają się na odległościach, dlatego skala cech ma ogromne znaczenie. Przed użyciem SVM z jądrem należy zawsze standaryzować cechy, ponieważ cechy o dużej skali zdominują podobieństwo.

from sklearn.pipeline import make_pipeline
from sklearn.preprocessing import StandardScaler
from sklearn.svm import SVC

pipe = make_pipeline(StandardScaler(), SVC(kernel="rbf"))
pipe.fit(X, y)

Szybki test

Proszę sprawdzić swoją wiedzę na temat jąder.

Podsumowanie

Podsumowanie: Trik jądra oblicza K(x, z) jako iloczyn skalarny w przestrzeni o dużej liczbie wymiarów, bez kosztu wykonywania odwzorowania, umożliwiając wyznaczanie nieliniowych granic. RBF używa exp(-gamma * ||x-z||^2), przy czym duże gamma prowadzi do przeuczenia. Jądro wielomianowe odwzorowuje interakcje stopnia d. Przed użyciem SVM z jądrem należy zawsze skalować cechy.

Często zadawane pytania

Czy lekcja „Trik jądrowy: RBF, wielomianowe i sigmoidalne” jest bezpłatna?

Tak — pełny tekst „Trik jądrowy: RBF, wielomianowe i sigmoidalne” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu Learn AI with Python, przejdź na CoddyKit PRO. Kurs Learn AI with Python zawiera 4 lekcji w sumie.

Co nauczysz się w „Trik jądrowy: RBF, wielomianowe i sigmoidalne”?

Dlaczego jądra działają, parametr gamma jądra RBF, wybór jąder dla różnych kształtów danych. Ćwiczysz Learn AI with Python z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.

Czy potrzebuję doświadczenia, aby zacząć Learn AI with Python?

Nie wymagamy żadnego doświadczenia. Learn AI with Python w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 2 z 4.

Ile czasu zajmuje lekcja „Trik jądrowy: RBF, wielomianowe i sigmoidalne”?

Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.

Czy mogę pisać i uruchamiać kod w tej lekcji Learn AI with Python?

Tak. Każda lekcja Learn AI with Python zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.

Wszystkie lekcje w tym kursie

  1. Teoria SVM: marginesy i wektory nośne
  2. Trik jądrowy: RBF, wielomianowe i sigmoidalne
  3. SVM do klasyfikacji ze sklearn
  4. SVM do regresji (SVR)
← Powrót do Learn AI with Python