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

69 lines
2.3 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 13 — Stabilitätsvergleich von Klassifikatoren (Kreuzvalidierung)
> CAS Practical Machine Learning · Supervised Learning · Lektion 5 (Foliensatz 14, Folie 12)
> Zeit: 30'
## Aufgabenstellung
Vergleiche **alle bisher bekannten Klassifikatoren** in Bezug auf deren **Stabilität**
unter Anwendung von Kreuzvalidierung.
- für die Klassifikatoren jeweils **Default-Parametrisierung** verwenden
- für die Kreuzvalidierung `sklearn.model_selection.cross_val_score` einsetzen
## Kernidee: was heisst „Stabilität"?
`cross_val_score` liefert einen Score **pro Fold**. Aus diesen Werten:
- **mean** → durchschnittliche Performance
- **std** → **Stabilität**: wie stark schwankt die Performance über die Folds (= über
verschiedene Datenaufteilungen). **Kleine std = stabiler.**
Ziel des Vergleichs: welcher Klassifikator liefert nicht nur gute, sondern auch
**verlässliche** (wenig streuende) Ergebnisse?
## Datensatz
Klassifikations-Datensatz aus den bisherigen Workshops (analog WS6, via
`bfh_cas_pml.prep_data` auf dem aufbereiteten CSV in `data/`).
> Hinweis: `cross_val_score` übernimmt das Splitten selbst → **kein** manueller
> Train-Test-Split nötig. Es genügt, `X` und `y` zu übergeben (z.B. `X_train`, `y_train`).
## Ordnerstruktur
```
workshop13
├── data
│ └── <classification_data>.csv # aus Kursmaterial
├── devenv.lock
├── devenv.nix
├── README.md
├── stability_boxplot.png # Output
└── src
├── bfh_cas_pml.py # aus Kursmaterial
└── crossvalidation.py # Lösung
```
## Vorgehen
1. Daten laden (`X`, `y`).
2. Alle bekannten Klassifikatoren mit **Default-Parametern** in einem `dict` sammeln.
3. Pro Klassifikator `cross_val_score(clf, X, y, cv=kfold)` rechnen.
4. `mean` und `std` je Klassifikator gegenüberstellen (nach `std` sortieren).
5. Boxplot aller Klassifikatoren nebeneinander → Streuung sichtbar machen.
## Erkenntnisse / offene Punkte
> hier eigene Beobachtungen festhalten
- Stabilster Klassifikator (kleinste std):
- Bester Mittelwert (mean):
- Trade-off mean vs. std:
- Welche Klassifikatoren brauchen `random_state`, welche nicht?
## Quellen
- Foliensatz 14 (Validierung), V. Vogel, TI BFH — Folien 1012
- Notizen: `../../L5_Notizen.md` (Abschnitt „Praxis: Kreuzvalidierung")