0Pricing
Learn AI with Python · Lekcja

SVM do regresji (SVR)

Rura epsilon SVR, nu-SVR, porównanie SVR z regresją liniową dla danych nieliniowych.

SVM do regresji (SVR) to bezpłatna lekcja Learn AI with Python na CoddyKit. To lekcja 4 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.

Modele SVM mogą również wykonywać regresję

Idea marginesu ma również zastosowanie w regresji. Regresja wektorów wspierających (SVR) dopasowuje funkcję, utrzymując przewidywania w paśmie tolerancji i ignorując niewielkie błędy.

Rura epsilonowa

SVR wyznacza wokół przewidywanej funkcji rurę epsilonową. Punkty wewnątrz rury mają zerową stratę; karane są tylko punkty znajdujące się na zewnątrz. Dzięki temu model skupia się na istotnych błędach.

Dlaczego rura pomaga

Ignorując niewielkie odchylenia, SVR ogranicza przeuczenie spowodowane szumem i tworzy gładsze, bardziej odporne dopasowanie. Drobne wahania mieszczące się w granicach tolerancji po prostu nie wpływają na model.

Podstawowe użycie SVR

SVR działa podobnie jak SVC i obsługuje te same jądra. RBF jest często używanym ustawieniem domyślnym w regresji nieliniowej.

from sklearn.svm import SVR

model = SVR(kernel="rbf", C=100, epsilon=0.1, gamma="scale")
model.fit(Xtr, ytr)
print(model.score(Xte, yte))

Parametr epsilon

epsilon określa szerokość rury. Większa wartość epsilon oznacza szersze pasmo, mniej wektorów wspierających i prostszy model. Mniejsza wartość epsilon pozwala dopasować model ściślej do danych.

from sklearn.svm import SVR

wide = SVR(epsilon=1.0)   # tolerant, simpler
tight = SVR(epsilon=0.01) # fits closely

Parametr C w SVR

Podobnie jak w klasyfikacji, C określa karę za punkty znajdujące się poza rurą. Większa wartość C silniej karze te błędy, co prowadzi do dokładniejszego dopasowania; mniejsza wartość C zapewnia silniejszą regularyzację i gładszą krzywą.

from sklearn.svm import SVR

flexible = SVR(C=1000)  # fits training closely
smooth = SVR(C=0.1)     # more regularized

epsilon a C: dwa różne parametry

Należy pamiętać o różnicy: epsilon określa szerokość rury (czyli zakres ignorowanego błędu), natomiast C określa karę za błędy znajdujące się poza rurą. Należy dostrajać oba parametry.

Skalowanie ma znaczenie również w SVR

Podobnie jak wszystkie modele SVM, SVR opiera się na odległościach i jest wrażliwy na skalę danych. Zawsze należy standaryzować cechy, a dla stabilniejszego trenowania warto rozważyć również skalowanie zmiennej docelowej.

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

pipe = make_pipeline(StandardScaler(), SVR(kernel="rbf"))
pipe.fit(Xtr, ytr)

Dostrajanie SVR

Należy przeprowadzić wyszukiwanie siatkowe wartości C, gamma i epsilon, aby znaleźć najlepsze dopasowanie. Do oceny należy użyć metryki regresji, takiej jak ujemny błąd średniokwadratowy.

from sklearn.model_selection import GridSearchCV
from sklearn.svm import SVR

param = {
    "C": [1, 10, 100],
    "gamma": [0.01, 0.1, 1],
    "epsilon": [0.01, 0.1, 0.5],
}
gs = GridSearchCV(SVR(), param, cv=5, scoring="neg_mean_squared_error")
gs.fit(Xtr, ytr)

Wariant nu-SVR

NuSVR zastępuje parametr epsilon parametrem nu (z zakresu od 0 do 1), który bezpośrednio określa odsetek wektorów wspierających i błędów podczas trenowania. Jest to alternatywna parametryzacja, którą niektórym osobom łatwiej zrozumieć.

from sklearn.svm import NuSVR

model = NuSVR(nu=0.5, C=100, kernel="rbf")
model.fit(Xtr, ytr)

Kiedy używać SVR

SVR dobrze sprawdza się w przypadku małych i średnich zbiorów danych z nieliniowymi wzorcami oraz wtedy, gdy ważna jest odporność na szum. W przypadku bardzo dużych zbiorów danych lepiej użyć modeli liniowych lub boosting gradientowego, które lepiej się skalują.

Szybkie sprawdzenie

Sprawdź swoją wiedzę o SVR.

Podsumowanie

Podsumowanie: SVR dopasowuje funkcję wewnątrz rury epsilonowej niewrażliwej na epsilon, w której punkty wewnątrz nie generują żadnego kosztu. Parametr epsilon określa szerokość rury (większa wartość oznacza prostszy model), a C karze punkty znajdujące się poza nią. Zawsze należy skalować cechy, dostrajać parametry C/gamma/epsilon oraz rozważyć NuSVR jako alternatywną parametryzację.

Często zadawane pytania

Czy lekcja „SVM do regresji (SVR)” jest bezpłatna?

Tak — pełny tekst „SVM do regresji (SVR)” 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 „SVM do regresji (SVR)”?

Rura epsilon SVR, nu-SVR, porównanie SVR z regresją liniową dla danych nieliniowych. Ć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 4 z 4.

Ile czasu zajmuje lekcja „SVM do regresji (SVR)”?

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