Files
cas-pml/SL/notizen/L5_Notizen.md
T

24 KiB
Raw Blame History

Notizen SL Lektion 5 (Foliensatz 1315)

Thema: Regression, Validierung, MLOps Datum: 11.06.2026 Dozentin: Violeta Vogel

Regression Definition

  • Regression ist ein statistisches Analyseverfahren.
  • Ziele:
    • Beziehungen zwischen einer abhängigen und einer oder mehreren unabhängigen Variablen modellieren
    • Zusammenhänge quantitativ beschreiben
    • Werte der abhängigen Variable prognostizieren

Typen der Regression

  • Einfache lineare Regression: zwei Variablen, eine abhängige (AV), eine unabhängige (UV)
  • Multiple lineare Regression: mehrere unabhängige Variablen beeinflussen gemeinsam eine abhängige Variable
  • Logistische Regression: wenn die abhängige Variable kategorial ist (binär oder multinominal)
  • Ridge / Lasso Regression: spezielle Formen der linearen Regression, eingesetzt bei Multikollinearität (hohe Korrelation zwischen Prädiktoren)

Wahl der Methode nach Datentyp

Die passende Regressionsart hängt vom Skalenniveau von AV und UV ab:

Regressionsart Skala AV (Kriterium) Skala UV (Prädiktor)
Einfache lineare Regression metrisch metrisch
Multiple lineare Regression metrisch metrisch / ordinal / dichotom
Logistische Regression dichotom intervallskaliert / diskret / beliebig
Multinominale logistische R. kategorial (binär/multinominal) beliebig

Korrelation

  • Beschreibt, wie Variablen zusammenhängen.
  • Arten:
    • positiver Zusammenhang: höhere Werte der einen Variable → höhere Werte der anderen
    • negativer Zusammenhang: höhere Werte der einen → niedrigere der anderen
    • kein Zusammenhang: Veränderung der einen hat keinen Einfluss auf die andere

⚠️ Achtung: r \approx 0 heisst nur kein linearer Zusammenhang. Ein klarer nichtlinearer Zusammenhang (z.B. parabelförmig) kann trotzdem r \approx 0 haben. → immer auch den Scatterplot anschauen.

Korrelation und Regression

  • Korrelation: Frage nach dem Zusammenhang zwischen zwei Variablen.
  • Regression: nutzt diesen Zusammenhang, um Werte der einen Variable auf Basis der anderen vorherzusagen.

Residuum

  • Der Abstand aller Punkte zur Vorhersagelinie soll minimal sein.
  • Dieser Abstand (Wert Vorhersage) heisst Residuum (Rest).
  • Bestimmt mit der Methode der kleinsten Quadrate (Minimierung der Fehlerquadratsumme).

Einfache lineare Regression

  • Untersucht die lineare Beziehung zwischen zwei stetigen Variablen.

Regressionsgleichung

\hat{y}_i = a + b \cdot x_i
  • \hat{y}_i: vorhergesagter Wert (Schätzung, kann vom echten Wert abweichen)
  • a: Schnittpunkt mit der y-Achse (Ordinatenabschnitt / Intercept)
  • b: Steigung der Geraden (Regressionskoeffizient / Regressionsgewicht)
  • x_i: Wert der Variablen, die zur Vorhersage genutzt wird

Beispiel: \hat{y} = 0{,}5x + 1, für x = 5\hat{y} = 0{,}5 \cdot 5 + 1 = 3{,}5

Voraussetzungen für die lineare Regression

  • linearer Zusammenhang zwischen den Variablen
  • Skalenniveau von AV und UV metrisch (konkrete Zahlenwerte, z.B. Körpergrösse)
  • Residuen sollen untereinander keine Korrelation aufweisen
  • Residuen sollen konstant über den ganzen Wertebereich der AV streuen → Homoskedastizität
  • möglichst wenig Ausreisser (haben grossen Einfluss auf die Vorhersagegüte)

Multiple lineare Regression

  • Mehrere unabhängige Variablen (Prädiktoren) erklären gemeinsam y.

Regressionsgleichung

