Zum Inhalt springen

~/teaching · machine learning · sitzung 5, dienstag, 15. dezember 2026

Der Kernel-Trick, Stützvektormaschinen, Kernel-Ridge und Entscheidungsbäume, mit durchgerechneten Zahlen

Zwei Modellfamilien, die der logistischen Regression in nichts ähneln: Ähnlichkeiten zwischen Punkten und verschachtelte Fragen.

Zusammenfassung

Diese Seite fasst Sitzung 5 des Kurses Machine Learning an der Centrale Méditerranée zusammen (Schwerpunkt DDEFI, 2026-2027). Nach einem ersten Block über lineare und logistische Modelle wendet sie sich zwei Familien zu, die anders funktionieren: Kernel-Methoden, die über eine gewichtete Abstimmung der Ähnlichkeiten zu den Trainingspunkten vorhersagen, und Entscheidungsbäume, die den Raum Frage für Frage in Kästen zerlegen.

Der Kernel-Teil führt vom Klassifikator mit maximalem Rand zu seinem dualen Problem, zeigt, warum nur die Stützvektoren zählen, ersetzt das Skalarprodukt durch einen polynomialen oder gaußschen Kernel und macht aus Ridge die Kernel-Ridge-Regression. Der Baum-Teil baut CART auf: Gini und Entropie, der Gewinn eines Splits, Tiefe, Beschneiden, Instabilität und der Bias der unreinheitsbasierten Wichtigkeit. Jeder Schritt wird an Zahlen geprüft, die klein genug sind, um sie mit dem Bleistift nachzurechnen.

Die Folien

Titanic gemeinsam abschließen, Kernel, SVM und Entscheidungsbäume

Sitzung 5, Dienstag, 15. Dezember 2026. Machine Learning, Centrale Méditerranée, Schwerpunkt DDEFI, 2026-2027. Die Folien gibt es auf Französisch und Englisch; der Link öffnet die englische Fassung.

Folien öffnen (Passwort vom Dozenten)

Der Foliensatz selbst ist für die Studierenden des Kurses verschlüsselt; diese Seite fasst ihn für alle zusammen.

Die Kursseite · Aufmerksamkeit und Transformer, Schritt für Schritt

Aufbau des Foliensatzes

  1. Maximaler Rand. Die Trenngerade mit dem größten Abstand zu den nächstgelegenen Punkten, formuliert als konvexes Problem.
  2. Weicher Rand und der Preis C. Schlupfvariablen und Hinge-Verlust für Daten, die keine Gerade trennt.
  3. Das duale Problem und die Stützvektoren. Lagrange-Multiplikatoren, KKT-Bedingungen und ein Beispiel mit vier Punkten, von Hand gerechnet.
  4. Der Kernel-Trick. Polynomiale und RBF-Kernel und die Mercer-Bedingung für gültige Kernel.
  5. Kernel-Ridge und Praxis. Die geschlossene Form, ein Beispiel mit drei Punkten, γ\gamma und CC, Standardisierung, die Kosten in nn und eine kurze Übung.
  6. Entscheidungsbäume und Unreinheit. Die gierige Suche von CART, Gini und Entropie, zwei Kandidaten-Splits an zehn Kunden.
  7. Tiefe, Beschneiden und Wichtigkeit. Überanpassung mit wachsender Tiefe, Kosten-Komplexitäts-Beschneidung, Instabilität und der Bias der MDI.

Der Klassifikator mit maximalem Rand

Unter allen Geraden, die zwei Klassen fehlerfrei trennen, behält die SVM diejenige, die auf jeder Seite so weit wie möglich von den nächstgelegenen Punkten entfernt bleibt.

Lassen sich zwei Klassen durch eine Gerade trennen, dann tun das unendlich viele Geraden ohne einen einzigen Trainingsfehler. Die logistische Regression wählt eine davon über die Likelihood. Die Stützvektormaschine (support vector machine, SVM) stellt stattdessen eine geometrische Frage: Welche Grenze lässt zwischen den Klassen den breitesten leeren Streifen frei? Ein neuer Kunde ähnelt einem bekannten, bis auf ein wenig Rauschen; eine Grenze, die einen Trainingspunkt streift, klassifiziert daher dessen verrauschte Nachbarn falsch.

