feature(notes): add l5 notes
This commit is contained in:
@@ -0,0 +1,395 @@
|
||||
# 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 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 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), Target `Price` (float). Hier erfolgen die Performance-Vergleiche → **wird** gesplittet.
|
||||
|
||||
```python
|
||||
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
|
||||
|
||||
```python
|
||||
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
|
||||
|
||||
```python
|
||||
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.
|
||||
Reference in New Issue
Block a user