Vahdettin Karatas
Applied ML engineer — tabular models, APIs, inference deployment
  • Location:
    Prague, Czech Republic
Technical focus
  • Tabular ML pipelines
  • Train/serve parity with sklearn + joblib
  • FastAPI services and OpenAPI contracts
  • Docker inference packaging
  • Tests around preprocessing and endpoints
Portfolio artifact — training vs inference

Customer churn scoring API

End-to-end tabular ML: stratified split, model comparison (ROC-AUC winner), F1-tuned threshold export, single joblib pipeline for serving, plus FastAPI inference and pytest coverage.

Portfolio narrative only. Full scorer UI: Open scoring demo (API) on churn-api.

Python
scikit-learn
FastAPI
Docker

Limitations & scope

  • Demonstration training uses the public Telco Customer Churn dataset; useful scores on your accounts require retraining and validation on your own labeled data.
  • The HTTP API exposes POST /predict with one JSON record per request. There is no server-side CSV upload or batch queue in this codebase.
  • Risk bands (high / medium / low) use fixed probability cutoffs for UI grouping; the binary churn label uses a threshold read from training outputs (see metrics).
  • The published Docker image is inference-only: you mount a trained joblib artifact plus metric files from the training pipeline (see README).
  • Risk bands do not encode business cost matrices or uplift models.

Hands-on demo & depth

The full interactive page (jump nav, hold-out metrics when available, key findings, chart placeholder, predict form) is served at Open scoring demo (API) — same UI kit as the legacy Vercel bundle, without duplicating it here.

GitHub has training code, notebooks, and Docker layout.

Customer churn scoring

Sklearn pipeline · FastAPI · mounted artifact

© Vahdettin Karatas. All rights reserved.