Man kodiert die Klassen als yi∈{−1,+1}y_i \in \{-1, +1\} und schreibt f(x)=w⊤x+bf(x) = w^{\top}x + b. Skaliert man ww und bb gemeinsam, bleibt die Grenze unverändert, also setzt man ∣f∣=1|f| = 1 an den nächstgelegenen Punkten. Da ein Punkt den Abstand ∣f(x)∣/∥w∥|f(x)| / \lVert w \rVert zur Hyperebene hat, ist der Streifen 2/∥w∥2/\lVert w \rVert breit, und ihn zu verbreitern heißt, ∥w∥\lVert w \rVert zu verkleinern. Die Suche nach dem maximalen Rand (maximum margin) ergibt damit ein konvexes quadratisches Problem mit eindeutigem Minimum (Cortes und Vapnik, 1995):

min⁡w, b 12∥w∥2unteryi (w⊤xi+b)≥1,i=1,…,n\min_{w,\,b}\ \tfrac12 \lVert w \rVert^{2} \quad \text{unter} \quad y_i\,(w^{\top}x_i + b) \ge 1,\quad i = 1, \dots, n
(1)
Tabelle 1: Sechs fiktive Kunden mit zwei standardisierten Variablen. Mit w=(2/3,2/3)w = (2/3, 2/3) und b=−5/3b = -5/3 ist die Grenze x1+x2=2.5x_1 + x_2 = 2.5, und der Streifen reicht von x1+x2=1x_1 + x_2 = 1 bis x1+x2=4x_1 + x_2 = 4.
KundePosition (x1,x2)(x_1, x_2)Klasse yyVorsprung y f(x)y\,f(x)Rolle
1(0, 0)solide, −1-15/3außerhalb des Streifens
2(1, 0)solide, −1-11auf dem Rand
3(0, 1)solide, −1-11auf dem Rand
4(2, 2)Ausfall, +1+11auf dem Rand
5(3, 2)Ausfall, +1+15/3außerhalb des Streifens
6(2, 3)Ausfall, +1+15/3außerhalb des Streifens

Die Lösung, die auch SVC von scikit-learn mit linearem Kernel und sehr großem CC liefert, hat ∥w∥=22/3≈0.943\lVert w \rVert = 2\sqrt2/3 \approx 0.943, der Streifen ist also 2/∥w∥=3/2≈2.122/\lVert w \rVert = 3/\sqrt2 \approx 2.12 breit: genau der Abstand zwischen den beiden gestrichelten Linien, gemessen entlang der Normalen (1,1)/2(1, 1)/\sqrt2. Drei Kunden berühren den Streifen; sie sind die Stützvektoren (support vectors). Die anderen drei könnten sich bewegen oder verschwinden, ohne dass sich die Grenze ändert.

Zurück zum Inhalt.

Weicher Rand, Hinge-Verlust und der Preis C

Echte Daten sind nie vollständig trennbar, also lässt die SVM einige Punkte in den Streifen eindringen und verlangt für jede Einheit Übertretung einen festen Preis.

Bei Kreditdaten trennt keine Gerade die Ausfälle von den soliden Kunden. Cortes und Vapnik (1995) geben jedem Punkt eine Schlupfvariable (slack variable) ξi≥0\xi_i \ge 0, den Betrag, um den er den Rand verletzt, und fügen der Zielfunktion C∑iξiC \sum_i \xi_i hinzu. Im Optimum ist jeder Schlupf gleich max⁡(0,1−yif(xi))\max(0, 1 - y_i f(x_i)), sodass sich die Nebenbedingungen ganz entfernen lassen:

min⁡w, b 12∥w∥2+C∑i=1nmax⁡(0, 1−yi f(xi))\min_{w,\,b}\ \tfrac12 \lVert w \rVert^{2} + C \sum_{i=1}^{n} \max\big(0,\ 1 - y_i\, f(x_i)\big)
(2)

Der Summand ist der Hinge-Verlust (hinge loss): null für einen Punkt auf der richtigen Seite mit einem Vorsprung von mindestens 1, danach linear wachsend, sobald der Punkt in den Streifen eindringt oder die Grenze überquert. So gelesen ist die SVM mit weichem Rand (soft margin) eine Verlustfunktion plus eine Strafe auf ∥w∥2\lVert w \rVert^{2}, dieselbe Form wie Ridge, wobei CC die Rolle von 1/λ1/\lambda spielt. Ein kleines CC ergibt einen breiten Rand und eine starke Regularisierung (Gefahr der Unteranpassung, Underfitting), ein großes CC einen schmalen Rand und die Gefahr der Überanpassung (Overfitting), wie beim C von LogisticRegression.

Zurück zum Inhalt.

Das duale Problem: Nur die Stützvektoren zählen

