2.3 KiB
2.3 KiB
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_scoreeinsetzen
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,Xundyzu ü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
- Daten laden (
X,y). - Alle bekannten Klassifikatoren mit Default-Parametern in einem
dictsammeln. - Pro Klassifikator
cross_val_score(clf, X, y, cv=kfold)rechnen. meanundstdje Klassifikator gegenüberstellen (nachstdsortieren).- 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 10–12
- Notizen:
../../L5_Notizen.md(Abschnitt „Praxis: Kreuzvalidierung")