Penguin species comparison

Machine Learning Workflow am Beispiel der Artenklassifikation

Pinguinarten-Klassifikation mit Random Forest und Decision Tree

Projektteam:

  • Bendix Greiner
  • Maurice Baumann
  • Pascal Grimm

Kontext und Rolle

🔬 Unsere Rolle

Forschungsgruppe als Anwender von Machine Learning

🎯 Projektziel

Automatische Klassifikation von Pinguinarten

📚 Projektumfang

Vermittlung eines ML-Projekts von der Problemdefinition über Modellierung bis zur Evaluation

📊 Datenbasis

Palmer Penguins Datensatz zur praktischen Veranschaulichung

Theoretischer Teil: Entscheidungsbaum

Decision Tree

Definition

ML-Modell mit Baumstruktur für Vorhersagen

Struktur

  • Knoten repräsentieren Entscheidungsregeln basierend auf Feature-Werten
  • Blätter stehen für Zielklassen (Kategorien)

✅ Vorteile

  • Einfach interpretierbar
  • Visualisierbar
  • Transparent
Flipper Length < 206.5mm?
Culmen Length < 43.35mm?
Adelie
Chinstrap
Gentoo

⚠️ Nachteile

  • Neigung zu Overfitting bei komplexen Daten
  • Erfordert Pruning zur Regularisierung

Theoretischer Teil: Random Forest

Definition

Ensemble-Verfahren aus vielen Entscheidungsbäumen

Ensemble-Prozess

🌲 Tree 1
🌲 Tree 2
🌲 Tree 3
🌲 ...
🌲 Tree n
Mehrheitsentscheidung
Finale Vorhersage

Prozess

  • Jeder Baum wird auf unterschiedlichen Datenstichproben trainiert (Bootstrapping)
  • Aggregation der Baumvorhersagen zu robusterer Gesamtausgabe

✅ Vorteile

  • Höhere Genauigkeit
  • Robustheit gegen Overfitting
  • Schätzung von Feature-Wichtigkeiten

CRISP-DM: Standardisierter ML-Prozess

Cross-Industry Standard Process for Data Mining

1

Business Understanding

Problemstellung und Ziele definieren

2

Data Understanding

Daten explorieren und verstehen

3

Data Preparation

Datenaufbereitung und Feature Engineering

4

Modeling

Modelle wählen und trainieren

5

Evaluation

Modelle bewerten mit Metriken

6

Deployment

Modell in Anwendung überführen

💡 Wichtig: CRISP-DM ist ein iterativer Prozess - Phasen werden oft wiederholt und verfeinert

Der Palmer Penguins Datensatz

344
Pinguine gesamt
3
Arten
3
Inseln

Artenverteilung

Adelie

152
44.2%

Gentoo

124
36.0%

Chinstrap

68
19.8%

Inseln

  • Biscoe
  • Dream
  • Torgersen

Features

  • culmen_length_mm
  • culmen_depth_mm
  • flipper_length_mm
  • body_mass_g
  • island
  • sex

Quelle: Palmer Station LTER, Antarctica

Datenvorbereitung

Data Preparation

1

Bereinigung

Missing Values entfernt

Datensatz von 344 → 333 Pinguine nach Bereinigung
2

Encoding

One-Hot-Encoding für kategoriale Variablen

  • island → island_Biscoe, island_Dream, island_Torgersen
  • sex → sex_Female, sex_Male
3

Feature-Transformation

Von 6 Features zu 10 Spalten nach Encoding

Vorher (6 Features)

  • culmen_length_mm
  • culmen_depth_mm
  • flipper_length_mm
  • body_mass_g
  • island
  • sex

Nachher (10 Spalten)

  • culmen_length_mm
  • culmen_depth_mm
  • flipper_length_mm
  • body_mass_g
  • island_Biscoe
  • island_Dream
  • island_Torgersen
  • sex_Female
  • sex_Male
4

Train-Test-Split

Aufteilung für valide Evaluation

80% Training (266) / 20% Test (67)

ML-Workflow: Vom Datensatz zum Modell

📊

1. Daten laden

mit preprocess_penguin_data()

X, y = preprocess_penguin_data(df)
✂️