Schreibt man die SVM mit einem Preis pro Nebenbedingung um, zeigt sich, dass Punkte fern der Grenze den Preis null erhalten, sodass ihr Entfernen nichts ändert.

Man ordnet jeder Nebenbedingung einen Lagrange-Multiplikator αi≥0\alpha_i \ge 0 zu und zieht die Nebenbedingungen von der Zielfunktion ab. Setzt man den Gradienten nach ww und dann die Ableitung nach bb gleich null, erhält man zwei Identitäten. Setzt man sie wieder ein, verschwinden ww und bb, und es bleibt ein Problem, in dem nur noch α\alpha vorkommt:

L(w,b,α)=12∥w∥2−∑iαi[ yi(w⊤xi+b)−1 ]L(w, b, \alpha) = \tfrac12 \lVert w \rVert^{2} - \sum_{i} \alpha_i \big[\, y_i (w^{\top}x_i + b) - 1 \,\big]
(3)
w=∑iαi yi xi,∑iαi yi=0w = \sum_{i} \alpha_i\, y_i\, x_i, \qquad \sum_{i} \alpha_i\, y_i = 0
(4)
max⁡α≥0 ∑iαi−12∑i,jαiαj yiyj xi⊤xjunter∑iαiyi=0\max_{\alpha \ge 0}\ \sum_{i} \alpha_i - \tfrac12 \sum_{i,j} \alpha_i \alpha_j\, y_i y_j\, x_i^{\top}x_j \quad \text{unter} \quad \sum_i \alpha_i y_i = 0
(5)

Mit weichem Rand kommt nur die Obergrenze αi≤C\alpha_i \le C hinzu. Der komplementäre Schlupf (complementary slackness), eine der Karush-Kuhn-Tucker-Bedingungen (KKT), liefert αi [ yif(xi)−1 ]=0\alpha_i\,[\,y_i f(x_i) - 1\,] = 0, also ist entweder der Preis null oder die Nebenbedingung aktiv. Ein korrekt klassifizierter Punkt außerhalb des Streifens hat αi=0\alpha_i = 0 und verschwindet aus ww und aus jeder Vorhersage. Diese Dünnbesetztheit (Sparsity) ist der Grund, warum SVC zum Vorhersagen nur seine support_-Punkte behält.

Durchgerechnetes Beispiel: vier Kunden auf einer Geraden

  1. Daten. Solide Kunden bei x=−3x = -3 und x=−1x = -1, Ausfälle bei x=2x = 2 und x=4x = 4. Es sind die beiden inneren Punkte, die die Grenze einfassen.
  2. Stützvektoren am Rand. Aus y f(x)=1y\,f(x) = 1 bei x=−1x = -1 und bei x=2x = 2 folgen w−b=1w - b = 1 und 2w+b=12w + b = 1. Addiert man beide, ergibt sich 3w=23w = 2, also w=2/3w = 2/3, b=−1/3b = -1/3, und die Grenze liegt bei x=1/2x = 1/2.
  3. Äußere Punkte. Bei x=−3x = -3 und x=4x = 4 beträgt der Vorsprung 7/3>17/3 > 1, die Nebenbedingung ist also nicht aktiv, und nach dem komplementären Schlupf ist ihr Preis null.
  4. Preise. Die Bedingung ∑iαiyi=0\sum_i \alpha_i y_i = 0 erzwingt, dass die beiden verbleibenden Preise gleich sind, etwa aa. Dann gilt w=a(−1)(−1)+a(+1)(2)=3a=2/3w = a(-1)(-1) + a(+1)(2) = 3a = 2/3, also a=2/9a = 2/9.
  5. Probe. Der primale Wert 12w2=2/9\tfrac12 w^{2} = 2/9 ist gleich dem dualen Wert ∑iαi−12w2=4/9−2/9\sum_i \alpha_i - \tfrac12 w^{2} = 4/9 - 2/9, und der Rand 2/w=32/w = 3 ist der Abstand von −1-1 bis 22. Den Punkt bei −3-3 nach −10-10 zu verschieben, ändert nichts; den Punkt bei −1-1 zu verschieben, ändert alles.

Zurück zum Inhalt.

Der Kernel-Trick: polynomiale und RBF-Kernel

Das duale Problem sieht die Daten nur über Ähnlichkeiten zwischen Punktpaaren; ersetzt man das Skalarprodukt durch ein reicheres Ähnlichkeitsmaß, krümmt sich die Grenze ohne Mehraufwand.

