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 underfitgamma 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
- Teoria SVM: marginesy i wektory nośne
- Trik jądrowy: RBF, wielomianowe i sigmoidalne
- SVM do klasyfikacji ze sklearn
- SVM do regresji (SVR)