Project ini dibuat untuk mensimulasikan Full Stack Data Science dan AI pada domain Industri telekomunikasi, mulai dari:
- Membangun database, Data Warehouse dan Proses ETL
- Churn Prediction and Analysis:
- Exploratory Data Analysis
- Data Preprocessing & Feature Engineering
- Machine Learning (XGBoost) + Hyperparameter tuning using Bayesian Search Optimization
- Explainable AI (SHAP)
- Otomatisasi ETL dan MLOps
- Pembuatan API untuk Model Inference yang di lengkapi dengan:
- Input Validation,
- API Key dan Rate Limit untuk keamanan dan menjaga performa server
- Caching untuk mempercepat proses prediksi.
- Web App:
- Dashboard dan AI Agent untuk Otomatisasi Pembuatan Chart dan Insight dengan LLM/Generative AI
- Prediksi Churn berdasarkan input manual dan file CSV
- AI Chatbot dengan RAG untuk memberikan informasi paket internet dan harganya.
- Model Deployment (Optional): Model yang telah selesai di training di simpan ke Google Cloud Storage, kemudian Deploy API dan Web App ke Google Cloud Run menggunakan Docker.
Demo aplikasi dan Penjelasannya dapat di akses atau klik pada tautaan berikut: Demo Aplikasi Data Science/AI
| Bagian | Deskripsi | Tech Stack / Tools |
|---|---|---|
| Database Design (RDBMS) | - Mendesain schema database Telco (customer, contract and internet service, transaction) - Membuat view churn dengan aturan: pelanggan dianggap churn jika tidak melakukan pembayaran selama ≥ 2 bulan |
Docker, PostgreSQL |
| ETL Pipeline | - Extract data dari PostgreSQL - Transform: join tabel, cleaning, data quality check, pengayaan fitur (tenure, payment delay, service type) - Load ke BigQuery sebagai Data Warehouse - Dirancang modular & reusable |
Python, pandas, BigQuery, Postgres |
| Data Warehouse | - Mengintegrasikan dataset Kaggle dengan data hasil ETL PostgreSQL - Membuat data mart atau tabel untuk keperluan ML & dashboard analitik |
BigQuery |
| Orkestrasi (Otomatisasi & Penjadwalan) | - ETL dijalankan otomatis setiap 3 bulan - Setelah ETL selesai, sistem otomatis melakukan: → Preprocessing → Training machine learning model + Hyperparameter tuning → Evaluasi dan promosikan model ke Production (jika recall >= 0.8 dan F1-Score>=0.6) - Menjalankan pipeline ML end-to-end secara otomatis |
Airflow, Bash, Python, Redis (CeleryExecutor) |
| EDA & Machine Learning (Jupyter Notebook) | - Analisis churn: distribusi, service usage, contract terms, billing patterns, tenure, etc. - Preprocessing pipeline: cleaning, encoding, scaling, feature engineering. - Model training menggunakan XGBoost - Hyperparameter Tuning: Bayesian Optimization + Grid Search - Evaluasi model: precision, recall, F1, Custom Metric - Explainable AI: SHAP, Permutation Feature Importance |
Python, scikit-learn, XGBoost, SHAP, pandas, matplotlib, seaborn, plotly, scipy, numy, statsmodels |
| MLOps | - Script otomatis untuk preprocessing, training, tuning, evaluasi - ML model tracking: metrics, parameters, artifacts - Model registry (staging → production) - Automatic promotion jika model baru lebih baik - Monitoring & reproducibility |
MLflow, Airflow, Docker, Scikit-learn, SHAP, Python, XGBoost |
| Model Serving/API Development | - FastAPI untuk model inference - Mendukung prediksi: single input & batch CSV - Caching untuk response lebih cepat - API key untuk keamanan - Rate limiting untuk membatasi penggunaan - Logging request & error handling |
FastAPI, Uvicorn, Redis |
| Web App | - Dashboard analitik churn, layanan, kontrak, billing, tenure - Halaman Churn Prediction (manual input & CSV via API) - AI Chatbot untuk informasi paket internet, harga, rekomendasi layanan |
Streamlit, Plotly, FastAPI |
| GenAI Integration (AI Agent) | - Menampilkan chart otomatis, tabel, dan insight menggunakan Gemini LLM - Menghasilkan analisis dataset secara otomatis tanpa query manual - Membantu interpretasi data & anomaly explanation |
Gemini API (Generative AI), Python |
| AI Chatbot with RAG | - Knowledge base chatbot disimpan di ChromaDB - Menggunakan embedding untuk pencarian dokumen - Chatbot memberi jawaban yang relevan berdasarkan konteks layanan Telco - Mendukung history & memory |
ChromaDB, LLM with Gemini |
Semua analisis data & model machine learning untuk proyek ini tersedia di folder notebooks/.
Namun, untuk pengalaman interaktif dan visualisasi penuh, saya merekomendasikan untuk membuka notebook di Kaggle:
🔗 Customer Churn Prediction & Analysis Notebook
- Notebook sudah didesain dengan HTML & CSS agar lebih menarik dan interaktif.
- Semua chart, tabel, dan insight bisa dilihat secara lengkap.
- Mendukung scrolling interaktif untuk eksplorasi data dan model.
- Mudah dijalankan kembali jika ingin bereksperimen atau mengubah parameter model.
- Jika membuka di GitHub, notebook akan terlihat plain karena styling HTML/CSS tidak sepenuhnya tampil.
- Untuk pengalaman terbaik, buka di Kaggle agar dashboard, visualisasi interaktif, dan layout rapi bisa dinikmati.
Ikuti langkah berikut untuk menjalankan proyek Full Stack Data Science & AI Telco menggunakan Docker.
git clone https://github.com/username/nama-repo.git
cd nama-repoUntuk menjalakan scripts awal dalam pembuatan tabel atau dataset di BigQuery dan juga jupyter notebook, jalankanlah perintah berikut:
pip install -r requirements.txt
catatan: File requirements.txt berada pada root folder dan folder notebooks.
Pastikan Anda sudah menginstall:
- Docker Engine atau Docker Desktop
Duplikat file .env contoh:
cp .env.example .envLalu isi variabel environment sesuai kebutuhan.
Anda harus mendownload Service Account JSON Key untuk akses BigQuery & GCP.
- Masuk ke Google Cloud Console
- IAM & Admin → Service Accounts
- Create Key → JSON
- Simpan file, contoh:
gcp-service-key.jsonke folder root proyek Anda, folderdbdanweb_app - Masukkan path di
.envyang ada root folder:
GCP_CREDENTIALS=/opt/project/gcp_service_key.json
Digunakan untuk notifikasi otomatis (opsional).
- Gmail → Manage Account
- Security → App Passwords
- Generate 1 password
- Masukkan:
EMAIL_HOST=smtp.gmail.com
EMAIL_PORT=587
EMAIL_USER=youremail@gmail.com
EMAIL_PASS=your_app_password
Untuk fitur Generative AI (chart otomatis, insight, chatbot).
Dapatkan dari: https://aistudio.google.com/app/apikey
Isi variabel di .env yang ada di folder web_app:
GEMINI_API_KEY=your_gemini_key
Sesuaikan variabel lain sesuai kebutuhan Anda.
Sebelum menjalankan docker compose, jalankanlah script berikut untuk membuat db dan table di BigQuery.
Copy file gcp_service_key.json ke folder db dan jalankan script create_db_bigquery.py.
Berikut versi yang sudah dirapikan, lebih rapi, dan mudah dibaca untuk bagian menjalankan backend di README:
Proyek ini memiliki beberapa layanan backend utama: Airflow, MLflow, PostgreSQL, FastAPI, dll.
-
Jalankan Docker Backend
docker compose -f docker-compose.yml up -d --build
-
Akses Airflow
Buka browser:
http://localhost:8080- Masukkan username & password sesuai dengan file
.env. - Cobalah untuk trigger ETL, training ML model, dan promosi model ke Production.
- Masukkan username & password sesuai dengan file
-
Akses MLflow
Buka browser:
http://localhost:5000-
Masukkan username & password sesuai
.env. -
Anda dapat:
- Melihat hasil evaluasi model
- Memeriksa model yang sudah yang sudah di training dan apakah model dipromosikan ke Production
-
-
Setup API Key untuk FastAPI
-
Masuk ke folder
fastapi_app/authdan Jalankan script:python create_key.py
-
Salin API key yang dihasilkan ke file
.envdi folderweb_app:API_KEY_FASTAPI=your_generated_key
-
Setelah ini, API FastAPI siap digunakan untuk inference dan batch prediction.
Frontend (Streamlit / WebApp) berada pada file terpisah, sehingga anda harus menjalankan docker compose dengan nama file docker-compose-frontend.yml.:
docker compose -f docker-compose-frontend.yml up -d --buildBukalah link streamlit:
http://localhost:8501