Ein zweiter Blick auf das duale Problem: Das Training braucht nur die n×nn \times n-Tabelle der Skalarprodukte xi⊤xjx_i^{\top}x_j, die Gram-Matrix, und die Vorhersage nur xi⊤xx_i^{\top}x. Punkte auf einer Geraden, mit einer Klasse an beiden Enden und der anderen in der Mitte, lassen sich nicht durch einen einzigen Schwellenwert trennen, nach x↦(x,x2)x \mapsto (x, x^{2}) aber durch eine waagerechte Gerade. Eine gekrümmte Grenze wird nach einer Transformation φ\varphi, der Merkmalsabbildung (feature map), zu einer ebenen. Der Kernel-Trick berechnet φ(x)⊤φ(z)\varphi(x)^{\top}\varphi(z) direkt aus xx und zz, ohne φ\varphi aufzubauen (Boser, Guyon und Vapnik, 1992).

k(x,z)=φ(x)⊤φ(z),f(x)=∑iαi yi k(xi,x)+bk(x, z) = \varphi(x)^{\top}\varphi(z), \qquad f(x) = \sum_{i} \alpha_i\, y_i\, k(x_i, x) + b
(6)

Beim polynomialen Kernel vom Grad 2 in zwei Dimensionen multipliziert man das Quadrat aus und zerlegt den gemischten Term in 2⋅2\sqrt2 \cdot \sqrt2. So tritt die verborgene Abbildung zutage:

(x⊤z)2=x12z12+2 x1x2 z1z2+x22z22=φ(x)⊤φ(z),φ(x)=(x12, 2 x1x2, x22)(x^{\top}z)^{2} = x_1^{2}z_1^{2} + 2\,x_1x_2\,z_1z_2 + x_2^{2}z_2^{2} = \varphi(x)^{\top}\varphi(z), \quad \varphi(x) = \big(x_1^{2},\ \sqrt2\,x_1x_2,\ x_2^{2}\big)
(7)

Probe mit x=(1,2)x = (1, 2) und z=(3,−1)z = (3, -1). Die Kernel-Seite braucht zwei Produkte, eine Summe und ein Quadrat: x⊤z=1x^{\top}z = 1, also k=1k = 1. Die Merkmalsseite baut φ(x)=(1,22,4)\varphi(x) = (1, 2\sqrt2, 4) und φ(z)=(9,−32,1)\varphi(z) = (9, -3\sqrt2, 1) auf, deren Skalarprodukt 9−12+4=19 - 12 + 4 = 1 ist. Der allgemeine Kernel (x⊤z+c)d(x^{\top}z + c)^{d} enthält jede Wechselwirkung bis zum Grad dd, zum Preis eines Skalarprodukts und einer Potenz.

k(x,z)=e−γ∥x−z∥2,γ>0k(x, z) = e^{-\gamma \lVert x - z \rVert^{2}}, \qquad \gamma > 0
(8)

Der gaußsche oder RBF-Kernel (radiale Basisfunktion) ist 1 für identische Punkte und klingt mit dem Abstand ab; γ\gamma legt fest, wie weit der Einfluss jedes Trainingspunkts reicht. Für zwei Punkte mit quadriertem Abstand 5 ergibt er e−0.5≈0.607e^{-0.5} \approx 0.607 bei γ=0.1\gamma = 0.1 und etwa 0,082 bei γ=0.5\gamma = 0.5. Entwickelt man die Exponentialfunktion als Potenzreihe, zeigt sich, dass seine Merkmalsabbildung unendlich viele Koordinaten hat. Mit kleinem γ\gamma ist die Grenze fast gerade, mit großem zeichnet sie Inseln um einzelne Punkte.

Bemerkung (Welche Funktionen sind Kernel?). Eine symmetrische Funktion ist genau dann ein Skalarprodukt in einem geeigneten Raum, wenn alle ihre Gram-Matrizen positiv semidefinit sind (Mercer, 1909; Aronszajn, 1950). Der Abstand ∥x−z∥\lVert x - z \rVert fällt durch: Für zwei Punkte im Abstand dd hat seine Gram-Matrix den Eigenwert −d-d. Summen und Produkte von Kerneln sind wieder Kernel, und so konstruiert man gefahrlos neue.

Zurück zum Inhalt.

Kernel-Ridge-Regression und Kernel in der Praxis

Die Kernel-Ridge-Regression ist die Ridge-Regression, umgeschrieben mit einem Gewicht pro Trainingspunkt; so kann ein Kernel das Skalarprodukt ersetzen, und die Lösung bleibt in geschlossener Form.

