Projekt dotyczy klasyfikacji oceny kredytowej klienta na podstawie danych finansowych i behawioralnych. Zmienną docelową jest Credit_Score, która przyjmuje wartości:
PoorStandardGood
Projekt został rozpoczęty w notebooku eksploracyjnym, a następnie przeniesiony do struktury Kedro, aby preprocessing, trenowanie i ewaluacja mogły być uruchamiane jako powtarzalne pipeline'y.
Na obecnym etapie zaimplementowano:
- strukturę projektu Kedro,
- konfigurację Git LFS dla danych i modeli,
- pipeline przetwarzania danych
data_processing, - pipeline modelu bazowego
modeling, - pipeline AutoML
automl, - zapis metryk modelu bazowego,
- zapis metryk i leaderboardu modeli AutoGluon,
- wizualizację pipeline'ów przez
kedro viz.
Najważniejsze katalogi projektu:
conf/base/catalog.yml Konfiguracja zbiorów danych Kedro
data/01_raw/credit_score.csv Dane surowe
data/02_intermediate/ Dane po czyszczeniu
data/05_model_input/ Dane gotowe do modelowania
data/06_models/ Modele zapisane przez pipeline'y
data/08_reporting/ Metryki i raporty
src/credit_scoring/pipelines/ Kod pipeline'ów Kedro
Projekt ma trzy główne pipeline'y.
Pipeline odpowiada za przygotowanie danych:
credit_score_raw -> clean_credit_data -> credit_score_clean
credit_score_clean -> prepare_model_input -> model_input
W preprocessingu wykonywane są m.in.:
- usunięcie kolumn identyfikacyjnych,
- czyszczenie wartości numerycznych zapisanych jako tekst,
- obsługa wartości odstających,
- uzupełnianie braków na podstawie
Customer_ID, - kodowanie wybranych zmiennych kategorycznych,
- mapowanie
Credit_Scorena wartości liczbowe.
Pipeline trenuje model bazowy Random Forest:
model_input -> train_baseline_model -> baseline_model, metrics
Wyniki zapisywane są w:
data/08_reporting/metrics.json
Model bazowy zapisywany jest w:
data/06_models/baseline_random_forest.pkl
Pipeline trenuje modele AutoGluon:
model_input -> train_autogluon_model -> automl_metrics, automl_leaderboard
Wyniki zapisywane są w:
data/08_reporting/automl_metrics.json
data/08_reporting/automl_leaderboard.csv
Modele AutoGluon zapisywane są lokalnie w:
data/06_models/autogluon/
Folder z modelami AutoGluon może być bardzo duży, dlatego nie powinien być dodawany przypadkowo przez git add .. Jeżeli model ma zostać zapisany w repozytorium, należy zrobić to świadomie przez Git LFS.
Aktualnie zdecydowano o nie zapisywaniu go w rezypozytorium ze względu na duży rozmiar łączny (powyżej 3GB). Proces trenowania zajął 54 minuty.
python -m pip install -r requirements.txtProjekt używa Git LFS dla większych plików danych i modeli. Po sklonowaniu repozytorium należy wykonać:
git lfs install
git lfs pullUruchomienie wszystkich pipeline'ów:
kedro runUruchomienie samego preprocessingu:
kedro run --pipelines data_processingUruchomienie modelu bazowego:
kedro run --pipelines modelingUruchomienie AutoML:
kedro run --pipelines automlWizualizacja pipeline'ów:
kedro vizModel bazowy Random Forest zapisuje metryki do:
data/08_reporting/metrics.json
AutoGluon zapisuje podsumowanie najlepszego modelu oraz leaderboard 5-ciu modeli do:
data/08_reporting/automl_metrics.json
data/08_reporting/automl_leaderboard.csv
Kolejne etapy projektu:
- dodać MLflow do śledzenia eksperymentów,
- przygotować aplikację Streamlit do predykcji,
- dodać logowanie predykcji jako prosty monitoring,
- uzupełnić dokumentację architektury,
- dodać GitHub Actions jako element automatyzacji MLOps.