\hat{y}_i = a + b_1 x_{1i} + b_2 x_{2i} + \dots + b_k x_{ki}
  • jeder Term b_k \cdot x_{ki} ist ein Prädiktor
  • mit Fehlerterm geschrieben: y = \beta_0 + \beta_1 x_1 + \beta_2 x_2 + \dots + \beta_k x_k + \varepsilon
  • jeder Koeffizient \beta_k zeigt den Einfluss seiner Variable auf y, während die anderen Variablen konstant gehalten werden (das ist der Kernunterschied zur einfachen Regression)

Merksatz: Jede multiple Regression ist eine lineare Regression (linear in den Koeffizienten), aber nicht jede lineare Regression ist multipel. Die multiple Regression erweitert die einfache um mehrere Einflussgrössen.

Regressionsgewicht

  • Unstandardisiert (b)
    • Wertebereich abhängig von der gewählten Skala
    • inhaltlich interpretierbar
    • zwischen Prädiktoren nur vergleichbar, wenn diese auf derselben Skala gemessen wurden
  • Standardisiert (\beta) (an der Standardabweichung normiert)
    • Wertebereich [-1, +1]
    • inhaltlich nicht interpretierbar
    • zwischen Prädiktoren vergleichbar
    • interpretierbar wie Korrelationen (r)

Output-Tabelle lesen (b, β, T, Sig.)

Spalte Bedeutung
(Konstante) Ordinatenabschnitt (a bzw. \beta_0)
b unstandardisiertes Regressionsgewicht
\beta standardisiertes Regressionsgewicht
T Teststatistik: hat der Prädiktor einen signifikanten Einfluss?
Sig. p-Wert: kleiner Wert (z.B. < 0.05) → Einfluss vermutlich nicht zufällig

Sternchen sind Signifikanzniveaus: * p<0.05, ** p<0.01, *** p<0.001. Im Folienbeispiel: Geschmack (0.001 **) und Preis (0.000 ***) signifikant, Aussehen (0.682) nicht.

Voraussetzungen für die multiple lineare Regression

  • Skalenniveau von AV und UV metrisch
  • linearer Zusammenhang Prädiktoren ↔ AV (grafisch prüfen)
  • Residuen normalverteilt (bei ausreichend grosser Stichprobe vernachlässigbar)
  • Homoskedastizität: Streuung der y-Werte über den ganzen Wertebereich von x homogen (Levene-Test oder grafisch)
  • wenig Ausreisser / einflussreiche Punkte (Leverage-Analyse)
  • Residuen dürfen nicht korrelieren — unkritisch, solange die Korrelation zwischen den Prädiktoren den Schwellenwert r = 0{,}8 nicht überschreitet

Multiple vs. lineare Regression

Merkmal Lineare Regression Multiple Regression
Anzahl unab. Variablen 1 2 oder mehr
Ziel Zusammenhang x \leftrightarrow y untersuchen gemeinsamen Einfluss mehrerer Variablen auf y untersuchen
Beispiel Umsatz durch Werbebudget erklären Umsatz durch Werbebudget, Preis und Saison erklären
Grafische Darstellung Gerade in 2D Ebene bzw. Hyperfläche in mehreren Dimensionen

Use Cases für Regression

Mögliche Zuordnungen (UV → AV, Ziel = Vorhersage der AV):

Gebiet Unabhängige Variablen (UV) Abhängige Variable (AV)
Immobilienpreise Alter des Gebäudes, Anzahl Zimmer, Wohnfläche Verkaufspreis
Gehaltsanalyse Berufserfahrung, Ausbildung Gehalt
Autopreise gefahrene Kilometer, Gewicht, Baujahr Fahrzeugpreis
Medizin Alter, Gewicht, Blutdruck Krankheitsrisiko
Sportanalyse Trainingsstunden, Gewicht Leistung / Platzierung
Finanzdaten Einkommen, Ausbildung, Schulden Kreditwürdigkeit

Hinweis: Beispiel-Mappings, in der Lektion nicht abschliessend von der Dozentin durchgegangen.