Ausgangspunkt ist Ridge in geschlossener Form. Die Identität (X⊤X+λIp)X⊤=X⊤(XX⊤+λIn)(X^{\top}X + \lambda I_p)X^{\top} = X^{\top}(XX^{\top} + \lambda I_n) zeigt, dass β^=X⊤α\hat\beta = X^{\top}\alpha gilt, mit einem Gewicht pro Trainingspunkt. Die Vorhersagen enthalten dann nur noch Skalarprodukte xi⊤xx_i^{\top}x, die ein Kernel ersetzt (Repräsentantensatz, Kimeldorf und Wahba, 1971):

α=(K+λI)−1y,f^(x)=∑i=1nαi k(xi,x),Kij=k(xi,xj)\alpha = (K + \lambda I)^{-1} y, \qquad \hat f(x) = \sum_{i=1}^{n} \alpha_i\, k(x_i, x), \qquad K_{ij} = k(x_i, x_j)
(9)

Anders als bei der SVM gibt es keine Dünnbesetztheit: Der Verlust ist quadratisch, also ist im Allgemeinen jedes αi\alpha_i ungleich null, und der gesamte Trainingsdatensatz wird aufbewahrt. Im Gegenzug ist die Anpassung ein einziges lineares Gleichungssystem, gelöst mit np.linalg.solve statt durch Invertieren der Matrix; mit linearem Kernel muss sie Ridge bis auf Maschinengenauigkeit reproduzieren. In scikit-learn heißt λ\lambda bei KernelRidge alpha, und ein Achsenabschnitt wird nicht angepasst.

Tabelle 2: Kernel-Ridge von Hand: Eingaben 0, 1, 2 mit Zielwerten 0, 1, 0, γ=ln⁡2\gamma = \ln 2 (also k(x,z)=2−(x−z)2k(x, z) = 2^{-(x - z)^{2}}) und λ=1/2\lambda = 1/2. Alle Zahlen sind Brüche mit dem Nenner 59.
Eingabe xxZielwertGewicht αi\alpha_iVorhersage f^(x)\hat f(x)
00−16/59-16/598/59 ≈ 0,136
1150/5950/5934/59 ≈ 0,576
20−16/59-16/598/59 ≈ 0,136
0,5 (neuer Punkt)≈ 0,428

Die beiden Punkte mit Zielwert 0 erhalten negative Gewichte: Sie ziehen die Anpassung in ihrer Umgebung nach unten. Bei x=1x = 1 ist der Zielwert 1, aber die Strafe drückt die Anpassung auf 0,576.

Tabelle 3: Wirkung von γ\gamma auf einen SVC mit RBF-Kernel und C=1C = 1, gemessen an den Spielzeugdaten von scikit-learn mit zwei Halbmonden (make_moons, Rauschen 0,3, 150 Trainingspunkte, 2.000 Testpunkte), mit der Accuracy als Anteil richtig klassifizierter Punkte. Berechnung des Autors.
Wert von γ\gammaAccuracy (Training)Accuracy (Test)Deutung
0,10,8730,844fast eine Gerade: Unteranpassung
10,9200,898folgt den Halbmonden
1000,9930,839Inseln um Punkte: Überanpassung

Ein größeres CC wirkt in dieselbe Richtung wie ein größeres γ\gamma, und beide werden per Kreuzvalidierung auf einem Gitter aus Zehnerpotenzen gewählt. Standardisieren Sie zuerst: Ein RBF-Kernel addiert quadrierte Abstände in den Einheiten jeder Variable, sodass ein Kreditlimit in Zehntausenden von Dollar ein Alter in Jahren erdrückt und KK zur Einheitsmatrix zusammenfällt. Der Scaler gehört in die Pipeline und wird auf den Trainings-Folds angepasst.

Der Preis des Tricks ist die n×nn \times n-Matrix: 32 MB in doppelter Genauigkeit für 2.000 Zeilen, 2,6 GB für die 18.000 Trainingszeilen des Kreditdatensatzes und ein Lösungsaufwand von etwa n3n^{3} Operationen. Für großes nn bauen zufällige Fourier-Merkmale (random Fourier features, Rahimi und Recht, 2007) DD zufällige Kosinus-Spalten, deren Skalarprodukte den RBF-Kernel approximieren; eine logistische Regression darauf skaliert in O(nD)O(nD) und liefert, anders als SVC oder KernelRidge, Wahrscheinlichkeiten.

Zurück zum Inhalt.

Entscheidungsbäume: der Split mit dem größten Reinheitsgewinn

Ein Entscheidungsbaum stellt eine Kette von Ja-Nein-Fragen, jeweils zu einer Variable, und wählt jede Frage so, dass die entstehenden Gruppen möglichst homogen sind.