2. Train-Test-Split

Aufteilung in Trainings- und Testdaten

X_train, X_test, y_train, y_test = train_test_split(...)
🤖

3. Modelltraining

Random Forest & Decision Tree

rf_model.fit(X_train, y_train) dt_model.fit(X_train, y_train)
🎯

4. Vorhersagen

Vorhersagen auf Testdaten

y_pred = model.predict(X_test)
📈

5. Evaluation

Accuracy, Precision, Recall, F1-Score

accuracy_score(y_test, y_pred)
📊

6. Visualisierung

Confusion Matrix

confusion_matrix(y_test, y_pred)

Ergebnisse und Erkenntnisse

🌲 Random Forest

~99%

Sehr hohe Klassifikationsgenauigkeit durch Ensemble-Methode

Precision: 0.99
Recall: 0.99
F1-Score: 0.99

🌳 Decision Tree

~95%

Einfachere Interpretierbarkeit bei leicht reduzierter Genauigkeit

Precision: 0.95
Recall: 0.94
F1-Score: 0.95

Confusion Matrix Beispiel

Predicted Adelie Predicted Chinstrap Predicted Gentoo
Actual Adelie 25 0 1
Actual Chinstrap 0 15 0
Actual Gentoo 0 0 26

💡 Fazit: Praxisbeispiel zeigt die Leistungsfähigkeit von ML-Algorithmen bei Klassifikationsaufgaben

Praktische Umsetzung: Streamlit-App

🚀 App-Features

🎯

Interaktive Vorhersage

Eingabe von Pinguinmaßen für Live-Klassifikation

📊

Datenvisualisierung

Scatter Plots und Verteilungen der Features

🤖

Modelltraining

Live-Training und Vergleich verschiedener Modelle

🎨

Confusion Matrix

Detaillierte Darstellung der Klassifikationsergebnisse

🛠️ Technologie-Stack

Python 3.12.4 Programmiersprache
scikit-learn Machine Learning Framework
pandas & numpy Datenverarbeitung
matplotlib Datenvisualisierung
Streamlit Web App Framework

Kritische Reflexion

Wichtige Überlegungen zum ML-Projekt

🔍

Datenqualität

Aspekt: Bedeutung von sauberer Vorverarbeitung

  • Missing Values können Modellleistung stark beeinflussen
  • Feature Engineering ist entscheidend für Erfolg
  • Datenvalidierung und -bereinigung sind zeitaufwändig aber kritisch
📊

Evaluation

Aspekt: Notwendigkeit der Interpretation der Modellleistung

  • Accuracy allein reicht nicht aus
  • Precision, Recall, F1-Score für vollständiges Bild
  • Cross-Validation für robuste Bewertung
⚠️

Grenzen

Aspekt: Generalisierbarkeit, Overfitting, Datenabhängigkeit

  • Modelle nur so gut wie die Trainingsdaten
  • Bias in Daten führt zu bias in Vorhersagen
  • Übertragbarkeit auf andere Kontexte fraglich

Best Practices

Aspekt: Reproduzierbarkeit, Dokumentation, transparente Methodik

  • Code-Dokumentation und Versionskontrolle
  • Reproduzierbare Experimente mit festen Seeds
  • Transparente Berichterstattung über Methodik

Zusammenfassung & Ausblick

📋 Zusammenfassung

🎯

ML ist leistungsfähig für komplexe Klassifikationsprobleme

🌳

Decision Trees und Random Forests bieten unterschiedliche Stärken

⚙️

Strukturierte Methodik (CRISP-DM) essentiell für erfolgreiche Projekte

🛠️

Open-Source-Tools erleichtern Zugang zu ML-Technologien

🔮 Ausblick

🧬

Weitere Anwendungen

Biologie und Ökologie: Artenerkennung, Biodiversitätsmonitoring, Habitatanalyse

Modelloptimierung

Hyperparameter-Tuning, Neural Networks, Deep Learning für Bilderkennung

🚀

Production Deployment

Cloud-basierte APIs, Echtzeit-Klassifikation, mobile Anwendungen

Vielen Dank für Ihre Aufmerksamkeit!

Fragen und Diskussion sind herzlich willkommen