Herausforderungen bei der Regression

  • Nichtlineare Zusammenhänge: lineare Regression unterstellt Linearität; real oft komplexer (z.B. Alter → Einkommen selten streng linear)
  • Multikollinearität: stark korrelierte Prädiktoren → einzelne Effekte schwer trennbar (z.B. Wohnfläche vs. Anzahl Zimmer)
  • Ausreisser: wenige Extremwerte können die Gerade stark verzerren
  • Overfitting: Modell passt sich zu stark an Trainingsdaten an, generalisiert schlecht
  • Underfitting: Modell zu einfach, erfasst wichtige Muster nicht
  • Heteroskedastizität: Fehlerstreuung nicht konstant → Schätzungen/Tests unzuverlässig
  • Fehlende Daten: verzerrte Ergebnisse
  • Verletzung der Modellannahmen (Linearität, Unabhängigkeit der Fehler, konstante Fehlervarianz, Normalverteilung der Residuen) → sinkende Aussagekraft
  • Auswahl relevanter Variablen: zu viele irrelevante erhöhen Komplexität, wichtige fehlende verzerren
  • Kausalität vs. Korrelation: Regression zeigt Zusammenhänge, beweist keine Ursache-Wirkung (z.B. Eisverkauf ↔ Badeunfälle: beide steigen im Sommer, kein kausaler Link)
  • Interpretierbarkeit: komplexere Modelle ggf. genauer, aber schwerer interpretierbar

Regularisierung: Lasso & Ridge

Beide fügen der Kostenfunktion (Fehlerquadratsumme) einen Strafterm hinzu, der grosse Koeffizienten „teuer" macht → weniger Komplexität, weniger Overfitting.

Lasso Regression (L1-Regularisierung)

  • führt Variablenselektion UND Regularisierung durch
  • Ziel: Überanpassung verhindern, Modellgenauigkeit verbessern
  • Vorgehen: einige Koeffizienten werden auf Null gesetzt → spärliche (sparse) Modelle

Formel

L = \sum_{i=1}^{n}\bigl(y_i - (a + b x_i)\bigr)^2 + \lambda \sum_{j} |b_j|
  • erster Term: Fehlerquadratsumme (OLS)
  • zweiter Term: L1-Norm der Koeffizienten \times\ \lambda

Einsatz

  • genomische Auswahl (Gene mit stärkstem Krankheits-/Merkmalsbezug identifizieren)
  • Vorhersage in Wirtschaft/Finanzen (z.B. Aktienkurse)
  • Kreditrisikobewertung

Vor- und Nachteile

Vorteile Nachteile
automatische Variablenselektion problematisch bei stark korrelierten Variablen
verhindert Overfitting Wahl von \lambda kann schwierig sein
einfachere Interpretation kann wichtige Variablen entfernen
geeignet für viele Merkmale erfasst Nichtlinearitäten nur begrenzt

Bei stark korrelierten Variablen wählt Lasso oft nur eine davon und ignoriert die anderen → Informationsverlust.

Ridge Regression (L2-Regularisierung)

  • Abwandlung der linearen Regression mit zusätzlichem Regularisierungsterm
  • berücksichtigt die Grösse der Koeffizienten, verhindert einzelne sehr grosse Koeffizienten
  • Folge: geringere Wahrscheinlichkeit für Overfitting
  • schrumpft Koeffizienten, setzt sie aber (anders als Lasso) selten auf Null → keine Variablenselektion

Formel

\sum_{i=1}^{n}(y_i - \hat{y}_i)^2 + \lambda \sum_{j=1}^{p}\beta_j^2
  • \beta_j: Regressionskoeffizienten
  • \lambda: Regularisierungsparameter — je grösser \lambda, desto stärker werden die Koeffizienten verkleinert
  • Strafterm = Quadrat der Koeffizienten (L2) — hier liegt der Unterschied zu Lasso (Betrag, L1)

Herausforderungen / Hinweise

  • Wahl von \lambda: zu klein → kaum Unterschied zur OLS; zu gross → wichtige Info geht verloren
  • keine Variablenselektion → bei vielen Merkmalen schwerer interpretierbar
  • Standardisierung erforderlich, da Variablen unterschiedliche Grössenordnungen haben
  • bildet Nichtlinearitäten nur begrenzt ab

Einsatz

Immobilienbewertung (viele korrelierte Merkmale), Finanzen (Aktienrenditen, Kreditrisiken), Marketing (Kanäle → Umsatz), Medizin (Krankheitsrisiken), allg. bessere Generalisierung bei vielen Variablen.

Vor- und Nachteile