Ein Entscheidungsbaum (decision tree) spielt „Wer ist es?“: War der Kunde im letzten Monat mindestens zwei Monate im Zahlungsverzug? Dann eine Frage zum Kreditlimit und so weiter, bis ein Blatt den Anteil der Ausfälle unter den Trainingskunden vorhersagt, die dort ankommen. CART (Breiman, Friedman, Olshen und Stone, 1984) lässt den Baum gierig von oben wachsen: An jedem Knoten probiert das Verfahren jede Variable und jeden Schwellenwert (die Mittelpunkte zwischen sortierten Werten), behält den Split, der die gewichtete Unreinheit der Kinder am stärksten senkt, und fährt rekursiv fort.

G=1−∑kpk2,H=−∑kpklog⁡2pkG = 1 - \sum_k p_k^{2}, \qquad H = -\sum_k p_k \log_2 p_k
(10)
Δ(j,s)=I(t)−nLnt I(L)−nRnt I(R)\Delta(j, s) = I(t) - \frac{n_L}{n_t}\, I(L) - \frac{n_R}{n_t}\, I(R)
(11)

Die Gini-Unreinheit (Gini impurity) GG misst, wie gemischt ein Knoten ist: Zieht man zwei seiner Kunden zufällig mit Zurücklegen, gibt sie die Wahrscheinlichkeit an, dass ihre Klassen verschieden sind; bei zwei Klassen ist sie gleich 2p(1−p)2p(1-p), null für einen reinen Knoten und höchstens 1/21/2. Die Shannon-Entropie HH, in Bit, stammt aus Quinlans ID3 (1986) und C4.5 (1993); ihre Abnahme ist der Informationsgewinn (information gain). Beide Kurven haben dieselbe Form und wählen fast immer denselben Split. scikit-learn verwendet standardmäßig Gini.

Tabelle 4: Zehn fiktive Kunden, davon vier Ausfälle. Split A fragt PAY_0 ≥ 2 (mindestens zwei Monate Verzug); Split B fragt AGE < 30.
KnotenKundenAusfälleGiniEntropie (Bit)
Elternknoten1040,4800,971
A, im Verzug (links)430,3750,811
A, nicht im Verzug (rechts)610,2780,650
B, jede Seite520,4800,971

Durchgerechnetes Beispiel: der Gewinn jedes Splits

  1. Elternknoten. Vier Ausfälle von zehn, also p=0.4p = 0.4 und G=1−0.16−0.36=0.48G = 1 - 0.16 - 0.36 = 0.48.
  2. Kinder von A. Drei Ausfälle von vier links ergeben G=1−9/16−1/16=6/16=0.375G = 1 - 9/16 - 1/16 = 6/16 = 0.375, einer von sechs rechts ergibt G=10/36≈0.278G = 10/36 \approx 0.278.
  3. Gewichteter Mittelwert. Nach Anzahlen gewichtet ergibt sich 0.4×0.375+0.6×0.278≈0.3170.4 \times 0.375 + 0.6 \times 0.278 \approx 0.317, also gewinnt Split A 0.48−0.317=0.1630.48 - 0.317 = 0.163. Mit der Entropie beträgt der Gewinn 0.971−(0.4×0.811+0.6×0.650)≈0.2560.971 - (0.4 \times 0.811 + 0.6 \times 0.650) \approx 0.256, A gewinnt also nach beiden Kriterien.
  4. Split B. Jede Seite hat zwei Ausfälle von fünf, den Anteil des Elternknotens, also haben beide Kinder dessen Unreinheit, und der Gewinn ist null. Eine Frage, die die Mischung des Elternknotens wiedergibt, sagt nichts aus, gleich welche Variable sie betrifft.
  5. Probe. DecisionTreeClassifier(max_depth=1) wählt PAY_0 mit dem Schwellenwert 1,5, dem Mittelpunkt zwischen 1 und 2, und gibt dieselben drei Unreinheiten aus.

Zurück zum Inhalt.

Tiefe, Beschneiden, Instabilität und der Bias der MDI

Sich selbst überlassen, wächst ein Baum, bis er den Trainingsdatensatz auswendig kennt; er muss also gestoppt oder beschnitten werden, und seine eingebauten Wichtigkeitswerte verdienen Misstrauen.

Standardmäßig (max_depth=None) lässt scikit-learn den Baum wachsen, bis jedes Blatt rein ist. Eine maximale Tiefe, eine minimale Blattgröße (min_samples_leaf) oder ein minimaler Gewinn stoppen ihn früher; kleine Blätter liefern außerdem grobe Wahrscheinlichkeiten.

