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

2.3 KiB
Raw Blame History

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
  • stdStabilitä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")