← Back to projects

Customer Churn Prediction

Zusammenfassung

Ziel
Vorhersage von Kundenabwanderung mit vollständigem ML-Workflow und API-Deployment
Daten
Telecom Customer Churn Dataset (WA_Fn-UseC_-Telco-Customer-Churn.csv) mit 7043 Kunden. Standard train/test split (80/20) mit Stratifizierung für Klassenbalance. Features umfassen Tenure, MonthlyCharges, TotalCharges, Contract-Typ, Payment-Methode, Internet-Service und weitere kategorische Variablen.
Modell(e)
XGBoost, Random Forest, Gradient Boosting
Kernmetriken
Recall: 0.711, F1-Score: 0.624, ROC AUC: 0.842
Werkzeuge
Python, scikit-learn, XGBoost, FastAPI, pandas, pytest

Problem

Vorhersage von Kundenabwanderung in der Telekommunikationsbranche mit einem vollständigen Machine-Learning-Workflow von Datenbereinigung bis zur API-Bereitstellung.

Kontext

Kundenabwanderung ist ein kritisches Geschäftsproblem, das erhebliche Umsatzverluste verursachen kann. Die Identifizierung von Kunden mit hohem Abwanderungsrisiko ermöglicht gezielte Retention-Maßnahmen. Das Projekt umfasst den gesamten Data-Science-Workflow von der Datenexploration über Feature-Engineering bis hin zur Modelloptimierung und Deployment als REST-API.

Modellierungsansatz

Ich habe einen vollständigen Machine-Learning-Pipeline entwickelt, der mehrere Algorithmen (XGBoost, Random Forest, Gradient Boosting) vergleicht und automatisch Hyperparameter optimiert. Der Workflow umfasst intelligente Datenbereinigung (z.B. fehlende TotalCharges basierend auf Tenure), Feature-Engineering (z.B. MonthlyToTotalRatio), SMOTE für Klassenungleichgewicht und umfassende Validierung. Zusätzlich implementierte ich eine Monte-Carlo-Simulations-Engine für Geschäftsszenarien wie Preisempfindlichkeitsanalysen.

Technisches Highlight

Das wichtigste technische Merkmal ist die vollständige End-to-End-Pipeline mit FastAPI-Deployment für produktionsreife Nutzung. Die Simulations-Engine unterstützt verschiedene Verteilungen (Normal, Uniform, Choice, etc.) und ermöglicht parallele Verarbeitung für große Simulationen. Die automatische Hyperparameter-Optimierung verwendet Bayesian Search für effiziente Suche im Parameterraum. Das Projekt demonstriert nicht nur Modellentwicklung, sondern auch Software-Engineering-Praktiken mit Tests, Konfigurationsmanagement und API-Design.

Ergebnis

Das finale Modell erreicht einen Recall von 0.711 für die Churn-Klasse, einen F1-Score von 0.624 und eine ROC AUC von 0.842 auf dem Test-Set. Die vollständige Pipeline ist als REST-API verfügbar und ermöglicht sowohl Einzel- als auch Batch-Vorhersagen. Die Simulationsfunktionen ermöglichen Geschäftsanalysen wie Revenue-Impact-Berechnungen und Szenariovergleiche für Pricing-Strategien.

Zuverlässigkeit

Daten

Telecom Customer Churn Dataset (WA_Fn-UseC_-Telco-Customer-Churn.csv) mit 7043 Kunden. Standard train/test split (80/20) mit Stratifizierung für Klassenbalance. Features umfassen Tenure, MonthlyCharges, TotalCharges, Contract-Typ, Payment-Methode, Internet-Service und weitere kategorische Variablen.

Baselines

Logistic Regression Baseline erreicht Recall ~0.50, F1-Score ~0.40. Naive Baseline (immer 'No Churn') erreicht hohe Accuracy aber 0% Recall für Churn. Random Forest ohne Optimierung erreicht Recall ~0.65, F1-Score ~0.55.

Fehlermodi

Modell kann bei neuen Kundenmustern, die nicht im Training gesehen wurden, Probleme haben. Performance kann bei extremen Feature-Kombinationen (z.B. sehr hohe MonthlyCharges mit Month-to-month Contract) variieren. SMOTE kann bei sehr kleinen Klassen zu Overfitting führen. Annahme: Datenverteilung bleibt relativ stabil über die Zeit.

Reproduzierbarkeit

Python 3.9+, scikit-learn, XGBoost, FastAPI. Vollständiger Code, Konfigurationsdateien (config.yaml) und Requirements auf GitHub. Datenverarbeitungsschritte dokumentiert. Random Seeds für Reproduzierbarkeit festgelegt. Unit Tests für kritische Komponenten vorhanden.