Die Simulation des Foliensatzes macht es deutlich: Eine binäre Variable setzt die Ausfallwahrscheinlichkeit auf 0,7 oder 0,3, zwei weitere sind Rauschen, 1.000 Zeilen zum Trainieren und 1.000 zum Testen, also kann kein Klassifikator 0,70 übertreffen. Ein Baum der Tiefe 1 oder 2 erreicht im Test 0,683; ein unbegrenzter Baum erzielt im Training 1,000 mit 397 Blättern und im Test 0,549, kaum besser als ein Münzwurf.

Rα(T)=R(T)+α ∣T∣R_\alpha(T) = R(T) + \alpha\, |T|
(12)

Statt früh zu stoppen, lässt CART den vollständigen Baum wachsen und beschneidet ihn dann, die Kosten-Komplexitäts-Beschneidung (cost-complexity pruning): R(T)R(T) ist der Trainingsfehler, ∣T∣|T| die Zahl der Blätter und α\alpha ein Preis pro Blatt, gewählt per Kreuzvalidierung (ccp_alpha in scikit-learn). Die optimalen Teilbäume sind ineinander verschachtelt, also muss man nur eine Handvoll testen.

Tabelle 5: Kosten-Komplexitäts-Beschneidung in derselben Simulation: behaltene Blätter und kreuzvalidierte Accuracy für vier Werte des Blattpreises. Berechnung des Autors.
Behaltene BlätterBlattpreis ccp_alphaAccuracy (Kreuzvalidierung)
39700,595
1440,0010,603
60,0020,689
20,0050,727

Beim höchsten Preis bleiben zwei Blätter: ein einziger Split, auf der einzigen nützlichen Variable. Ein kurzer Baum lässt sich laut als Regel vorlesen, die ein Kunde anfechten kann, und das schätzt das regulierte Kreditgeschäft. Er ist aber auch instabil: Passt man einen Baum der Tiefe 3 neu an, nachdem zufällig 5 % der Zeilen entfernt wurden, springt die zweite Ebene zu Rauschvariablen und neuen Schwellenwerten. Breimans Bagging (1996) geht von dieser Beobachtung aus und führt zu den Random Forests und dem Boosting der nächsten Sitzung.

MDI(j)=∑t : Split nach jntn Δt\mathrm{MDI}(j) = \sum_{t\,:\,\text{Split nach } j} \frac{n_t}{n}\, \Delta_t
(13)

Das Attribut feature_importances_ von scikit-learn ist die mittlere Abnahme der Unreinheit (mean decrease in impurity, MDI): die nach Knotengröße gewichteten Gewinne der Splits auf jeder Variable, auf 1 normiert. Sie kostet nichts, ist aber doppelt verzerrt. Sie wird auf den Trainingsdaten gemessen, also zählen auch Splits, die Rauschen angepasst haben; und eine stetige Variable bietet Hunderte von Schwellenwerten, wo eine binäre nur einen bietet, daher viel mehr Zufallstreffer. Im unbegrenzten Baum der Simulation setzt die MDI das stetige Rauschen an die erste Stelle (0,754) und die nützliche Variable an die zweite (0,206); die Permutationswichtigkeit auf zurückgehaltenen Daten stellt die Reihenfolge wieder her (Strobl et al., 2007).

Zurück zum Inhalt.

Das Wichtigste in Kürze

  1. Die SVM behält die Grenze mit dem breitesten Rand, 2/∥w∥2/\lVert w \rVert, indem sie 12∥w∥2\tfrac12 \lVert w \rVert^{2} unter einer Nebenbedingung pro Punkt minimiert; der weiche Rand fügt einen Hinge-Verlust mit dem Preis CC hinzu.
  2. Im dualen Problem gilt w=∑iαiyixiw = \sum_i \alpha_i y_i x_i, und Punkte außerhalb des Streifens haben αi=0\alpha_i = 0, sodass nur die Stützvektoren die Grenze formen.
  3. Da das duale Problem die Daten nur über Skalarprodukte sieht, kann jeder Kernel mit positiv semidefiniten Gram-Matrizen sie ersetzen; das γ\gamma des RBF-Kernels legt die Reichweite jedes Punkts fest.
  4. Kernel-Ridge löst α=(K+λI)−1y\alpha = (K + \lambda I)^{-1} y in einem einzigen linearen Gleichungssystem, behält aber jeden Trainingspunkt; zuerst standardisieren und bei großem nn den Kernel approximieren.
  5. Ein Baum wählt jeden Split nach der stärksten Abnahme der gewichteten Unreinheit; ein Split, der die Anteile des Elternknotens kopiert, gewinnt nichts.
  6. Ein unbegrenzter Baum lernt das Rauschen, ein kurzer ist lesbar, aber instabil, und die unreinheitsbasierte Wichtigkeit bevorzugt Variablen mit vielen Schwellenwerten.

