Kernel-tricket: RBF, polynomiel og sigmoid
Hvorfor kernels virker, gamma-parameteren for RBF-kernen, valg af kernels til forskellige datastrukturer.
Kernel-tricket: RBF, polynomiel og sigmoid er en gratis Lær AI med Python-lektion på CoddyKit. Dette er lektion 2 af 4. Du kan læse alle 3 lektioner i dette læringsspor gratis i deres fulde længde — derefter låser CoddyKit PRO alle lektioner op samt praktiske øvelser med en indbygget kodeeditor og en AI-underviser døgnet rundt. Den er en del af læringsforløbet i Lær AI med Python, og dine fremskridt synkroniseres på tværs af nettet og CoddyKit-appen. Lær AI med Python-kurset indeholder 4 lektioner i alt.
Når linjer ikke er nok
En lineær SVM tegner kun lige grænser. Mange datasæt er ikke lineært adskillelige; en cirkel med én klasse omgivet af en anden kan ikke opdeles af en linje. Kerneltricket løser dette.
Afbildning til højere dimensioner
Hvis data ikke kan adskilles i det oprindelige rum, kan en projektion til et rum med højere dimensioner gøre dem adskillelige. En kurve i 2D kan blive til et fladt plan i 3D.
Kerneltricket
Kerneltricket beregner ligheden K(x, z) mellem punkter, som om de var afbildet i høje dimensioner, uden faktisk at udføre den beregningstunge afbildning. Det gør ikke-lineære SVM'er effektive.
Hvad en kernefunktion er
En kerne K(x, z) er en funktion, der returnerer prikproduktet af x og z i et egenskabsrum med høj dimension. Forskellige kerner medfører forskellige egenskabsafbildninger og grænseformer.
RBF-kernen
Den RBF-gaussiske kerne er det mest populære standardvalg: K(x, z) = exp(-gamma * ||x - z||^2). Den måler en lighed, der aftager med afstanden, og tillader fleksible, krumme grænser.
from sklearn.svm import SVC
model = SVC(kernel="rbf", gamma="scale", C=1.0)
model.fit(X, y)gamma-parameteren
gamma styrer RBF-bredden. Stor gamma betyder, at hvert punkt har en snæver indflydelse, hvilket giver en bugtet grænse, der kan føre til overtilpasning. Lille gamma betyder en bred indflydelse og en glattere grænse.
from sklearn.svm import SVC
wiggly = SVC(kernel="rbf", gamma=10) # tight, can overfit
smooth = SVC(kernel="rbf", gamma=0.01) # broad, may underfitgamma og C sammen
RBF-SVM'er afhænger både af gamma (grænsens fleksibilitet) og C (tolerance over for fejl). De påvirker hinanden, så du justerer dem normalt sammen med et gitterbaseret søgeforløb.
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)Den polynomielle kerne
Den polynomielle kerne K(x, z) = (gamma * x . z + r)^degree modellerer interaktioner op til en valgt grad. Brug den, når du forventer interaktioner mellem egenskaber af en kendt orden.
from sklearn.svm import SVC
model = SVC(kernel="poly", degree=3, coef0=1, gamma="scale")
model.fit(X, y)Sigmoid-kernen
Den sigmoidformede kerne K(x, z) = tanh(gamma * x . z + r) opfører sig som en aktiveringsfunktion i et neuralt netværk. Den er mindre almindelig og ikke altid en gyldig kerne, så den er sjældent førstevalg.
from sklearn.svm import SVC
model = SVC(kernel="sigmoid", gamma="scale", coef0=0)Valg af kerne
Retningslinjer:
- Lineær til data med mange dimensioner eller tekstdata
- RBF som et stærkt standardvalg til ikke-lineære data
- Polynomiel, når interaktioner af en kendt grad er vigtige
- Sigmoid sjældent, i nichetilfælde
Skalér altid egenskaberne
Kerner som RBF er afhængige af afstande, så egenskabernes skala har enorm betydning. Standardisér altid egenskaberne, før du bruger en SVM med kerne, ellers vil egenskaber med stor skala dominere ligheden.
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)Hurtig kontrol
Test din viden om kerner.
Opsummering
Opsummering: Kerneltricket beregner K(x, z) som et prikprodukt i høj dimension uden omkostningen ved selve afbildningen, hvilket muliggør ikke-lineære grænser. RBF bruger exp(-gamma * ||x-z||^2), hvor stor gamma fører til overtilpasning. Polynomielle kerner opfanger interaktioner af grad d. Skalér altid egenskaberne, før du bruger SVM'er med kerne.
Lær Python med en AI-underviser — gratis
Skriv og kør rigtig kode i din browser, få øjeblikkelig hjælp fra en AI-underviser døgnet rundt, og fortsæt, hvor du slap, på web eller i appen.
- Kurser
- 53
- Lektioner
- 225
Ofte stillede spørgsmål
Er lektionen “Kernel-tricket: RBF, polynomiel og sigmoid” gratis?
Ja — alle 3 lektioner i læringssporet Lær AI med Python, inklusive “Kernel-tricket: RBF, polynomiel og sigmoid”, kan læses gratis i deres fulde længde her på webstedet. Derefter låser CoddyKit PRO alle lektioner op samt interaktive øvelser med en indbygget kodeeditor og en AI-underviser døgnet rundt. Lær AI med Python-kurset indeholder 4 lektioner i alt.
Hvad lærer jeg i “Kernel-tricket: RBF, polynomiel og sigmoid”?
Hvorfor kernels virker, gamma-parameteren for RBF-kernen, valg af kernels til forskellige datastrukturer. Du øver dig i Lær AI med Python med praktisk kode, som du kører direkte i browseren, og en AI-vejleder døgnet rundt besvarer dine spørgsmål, mens du arbejder dig gennem lektionen.
Skal jeg have erfaring for at begynde på Lær AI med Python?
Der kræves ingen tidligere erfaring. Lær AI med Python på CoddyKit er tilrettelagt for både begyndere og øvede, så du kan starte her eller fra begyndelsen og lære i dit eget tempo. Dette er lektion 2 af 4.
Hvor lang tid tager lektionen “Kernel-tricket: RBF, polynomiel og sigmoid”?
De fleste CoddyKit-lektioner tager cirka 5–10 minutter. Hver lektion er kort og interaktiv, så du gør løbende fremskridt og kan fortsætte, hvor du slap – på både web og app.
Kan jeg skrive og køre kode i denne Lær AI med Python-lektion?
Ja. Alle Lær AI med Python-lektioner har en indbygget kodeeditor, så du kan skrive og køre rigtig kode direkte i din browser og få øjeblikkelig feedback fra AI – uden lokal opsætning.
Alle lektioner i dette kursus
- SVM-teori: marginer og supportvektorer
- Kernel-tricket: RBF, polynomiel og sigmoid
- SVM'er til klassifikation med sklearn
- SVM'er til regression (SVR)