Files
cas-pml/SL/aufgaben/workshop3
..
2026-05-28 12:15:41 +02:00
2026-05-28 12:15:41 +02:00
2026-05-28 10:31:27 +02:00
2026-05-28 10:37:23 +02:00
2026-05-28 10:31:27 +02:00
2026-05-28 12:15:41 +02:00

Workshop 3 Feature Engineering: Melbourne Housing Dataset

Aufbereitung des Melbourne Housing Datasets für Supervised Learning, gemäss den in Workshop 2 erarbeiteten und konsolidierten Empfehlungen.

  • Input: data/melb_data.csv (Rohdaten)
  • Output: data/melb_data_prep.csv (aufbereitet)
  • Pipeline: src/prepare.py

Die Empfehlungen stammen aus der EDA in Workshop 2. Dieses README ist die einzige Quelle der Wahrheit für die anzuwendenden Transformationen, das ursprüngliche WS_03_Empfehlungen.xlsx muss nicht geöffnet werden.

Aufgabenstellung

Das Dataset wurde in Workshop 2 mit Sicht auf Machine Learning untersucht. Die daraus abgeleiteten Empfehlungen (siehe unten) werden hier in einer deterministischen Pipeline CSV rein → CSV raus implementiert. Es findet keine neue Exploration statt, die Entscheidungen sind bereits getroffen.

Drehbuch (Transformationsliste)

1. Data Frame

# Transformation Details
1.1 Beobachtungen nach Bedingung entfernen Price >= 8000000; YearBuilt == 1196
1.2 Duplikate entfernen kein Bedarf
1.3 Fragwürdige Variablen entfernen Unnamed: 0, Suburb, Address, SellerG, Postcode, Bedroom2
1.4 NAs ersetzen kategoriale: Modalwert · numerische: Median

2. Kategoriale Variablen

# Transformation Details
2.1 Kardinalität reduzieren Regionname: * VictoriaVictoria · Method: SAS
2.2 Faktorisieren CouncilArea
2.3 Ordinal encodieren Type: h, u, t1, 2, 3
2.4 Binär encodieren kein Bedarf
2.5 Nominal encodieren (One-Hot) alle verbleibenden kategorialen Variablen ausser Date

3. Numerische Variablen

# Transformation Details
3.1 Logarithmieren (+ umbenennen) LandsizelogLandsize · BuildingArealogBuildingArea
3.2 Binär umcodieren kein Bedarf

4. Andere Tätigkeiten

# Transformation Details
4.1 Konstruktion Datemonth, year, day_of_week; danach Date droppen
4.2 Variablennamen bereinigen unerwünschte Zeichen → _
4.3 Standardisieren kein Bedarf
4.4 Speichern als melb_data_prep.csv

Reihenfolge — wichtig

Die Schritte sind nicht beliebig vertauschbar. Insbesondere:

  • 1.1 vor 1.4: erst Ausreisser/fehlerhafte Zeilen raus, dann NAs füllen (sonst fliessen Schrottwerte in Median/Modalwert ein).
  • 2.1 vor 2.5: erst Kardinalität reduzieren, dann One-Hot (sonst entstehen Dummy-Spalten für Levels, die man gerade zusammenlegen will).
  • 2.5 nach allen anderen kategorialen Schritten: One-Hot greift alle übrigen object-Spalten ab — CouncilArea und Type sind dann schon numerisch und werden korrekt übersprungen.
  • 4.1 vor 2.5 ODER Date explizit ausnehmen: Date ist object und würde sonst von One-Hot zerlegt. Lösung: Date beim One-Hot ignorieren und erst in 4.1 zu month/year/day_of_week zerlegen.

Projektstruktur

workshop3
├── data/
│   ├── melb_data.csv        # Rohdaten (Input)
│   └── melb_data_prep.csv   # aufbereitet (Output, generiert)
├── src/
│   └── prepare.py           # Pipeline
├── devenv.nix
└── README.md

Ausführen

python src/prepare.py

Offene Punkte / Selbstcheck

  • YearBuilt == 1196 verifizieren (vermutlich Tippfehler für 1996)
  • NA-Spalten prüfen -> sind NAs in der Target-Variable Price? (Falls ja: Zeilen entfernen statt Median einsetzen.)
  • Standardisieren bleibt hier aus -> relevant erst beim Training, und modellabhängig (Bäume brauchen es nicht).