Teoria SVM: marginesy i wektory nośne
Klasyfikator maksymalnego marginesu, twardy a miękki margines (parametr C), wektory nośne.
Teoria SVM: marginesy i wektory nośne to bezpłatna lekcja Learn AI with Python na CoddyKit. To lekcja 1 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.
Czym jest SVM
Maszyna wektorów wspierających to klasyfikator, który wyznacza granicę najlepiej oddzielającą dwie klasy. Zamiast dowolnej granicy rozdzielającej wybiera tę, która zapewnia największy odstęp między klasami.
Hiperpłaszczyzna rozdzielająca
W dwóch wymiarach granicą jest prosta, a w większej liczbie wymiarów jest nią hiperpłaszczyzna. SVM definiuje ją jako w . x + b = 0, klasyfikując punkty na podstawie tego, po której stronie się znajdują.
Margines
Margines to odległość między hiperpłaszczyzną a najbliższymi punktami każdej klasy. SVM maksymalizuje ten margines, ponieważ większy odstęp zazwyczaj lepiej uogólnia się na nowe dane.
Hiperpłaszczyzna o maksymalnym marginesie
Spośród wszystkich prawidłowych granic SVM wybiera hiperpłaszczyznę o maksymalnym marginesie, czyli tę, która znajduje się najdalej od najbliższych punktów po obu stronach. To podstawowa idea, dzięki której SVM jest odporny na zakłócenia.
Wektory wspierające
Wektory wspierające to punkty danych położone najbliżej granicy, które stykają się z krawędziami marginesu. Tylko one wyznaczają hiperpłaszczyznę, więc usunięcie pozostałych punktów jej nie zmienia.
from sklearn.svm import SVC
model = SVC(kernel="linear")
model.fit(X, y)
print("Support vectors:\n", model.support_vectors_)
print("Indices:", model.support_)Dlaczego wektory wspierające mają znaczenie
Ponieważ model definiują wyłącznie wektory wspierające, SVM wymaga niewiele pamięci podczas predykcji i skupia się na najtrudniejszych, najbardziej informatywnych przykładach znajdujących się blisko granicy, zamiast na łatwych przykładach położonych daleko od niej.
Twardy margines
SVM z twardym marginesem wymaga idealnego rozdzielenia klas: żaden punkt nie może przekroczyć marginesu. Działa to tylko wtedy, gdy dane są doskonale separowalne liniowo, a model jest bardzo wrażliwy na wartości odstające.
Problem z twardym marginesem
Rzeczywiste dane zawierają szum i rzadko są idealnie separowalne. Pojedyncza wartość odstająca może sprawić, że twardy margines będzie niemożliwy do uzyskania, albo wymusić absurdalnie wąski margines. Należy więc dopuścić pewną liczbę błędów.
Miękki margines
SVM z miękkim marginesem pozwala niektórym punktom naruszyć margines lub zostać błędnie sklasyfikowanymi, godząc się na kilka błędów w zamian za szerszą i bardziej odporną granicę. Kontroluje to parametr C.
Parametr C
C określa karę za naruszenia. Większe C silniej karze błędy, co prowadzi do mniejszego marginesu i ścisłego dopasowania do danych treningowych (ryzyko przeuczenia). Mniejsze C dopuszcza większy luz i szerszy margines (silniejsza regularyzacja).
from sklearn.svm import SVC
strict = SVC(C=100, kernel="linear") # narrow margin, fits closely
relaxed = SVC(C=0.1, kernel="linear") # wide margin, more tolerantDobór C w praktyce
Wartość C należy wybrać za pomocą walidacji krzyżowej. Zbyt duża wartość prowadzi do przeuczenia, a zbyt mała do niedouczenia. Najlepsza wartość równoważy szerokość marginesu z dokładnością na danych treningowych dla danego zbioru danych.
from sklearn.model_selection import GridSearchCV
from sklearn.svm import SVC
gs = GridSearchCV(SVC(kernel="linear"), {"C": [0.01, 0.1, 1, 10, 100]}, cv=5)
gs.fit(X, y)
print("Best C:", gs.best_params_)Szybki test
Proszę sprawdzić swoją wiedzę na temat SVM.
Podsumowanie
Podsumowanie: SVM wyznacza hiperpłaszczyznę o maksymalnym marginesie, która rozdziela klasy. Wektory wspierające to najbliższe punkty i tylko one definiują granicę. Twardy margines wymaga idealnego rozdzielenia klas, a miękki margines pozwala na naruszenia kontrolowane przez C (większe C = mniejszy margines, słabsza regularyzacja).
Często zadawane pytania
Czy lekcja „Teoria SVM: marginesy i wektory nośne” jest bezpłatna?
Tak — pełny tekst „Teoria SVM: marginesy i wektory nośne” 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 „Teoria SVM: marginesy i wektory nośne”?
Klasyfikator maksymalnego marginesu, twardy a miękki margines (parametr C), wektory nośne. Ć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 1 z 4.
Ile czasu zajmuje lekcja „Teoria SVM: marginesy i wektory nośne”?
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)