Vorteile Nachteile
reduziert Overfitting keine automatische Variablenselektion
gut bei Multikollinearität Wahl von \lambda kann schwierig sein
nutzt alle verfügbaren Infos bei vielen Variablen schlechter interpretierbar
stabile Schätzungen erfasst Nichtlinearitäten nur begrenzt

Lasso vs. Ridge

Ridge Lasso
verkleinert Koeffizienten verkleinert Koeffizienten
setzt Koeffizienten selten auf 0 kann Koeffizienten auf 0 setzen
behält alle Variablen führt Variablenselektion durch
gut bei stark korrelierten Variablen wählt oft nur einige korrelierte Variablen aus

λ vs. alpha — Auflösung der Verwirrung

Das war der wunde Punkt in der Lektion (Dozentin sprach von „Alpha", zeigte aber auf \lambda):

  • In der Theorie/Statistik heisst der Regularisierungsparameter $\lambda$ (Lambda).
  • In scikit-learn heisst genau derselbe Parameter alpha (bei Lasso, Ridge).
  • Folie 66 bestätigt es wörtlich: „der Parameter alpha entspricht \lambda in der theoretischen Einführung."
  • Es ist dasselbe. Nur die Benennung unterscheidet sich (Mathe-Notation vs. sklearn-API). Beim Lernen einfach \lambda = alpha setzen.

Wirkung (für Lasso und Ridge gleich):

  • \lambda = 0 → keine Regularisierung, normale OLS-Regression
  • \lambda klein → wenig Schrumpfung, mehr Merkmale bleiben (Risiko Overfitting)
  • \lambda gross → starke Schrumpfung
    • Lasso: setzt Koeffizienten auf 0 → Feature Selection
    • Ridge: schrumpft sie nur, behält alle

💡 Hinweis (nicht in den Folien, falls du tiefer willst): Die genaue Skalierung der Zielfunktion ist in sklearn nicht identisch — Lasso rechnet mit Faktor \frac{1}{2n} vor dem Fehlerterm, Ridge nicht. alpha\lambda stimmt also konzeptionell, der numerische Massstab kann zwischen den beiden abweichen. Für die Prüfung irrelevant, aber gut zu wissen, wenn du alpha-Werte zwischen Modellen vergleichst.


Evaluation von Regressionsmodellen

Mean Absolute Error (MAE)

\text{MAE} = \frac{1}{n}\sum_{i=1}^{n} |y_i - \hat{y}_i|
  • misst die durchschnittliche absolute Abweichung
  • + einfach zu interpretieren, robust gegenüber Ausreissern
  • grosse Fehler werden nicht besonders stark bestraft
  • Beispiel: MAE = 5 → Vorhersagen weichen im Schnitt um 5 Einheiten ab

Mean Squared Error (MSE)

\text{MSE} = \frac{1}{n}\sum_{i=1}^{n} (y_i - \hat{y}_i)^2
  • durchschnittliche quadratische Abweichung
  • + bestraft grosse Fehler stark, weit verbreitet im ML
  • empfindlich gegenüber Ausreissern, Einheit ist „quadriert" (schwerer interpretierbar)

Root Mean Squared Error (RMSE)

\text{RMSE} = \sqrt{\frac{1}{n}\sum_{i=1}^{n} (y_i - \hat{y}_i)^2}
  • Quadratwurzel des MSE
  • + gleiche Einheit wie die Zielvariable, gewichtet grosse Fehler stärker
  • sensibel gegenüber Ausreissern

Vergleich

Methode Zweck Vorteile Nachteile Typischer Einsatz
MAE durchschn. absoluter Fehler einfach, robust ggü. Ausreissern grosse Fehler kaum bestraft wenn durchschn. Fehlergrösse zählt
MSE durchschn. quadrat. Fehler bestraft grosse Fehler stark empfindlich ggü. Ausreissern, schwerer interpretierbar wenn grosse Fehler vermieden werden sollen
RMSE Fehler in Originaleinheit gleiche Einheit wie Zielvariable sensibel ggü. Ausreissern Standardmetrik für viele Probleme
Cross Validation Generalisierung bewerten erkennt Overfitting, robuster höherer Rechenaufwand Modellvergleich & -validierung

Daneben gibt es R^2 (Bestimmtheitsmass) — sklearn nutzt das per model.score() (siehe Praxis).

Cross Validation

  • Verfahren zur Bewertung von ML-/Regressionsmodellen.
  • Ziel: prüfen, wie gut ein Modell auf unbekannten Daten funktioniert (Generalisierung).
  • Reduziert das Risiko einer „glücklichen" Aufteilung durch mehrere Trainings-/Test-Splits.

Vorgehen (k-Fold)

  1. Datensatz in k gleich grosse Teile (Folds) aufteilen
  2. einen Fold als Testdaten verwenden
  3. die übrigen k-1 Folds als Trainingsdaten
  4. Modell trainieren und testen
  5. $k$-mal wiederholen, sodass jeder Fold einmal Testdaten ist
  6. Ergebnisse mitteln

Beispiel (k=5): Durchlauf 1 testet Fold 1 (trainiert auf 25), Durchlauf 2 testet Fold 2 (trainiert auf 1, 35), usw.

Hinweise

  • Rechenaufwand: Modell wird mehrfach trainiert → teurer als einfacher Train-Test-Split
  • Wahl von $k$: klein (5) = schneller; gross (10) = stabiler, aber aufwändiger
  • Data Leakage: Test-Infos dürfen nicht ins Training gelangen, sonst zu optimistische Ergebnisse
  • Zeitreihen: normale k-Fold ungeeignet — zukünftige Daten dürfen nicht zur Vorhersage vergangener verwendet werden (→ stattdessen z.B. TimeSeriesSplit)

Vor- und Nachteile

Vorteile Nachteile
zuverlässigere Leistungsbewertung höherer Rechenaufwand
erkennt Overfitting bei grossen Datensätzen langsam
nutzt Daten effizient nicht direkt für Zeitreihen geeignet
gut für Modellvergleich sorgfältige Umsetzung erforderlich

Evaluation: Herausforderungen

  • Overfitting / Underfitting (s.o.)
  • Ausreisser beeinflussen MSE und RMSE stark
  • Data Leakage verfälscht die Evaluation
  • unausgewogene Daten (über-/unterrepräsentierte Wertebereiche)

Praxis (Foliensatz, Demo & Melbourne Housing)

Kurzreferenz für den Praxisteil — der eigentliche Workshop 08 ist unten als offene Aufgabe notiert.

Setup

  • Demo-Dataset demo_data_regr.csv: 2 Spalten (X = Feature, y = Target), 81 Beobachtungen — nur zur Veranschaulichung, kein Train-Test-Split.
  • Melbourne Housing melb_data_prep.csv: 18'393 Zeilen, 24 Spalten (10 float, 14 int), Target Price (float). Hier erfolgen die Performance-Vergleiche → wird gesplittet.
import pandas as pd, numpy as np, matplotlib.pyplot as plt, seaborn as sns
from bfh_cas_pml import prep_data, prep_demo_data

X_train, X_test, y_train, y_test = prep_data('melb_data_prep.csv', 'Price', seed=1234)
X_demo, y_demo = prep_demo_data('demo_data_regr.csv', 'y')

Lineare Regression

from sklearn.linear_model import LinearRegression
model = LinearRegression()
model.fit(X_train, y_train)
print(model.intercept_, model.coef_)   # X_train.columns für Feature-Zuordnung
print(model.score(X_test, y_test))     # liefert R²
  • fit_intercept=True (Default) sorgt dafür, dass der Intercept berechnet wird; sonst auf 0 fixiert.
  • model.score(X_test, y_test) == r2_score(y_test, model.predict(X_test)) (Folienwert ≈ 0.560).
  • Fazit aus dem Scatter (y_pred vs. y_test): Modell erzeugt teils negative Preise (unglaubwürdig), Zusammenhang wirkt nicht ganz linear — evtl. Feature-Korrelationen / Extremwerte.

Lasso & Ridge

from sklearn.linear_model import Lasso, Ridge
Lasso().fit(X_train, y_train)   # R² ≈ 0.560
Ridge().fit(X_train, y_train)   # R² ≈ 0.560
  • Default-alpha ändert hier kaum etwas am R² → als reine Regressoren nicht Favorit.
  • aber: starke Instrumente für Feature Selection (v.a. Lasso). Mit alpha=10000 bleiben von 23 Features nur 7 übrig (z.B. Rooms, Bathroom, Car, logLandsize, Method_S, Regionname_Southern_Metropolitan, day_of_week) → daraus liesse sich eine Filtermaske bauen.
  • Erinnerung: alpha == \lambda (siehe oben).

🛠 Workshop 08 (60', offen)

Untersuche den Einfluss des Standardisierens der Features auf:

  • Modellkoeffizienten
  • Predictions
  • Score

Optional/zu Hause: Einfluss des Logarithmierens des Targets auf die Performance der linearen Regression.

(eigene Bearbeitung — bewusst nicht vorgelöst)


Validierung — Klassifikationsmetriken (Foliensatz 14)

Bewertung von Klassifikationsmodellen (Ergänzung zu den Regressionsmetriken oben).

Konfusionsmatrix

Gegenüberstellung tatsächlicher vs. vorhergesagter Klassen:

  • TP (True Positive): positiver Fall korrekt als positiv erkannt
  • TN (True Negative): negativer Fall korrekt als negativ erkannt
  • FP (False Positive): negativer Fall fälschlich als positiv → Fehler Typ I
  • FN (False Negative): positiver Fall fälschlich als negativ → Fehler Typ II

Konvention: Zeilen = tatsächliche Klasse, Spalten = vorhergesagte Klasse.

⚠️ Achtung: Das genaue Layout variiert je nach Quelle (welche Klasse oben/links steht — in diesem Foliensatz sind sogar zwei verschiedene Anordnungen abgebildet). sklearn.metrics.confusion_matrix liefert für binär [0,1] die Reihenfolge [[TN, FP], [FN, TP]] (Labels aufsteigend sortiert). → immer Achsenbeschriftung prüfen, bevor man Zellen interpretiert.

Nutzen: detaillierte Fehleranalyse (nicht nur Gesamt-Accuracy), Modelloptimierung (Schwachstellen sichtbar machen), Modellvergleich, Basis für abgeleitete Metriken (Precision, Recall, F1).

Warum nicht nur Accuracy? Bei unausgeglichenen Klassen ist Accuracy irreführend: immer „negativ" raten bei 99 % Negativen → 99 % Accuracy, aber 0 % der positiven Fälle erkannt. Darum Precision/Recall/F1.

Precision

\text{Precision} = \frac{TP}{TP + FP} = \frac{TP}{\text{alle als positiv vorhergesagten}}
  • Wie viele der als positiv vorhergesagten Fälle sind wirklich positiv?
  • einsetzen, wenn positive Vorhersagen genau sein müssen (FP teuer; z.B. Spam-Filter: lieber Spam durchlassen als wichtige Mail fälschlich blocken)
  • steigt, wenn die FP sinken

Recall (Sensitivität)

\text{Recall} = \frac{TP}{TP + FN} = \frac{TP}{\text{alle tatsächlich positiven}}
  • Wie viele der tatsächlich positiven Fälle wurden erkannt?
  • einsetzen, wenn FN teurer sind als FP (z.B. Krankheitsdiagnose: kranke Person nicht übersehen)
  • steigt, wenn die FN sinken

Precision vs. Recall

  • Zielkonflikt (Trade-off): mit steigender Precision sinkt i.d.R. der Recall — und umgekehrt.
  • steuerbar über den Entscheidungs-Schwellenwert (Threshold) des Klassifikators.

F1-Score

F_1 = 2 \cdot \frac{\text{Precision} \cdot \text{Recall}}{\text{Precision} + \text{Recall}}
  • harmonisches Mittel von Precision und Recall (nicht arithmetisch!) → bestraft Ungleichgewicht: ist einer der beiden klein, wird auch F1 klein.
  • balanciert beide; besonders wertvoll bei unausgeglichenen Datensätzen.

Praxis: Kreuzvalidierung (Stabilität)

from sklearn.model_selection import cross_val_score
scores = cross_val_score(model, X, y, cv=kfold)   # kfold default = 5
print("mean:", np.mean(scores), "std:", np.std(scores))
sns.boxplot(x=scores)
  • cross_val_score gibt ein Array mit dem Score je Fold zurück und macht das Splitten selbst (kein manueller Train-Test-Split nötig).
  • mean → durchschnittliche Performance.
  • stdStabilität des Learners: wie stark hängt die Performance von der zufälligen Datenaufteilung (random_state) ab.
    • kleine std = stabileres Resultat der Methode.