Files
cas-pml/SL/aufgaben/workshop2/README.md
T

85 lines
3.0 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Workshop 2 Feature Engineering & Datenaufbereitung
## Aufgabenstellung
Untersuchung des Melbourne Housing Datasets aus ML-Perspektive.
Erste Empfehlungen zur Datenaufbereitung formulieren.
### Zu untersuchende Punkte
- **Ungeeignete Variablen** identifizieren (von vornherein nicht für ML brauchbar)
- **Missing Values** pro Variable geeignete Strategie wählen
- **Nicht-numerische Variablen** passende Encoding-Strategie wählen
- **Anomalien** entdecken, die bereinigt werden müssen (Outlier, Inkonsistenzen, Duplikate)
- **Empfehlungen** zur Datenaufbereitung formulieren
### Zeitrahmen
90 Minuten
## Hilfsmittel der Dozentin
- `WS 02 Feature Engineering Exploration Overview.ipynb`
ermittelt Kennwerte der Variablen in einem DataFrame und stellt diese in einer Excel-Tabelle zusammen
- `pandas_profiling_melb_data.html` vorgenerierter Profiling-Report
## Vorgehen
1. **Profiling-Report sichten** (ydata-profiling) für schnellen Überblick
2. **Variablen filtern** ungeeignete Spalten markieren (z.B. IDs, Freitextfelder, zu hohe Kardinalität)
3. **Missing Values analysieren** Anteil pro Spalte, Muster (MCAR / MAR / MNAR)
4. **Kategoriale Variablen** Strategie pro Spalte festlegen
5. **Anomalien suchen** Outlier (Boxplots, z-Score, IQR), inkonsistente Werte, Duplikate
6. **Empfehlungen dokumentieren** in der Workshop-1-Tabelle ergänzen
## Theorie-Bausteine
### Missing-Value-Strategien
| Strategie | Wann geeignet |
|---|---|
| Zeile löschen | wenige Missings, MCAR |
| Spalte löschen | sehr hoher Missing-Anteil (>50%), wenig Information |
| Mean / Median imputieren | numerisch, symmetrisch / schief verteilt |
| Mode imputieren | kategorial |
| Konstanter Wert (z.B. "Unknown", 0) | kategorial mit Bedeutung "fehlt" |
| KNN / Iterative Imputation | komplexere Muster, mehr Aufwand |
| Indikator-Spalte | "fehlt" selbst ist Information (MNAR) |
### Missing-Value-Typen (Rubin)
- **MCAR** Missing Completely At Random: Fehlen unabhängig von allem
- **MAR** Missing At Random: Fehlen erklärbar durch andere beobachtete Variablen
- **MNAR** Missing Not At Random: Fehlen hängt vom fehlenden Wert selbst ab
### Encoding-Strategien für kategoriale Variablen
| Strategie | Wann geeignet |
|---|---|
| **Label-Encoding** | ordinal mit klarer Reihenfolge |
| **One-Hot-Encoding** | nominal, wenige Kategorien (<~15) |
| **Target-Encoding** | nominal, hohe Kardinalität, Vorsicht: Leakage |
| **Frequency-Encoding** | hohe Kardinalität, einfach |
| **Binary-Encoding** | hohe Kardinalität, weniger Spalten als One-Hot |
| **Embeddings** | sehr hohe Kardinalität, Deep Learning |
### Outlier-Detection
- Boxplot / IQR-Regel (1.5 × IQR)
- z-Score (|z| > 3)
- Visuell via Histogramm / Scatter
- Domain-Wissen (z.B. negativer Preis, Baujahr 1196 statt 1996)
## Struktur
```
.
├── devenv.nix
├── devenv.lock
├── devenv.yaml
├── data/
│ └── melb_data.csv
└── solution/
├── 01_skalenniveaus.md
```