28 KiB
Notizen SL Lektion 5 (Foliensatz 13–15)
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 0heisst nur kein linearer Zusammenhang. Ein klarer nichtlinearer Zusammenhang (z.B. parabelförmig) kann trotzdemr \approx 0haben. → 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_kzeigt den Einfluss seiner Variable aufy, 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)
- Wertebereich
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{,}8nicht ü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(beiLasso,Ridge). - Folie 66 bestätigt es wörtlich: „der Parameter
alphaentspricht\lambdain der theoretischen Einführung." - → Es ist dasselbe. Nur die Benennung unterscheidet sich (Mathe-Notation vs. sklearn-API). Beim Lernen einfach
\lambda =alphasetzen.
Wirkung (für Lasso und Ridge gleich):
\lambda = 0→ keine Regularisierung, normale OLS-Regression\lambdaklein → wenig Schrumpfung, mehr Merkmale bleiben (Risiko Overfitting)\lambdagross → 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 —
Lassorechnet mit Faktor\frac{1}{2n}vor dem Fehlerterm,Ridgenicht.alpha↔\lambdastimmt also konzeptionell, der numerische Massstab kann zwischen den beiden abweichen. Für die Prüfung irrelevant, aber gut zu wissen, wenn dualpha-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 permodel.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)
- Datensatz in
kgleich grosse Teile (Folds) aufteilen - einen Fold als Testdaten verwenden
- die übrigen
k-1Folds als Trainingsdaten - Modell trainieren und testen
- $k$-mal wiederholen, sodass jeder Fold einmal Testdaten ist
- Ergebnisse mitteln
Beispiel (k=5): Durchlauf 1 testet Fold 1 (trainiert auf 2–5), Durchlauf 2 testet Fold 2 (trainiert auf 1, 3–5), 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), TargetPrice(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))→ R² (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=10000bleiben 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_matrixliefert 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_scoregibt ein Array mit dem Score je Fold zurück und macht das Splitten selbst (kein manueller Train-Test-Split nötig).- mean → durchschnittliche Performance.
- std → Stabilität des Learners: wie stark hängt die Performance von der zufälligen Datenaufteilung (random_state) ab.
- kleine std = stabileres Resultat der Methode.
ML OPs (Foliensatz 15)
Hauptaufgaben
- Entwicklung der Modelle
- Vorbereitung für die Produktion
- Bereitstellen in der Produktion
- Überwachungs- und Rückkopplungsschleife
- Modellsteuerung
Modelle Entwickeln
- Ein ML-Modell ist eine Projektion der Realität
- Partielle und annähernde Darstellung einer realen Sache oder Prozesses
- ML-Modelle reduzieren sich nach dem Training auf eine mathematische Formel
- liefert bei Eingabe bestimmter Parameter ein Ergebnis
- ein ML-Modell ist
- Die Menge der Parameter die zum Wiederaufbau und zur Anwendung der Formel erforderlich sind
- Zustandslos und determisnistisch
Erforderliche Komponenten
- Trainingsdaten
- Datensatz fürs Modelltraining
- Leistungskennzahl
- Was versucht das Modell zu optimieren?
- ML-Algorithmus
- Priorität auf Leistung, Stabilität, Interpretierbarkeit und Rechenkosten
- Hyperparameter
- Konfigurationen für die ML-Algorithmen, quasi das Feintuning
- Auswertungsdaten
- Unterscheided sich vom Trainingsdatensatz und wird verwendet um zu bewerten
MLOps Überlegungen nach Alorithmustyp
Wichtig ist sich den Limitationen aller Algorithmen bewusst zu sein
- Linear
- Regression (linear und logistisch)
- Tendiert zu Overfitting!
- Regression (linear und logistisch)
- Baumbasiert
- Entscheidungsbaum
- kann instabil sein, kleine Anpassungen führen zu grossen Veränderungen
- Random Forest
- vorhersagen können schwer verständlich sein, und sind langsam
- Gradientenboosting
- auch schwer verständlich, sensitiv auf kleine Änderungen im Modell
- Entscheidungsbaum
- Tiefgründiges lernen
- Neuronale Netzwerke
- nahezu unmöglich zu versthen, training extrem langsam
- Neuronale Netzwerke
Versionverwaltung
- Unerlässlich, besonders für Audits
- Es muss auch später klar sein wann welches Modell wo im Einsatz war
- Modelle müssen reproduzierbar sein!
- Daher muss klar nachvollziehbar sein wie ein Modell zu stande kam
- Ergebnisse
- Implementierung
- Umgebung
Vorbereitung für die Produktion
Laufzeitumgebung
- Modell Pipeline
- Werkzeuge müssen während der Modellentwicklung eingerichtet werden
- Reproduzierbarkeit und Versionskontrolle beachten!
Modellrisikobewertung
- Was wenn sich das Modell auf die denkbar schlechteste Weise verhält?
- Worst Case Szenario abbilden
- Was wenn es dem Benutzer gelingt die Trainingsdaten oder die interne Logik zu extrahieren?
- Risikoabschätzung, im Wesentlichen folgendes
- Fehler, Irrtümer beim Entwurf oder Training
- Fehler im Laufzeit-Framework
- Geringe Qualität der Trainingsdaten
- Unterschied Trainingsdaten und Produktionsdaten (zu gross)
- Missbrauch des Modells
- Gegnerische Angriffe
- Rechtliches Risiko
Bereitstellunge in der Produktion
CI/CD Pipelines
- Modell erstellen
- Artefakte erstellen
- ins Artifactory pushen
- Überprüfungen (Rechtliches etc.)
- Bereitstellung in Testumgebung
- Tests durchführen, ML Leistung und Rechenleistung validieren
- Manuelle Validierung
- Bereitstellung in Produktion
- Modell vollständig implementieren
Überwachungs und Rückkopplungsschleife
- Wie oft sollten Modelle neu trainiert werden?
- kommt aufs Modell drauf an
- Entscheidungsgrundlagen
- Bereich
- In Cybersicherheit und Echtzeitverarbeitung regelmässig aktualisieren
- Spracherkennung bspw. stabiler
- Kosten
- Lohnt es sich?
- Leistungsfähigkeit des Modells
- Bereich
Modellverschlechterung
- Sobald das Modell in Produktion ist gibt es zwei wichtige Kennzahlen
- Bewertung der Realität
- man wartet einfach bis was passiert
- berechnung der Leistung des Modells auf basis tatsächlicher Werte
- wenn Differenz den Schwellenwert überschreitet, muss das Modell neu trainiert werden
- Eingangsdrifterkennung
- Eine Abweichung der Datenverteilung zwischen Trainings- und Testphase
- Problem: Leistung des Modells in Produktion nicht gleich wie in Training
- Mögliche Ursachen:
- Verzerrung durch Stichprobenauswahl
- Saisonalität
- Nicht-Stationäre Umgebgung
- Erkennung: Mit statistischen Tests
- Bewertung der Realität