⚾ Wurf-Klassifikator — Support Vector Machine live
Beobachte live, wie eine echte Kernel-Support-Vector-Machine die Maximum-Margin-Grenze zwischen simulierten Wurftypen lernt, aus echten Spinrate- und Geschwindigkeitsmerkmalen.
Über diese Simulation
Jeder von einem Scout erfasste Wurf kommt mit einer Abwurfgeschwindigkeit und einer Spinrate direkt von einem Tracking-Radar. Dieser Simulator verwandelt dieses Zahlenpaar in ein echtes maschinelles Lernproblem: Kann bei einem Fastball, einem Curveball und — optional — einem Slider eine Support Vector Machine eine Grenze ziehen, die sie trennt? Statt die Antwort vorzutäuschen, führt die Seite einen echten vereinfachten Sequential-Minimal-Optimization-(SMO-)Löser auf den jeweils im Trainingssatz vorhandenen Würfen aus und löst ihn jedes Mal komplett neu, wenn du einen Wurf hinzufügst oder den Kernel, die Regularisierungsstärke C oder die Kernel-Bandbreite γ änderst.
🔬 Was gezeigt wird
Ein 3D-Oberflächendiagramm, bei dem die horizontale Ebene Geschwindigkeit × Spinrate ist und die Höhe der rohe Entscheidungsfunktionswert der SVM f(x) = Σ αᵢyᵢK(xᵢ,x) + b ist. Der Schnitt der Oberfläche mit der z = 0-Ebene ist die tatsächliche Entscheidungsgrenze; die z = ±1-Ebenen markieren die echte Marge. Trainingswürfe sind nach Wurftyp gefärbte Kugeln, wobei Support-Vektoren weiß umringt sind — sowohl die Grenze als auch die Support-Vektor-Menge werden live aus den aktuellen Daten neu berechnet, niemals fest codiert.
🎮 Bedienung
Wähle einen Kernel (linear, polynomial oder Gauß-RBF), ziehe dann C, um Margenbreite gegen Trainingsgenauigkeit abzuwägen, und γ / Grad, um die Kernel-Flexibilität neu zu formen. Schalte den Slider-Wurf ein, um daraus ein 3-Klassen-One-vs-Rest-Problem zu machen. Drücke "Neuer Wurf", um einen frisch gezogenen, gelabelten Wurf einzuspeisen und die Grenze sofort neu anpassen zu sehen, oder aktiviere Auto-Stream, um kontinuierlich Daten einzuspeisen. Ziehe, um die 3D-Ansicht zu drehen, scrolle zum Zoomen.
💡 Wusstest du schon?
Da sich Geschwindigkeit und Spin eines Sliders in echten Statcast-Daten tatsächlich sowohl mit Fastballs als auch mit Curveballs überschneiden, kann keine gerade Linie alle drei Wurftypen perfekt trennen. Der Wechsel von einem linearen Kernel zu einem RBF-Kernel mit ausreichend hohem γ lässt die Grenze sich um den überlappenden Cluster krümmen — eine Live-Demonstration genau dessen, wofür der Kernel-Trick existiert.
Häufig gestellte Fragen
Was ist eine Support Vector Machine (SVM)?
Eine Support Vector Machine ist ein überwachter Klassifikator, der die Hyperebene findet, die zwei Klassen mit der größtmöglichen Marge trennt — dem breitesten leeren Korridor zwischen den nächstgelegenen Punkten jeder Klasse. Diese nächstgelegenen Punkte werden Support-Vektoren genannt, weil allein sie bestimmen, wo die Grenze verläuft; jeder andere Trainingspunkt könnte gelöscht werden, ohne die Lösung zu verändern. Die Marge zu maximieren, statt nur irgendeine trennende Linie zu finden, verallgemeinert tendenziell besser auf neue Daten, da es den meisten Raum für Rauschen lässt, bevor ein Punkt in die falsche Klasse überwechselt.
Wie erlaubt der Kernel-Trick einer SVM, gekrümmte Grenzen zu zeichnen?
Die duale Form des SVM-Optimierungsproblems benötigt nur je Skalarprodukte zwischen Paaren von Trainingspunkten, nie die rohen Koordinaten selbst. Der Kernel-Trick ersetzt dieses Skalarprodukt x·z durch eine Kernfunktion K(x,z), die das Skalarprodukt so berechnet, als wären die Punkte zunächst in einen wesentlich höherdimensionalen Merkmalsraum abgebildet worden — ohne diesen Raum je explizit zu konstruieren. Ein linearer Kernel ergibt eine gerade Grenze; ein polynomialer Kernel ergibt gekrümmte polynomiale Grenzen; der Gauß-RBF-Kernel K(x,z) = exp(−γ‖x−z‖²) ergibt glatte, flexible Grenzen, die sich um überlappende Cluster wickeln können.
Was steuert der Regularisierungsparameter C?
C ist der Kompromissregler im Soft-Margin-SVM-Ziel: minimiere ½‖w‖² + C·Σξᵢ, wobei ξᵢ Schlupfvariablen sind, die einzelnen Punkten erlauben, innerhalb der Marge oder auf der falschen Seite zu liegen. Ein kleines C toleriert mehr Margenverletzungen für eine breitere, glattere Marge — es bevorzugt Generalisierung. Ein großes C bestraft Verletzungen stark und erzwingt eine engere Anpassung, die riskiert, die konkret gesehenen Würfe zu überanpassen.
Was sind Support-Vektoren und warum zählen nur manche Punkte?
Nach dem Training hat jeder Punkt i einen Lagrange-Multiplikator αᵢ. Punkte, die bequem auf der richtigen Seite der Marge liegen, enden mit αᵢ = 0 und tragen nichts zur Entscheidungsfunktion bei; nur Punkte auf oder innerhalb der Marge — die Support-Vektoren — haben αᵢ > 0. Die Entscheidungsfunktion f(x) = Σ αᵢyᵢK(xᵢ,x) + b summiert nur über diese Support-Vektoren, sodass eine trainierte SVM selbst bei größerem Datensatz extrem kompakt sein kann.
Wie wird die SVM tatsächlich gelöst — ist es ein echter Optimierer?
Ja. Diese Simulation implementiert eine vereinfachte Sequential-Minimal-Optimization-(SMO-)Routine — die duale Koordinatenaufstiegs-Idee, die John Platt 1998 einführte und die Bibliotheken wie libsvm zugrunde liegt. Jeder Durchlauf wählt ein verletzendes Paar von Lagrange-Multiplikatoren, löst deren Zwei-Variablen-quadratisches Teilproblem analytisch unter der Box-Nebenbedingung 0 ≤ αᵢ ≤ C und Σ αᵢyᵢ = 0, aktualisiert den Bias aus den KKT-Bedingungen und wiederholt dies, bis keine Verletzungen innerhalb der Toleranz verbleiben.
Wie funktioniert One-vs-Rest bei drei Wurftypen?
Eine Standard-SVM ist von Natur aus binär. Um Fastball, Curveball und Slider gemeinsam zu handhaben, trainiert die Simulation drei separate binäre SVMs, wobei jede einen Wurftyp als positiv und die anderen beiden zusammen als negativ behandelt. Für einen neuen Wurf werden alle drei Entscheidungsfunktionen ausgewertet, und die Klasse mit dem größten positiven Wert gewinnt — eine der einfachsten Möglichkeiten, einen binären Klassifikator auf mehrere Klassen zu erweitern.
Ein vereinfachter SMO-Dual-Koordinatenaufstiegs-Löser passt jedes Mal, wenn ein Wurf einströmt oder sich ein Hyperparameter ändert, eine Soft-Margin-Kernel-SVM an live erfasste Spinrate- und Geschwindigkeitsdaten an; die 3D-Oberfläche, Margenebenen und Support-Vektoren werden alle echt neu berechnet, nie skriptgesteuert.
3D · Three.js / WebGL-Renderer · Ziel 60 FPS · läuft vollständig clientseitig, keine Installation