Glossar

Stützvektormaschine (support vector machine, SVM)
Ein Klassifikator, der die Grenze mit dem breitesten Rand behält, gelockert durch einen Preis für Verletzungen.
Stützvektoren (support vectors)
Die Trainingspunkte auf dem Rand oder innerhalb des Streifens; die einzigen mit einem dualen Gewicht ungleich null.
Hinge-Verlust (hinge loss)
Die Verlustfunktion max⁡(0,1−yf(x))\max(0, 1 - y f(x)), null für einen Punkt auf der richtigen Seite mit einem Vorsprung von mindestens 1.
Kernel-Trick
Jedes Skalarprodukt durch einen Kernel ersetzen, also durch ein Skalarprodukt in einem größeren Raum, berechnet, ohne diesen Raum aufzubauen.
Gram-Matrix
Die n×nn \times n-Matrix der Kernelwerte für alle Paare; positiv semidefinit bei einem gültigen Kernel.
Kernel-Ridge-Regression
Ridge in dualer Form mit einem Kernel, ein Gewicht pro Trainingspunkt.
Entscheidungsbaum (decision tree)
Ein Modell aus verschachtelten Schwellenwertfragen zu jeweils einer Variable; jedes Blatt ist ein Kasten im Eingaberaum.
Gini-Unreinheit (Gini impurity)
Die Größe 1−∑kpk21 - \sum_k p_k^{2}, die Wahrscheinlichkeit, dass zwei aus einem Knoten gezogene Punkte verschiedenen Klassen angehören.
Kosten-Komplexitäts-Beschneidung (cost-complexity pruning)
Den vollständigen Baum wachsen lassen und dann den Teilbaum behalten, der den Trainingsfehler plus einen Preis pro Blatt minimiert.
mittlere Abnahme der Unreinheit (mean decrease in impurity, MDI)
Die eingebaute Wichtigkeit eines Baums, verzerrt zugunsten von Variablen mit vielen Schwellenwerten.

Die anderen Notizen des Kurses

Eine öffentliche Zusammenfassung pro Foliensatz, in der Reihenfolge des Kurses.

  1. EinführungKI-Winter, Arbeitsmarkt und Methode
  2. WerkzeugeKaggle, GitHub, Python: die Werkzeuge
  3. Sitzung 1Projektrahmen und kleinste Quadrate
  4. Sitzung 2Maximum Likelihood und logistische Regression
  5. Sitzung 3Gradientenabstieg, Ridge und Lasso
  6. Sitzung 4Entscheidungsschwelle und reproduzierbares ML
  7. HausaufgabeML-Projekt abstecken: der Projektsteckbrief
  8. Sitzung 5Kernel, SVM und Entscheidungsbäume
  9. Sitzung 6Random Forests, Boosting, ehrlicher Vergleich
  10. Sitzung 7SHAP, Fairness, PCA und Clustering
  11. HausaufgabeEin einfaches Modell mit vollständiger Methode
  12. Sitzung 8Neuronale Netze, Drift, konforme Vorhersage
  13. HausaufgabeEin ausgeliefertes Machine-Learning-Projekt
  14. Sitzung 9Ein Machine-Learning-Projekt verteidigen
  15. ReferenzProjekt zum Kreditausfallscore
  16. ReferenzAktienrenditen: XGBoost und Sentiment
  17. ReferenzPython-Code für jedes ML-Modell
  18. ReferenzDeep Learning, das Wesentliche
  19. ReferenzML-Projekte mit offenen Daten nach Branche
  20. ReferenzHandbuch für Daten- und KI-Fachleute
  21. ReferenzData Engineering, SRE und Cloud
  22. ReferenzPanorama der Machine-Learning-Modelle

Alle Notizen als Leseliste

Aufmerksamkeit und Transformer, Schritt für Schritt

Über diese Notizen

Vom Dozenten auf Grundlage der Folien verfasst, als öffentliche Zusammenfassung: die Kernideen, die Formeln und ein durchgerechnetes Beispiel. Die Übungen, ihre Lösungen, die Tests und die Bewertung bleiben im Foliensatz, für die Studierenden des Kurses.

Stand: .