Gitt en vilkårlig dataset, du vanligvis ikke vet hvilken kjerne kan fungere best. Jeg anbefaler at du starter med den enkleste hypotesen plass først — gitt at du ikke vet mye om data, og jobbe deg opp mot mer komplekse hypotese mellomrom. Så, den lineære kjernen fungerer fint hvis dataset hvis lineært separable, men hvis datasettet er ikke lineært separable, en lineær kernel ikke kommer til å kutte det (nesten i bokstavelig forstand ;)).,
For enkelt (og visualisering formål), la oss anta at vår datasettet består av 2 mål bare. Nedenfor har jeg plottet vedtaket regioner av en lineær SVM på 2 funksjoner av iris dataset:
Dette fungerer helt greit. Og her kommer RBF-kjernen SVM:
Nå, ser det ut som både lineære og RBF-kjernen SVM ville fungere like godt på dette datasettet. Så hvorfor foretrekker enklere, lineær hypotesen? Tenk på Occam ‘ s Razor i dette tilfellet., Lineær SVM er en parametrisk modell, en RBF-kjernen SVM ikke, og kompleksiteten av de sistnevnte vokser med størrelsen på opplæring sett. Ikke bare er det dyrere å trene en RBF-kjernen SVM, men du har også å holde kjerne matrix rundt, og kan settes inn i dette «uendelig» høyere dimensjonale rom der data blir lineært separable er dyrere så godt under prediksjon. Videre, du har mer hyperparameters å stille, så valg av modell er dyrere, så vel! Og til slutt, det er mye lettere å overfit en kompleks modell!,
Okay, hva jeg har sagt ovenfor høres veldig negativt om kjernen metoder, men det er egentlig avhengig av datasetet. E. g., hvis data er ikke lineært separable, er det ikke fornuftig å bruke en lineær classifier:
I dette tilfellet, en RBF-kjernen ville gjøre så mye mer fornuftig:
I alle fall, jeg ville ikke bry seg for mye om polynom-kjernen. I praksis, det er mindre nyttig for effektivitet (computational samt logisk) ytelse grunner., Så, den tommelfingerregel er: bruk lineær SVMs (eller logistisk regresjon) for lineære problemer, og ikke-lineære kjerner som Radial Grunnlag Funksjon kernel for ikke-lineære problemer.
RBF-kjernen SVM beslutning regionen er faktisk også en lineær beslutning regionen., Hva RBF-kjernen SVM faktisk gjør, er å opprette ikke-lineære kombinasjoner av funksjoner for å bygge opp din prøver på en høyere-dimensjonale har plass hvor du kan bruke en lineær beslutning grensen for å skille klasser:
Ok, over, gikk jeg gjennom en intuitiv eksempel på hvor vi kan visualisere dataene våre i 2 dimensjoner … men hva gjør vi i en real-world problem, dvs., et dataset med mer enn 2 mål? Her, vi ønsker å holde et øye på målet vårt funksjon: å minimere hengsel-tap., Vi ville sette en hyperparameter søk (rutenett søk, for eksempel) og sammenligne ulike kjerner til hverandre. Basert på tap av funksjon (eller en ytelse beregningen, for eksempel nøyaktighet, F1, MCC, ROC auu, etc.) vi kunne finne ut hvilken kjerne er «passende» for en gitt oppgave.
Bio: Sebastian Raschka er en «Data Forsker» og maskinlæring entusiast med en stor lidenskap for Python & åpen kildekode. Forfatter av «Python-Machine Learning’. Michigan State University.
Original. Hvile med tillatelse.,
i Slekt:
- Når er Dyp Læring Fungerer Bedre Enn SVMs eller Tilfeldig Skoger?
- Utvikling av Klassifisering som Læring Maskinen
- Hvorfor Implementere Algoritmer for maskinlæring Fra Scratch?
Legg igjen en kommentar