Tugas Akhir Mata Kuliah Machine Learning — Binus University
Aplikasi berbasis web ini dikembangkan menggunakan Streamlit untuk memprediksi jumlah kalori yang terbakar selama aktivitas fisik. Proyek ini menerapkan siklus kerja (pipeline) Machine Learning yang lengkap mulai dari pemuatan dataset, Exploratory Data Analysis (EDA), Preprocessing data, pelatihan dan perbandingan model regresi secara real-time, hingga demo prediksi interaktif.
- URL Live Demo: https://calories-pred.streamlit.app/
- Jefferson Gautama Swanto (NIM:
2802474476) - Darrel Nicholas Tandean (NIM:
2802393081) - Timothy Alexandro Sibarani (NIM:
2802475024)
Dataset yang digunakan dalam proyek ini diambil dari Kaggle:
- Link Dataset: Kaggle - Calories Burnt Prediction
- Deskripsi Fitur:
User_ID: ID unik untuk setiap pengguna (dihapus saat preprocessing karena tidak relevan).Gender: Jenis kelamin pengguna (Male/Female).Age: Usia pengguna (tahun).Height: Tinggi badan (cm).Weight: Berat badan (kg).Duration: Durasi aktivitas fisik (menit).Heart_Rate: Rata-rata detak jantung selama beraktivitas (bpm).Body_Temp: Suhu tubuh setelah beraktivitas (°C).Calories(Target) : Jumlah kalori yang terbakar (kcal).
- Memuat dan menampilkan dataset mentah, tipe data, serta nilai statistik dasar.
- Visualisasi korelasi fitur menggunakan Heatmap untuk melihat hubungan antar variabel independen terhadap target (
Calories). - Visualisasi distribusi data individual (Histogram) dan visualisasi relasi dua fitur (Scatter Plot).
- Mengonversi fitur kategorik
Gendermenjadi numerik (0 untuk Male, 1 untuk Female). - Membagi dataset menjadi data latih (Training Set) dan data uji (Test Set) secara dinamis.
- Melakukan penskalaan fitur (Feature Scaling) menggunakan
StandardScaleratauMinMaxScaleruntuk meningkatkan stabilitas model regresi.
Melatih 3 model regresi secara bersamaan dengan parameter yang dapat disesuaikan langsung oleh pengguna melalui antarmuka web:
- Linear Regression (Parameter:
Fit Intercept). - Gradient Boosting Regressor (Parameter:
Learning Ratedann_estimators). - Random Forest Regressor (Parameter:
n_estimators).
- Membandingkan hasil prediksi ketiga model secara berdampingan menggunakan empat metrik regresi standar:
- MAE (Mean Absolute Error)
- MSE (Mean Squared Error)
- RMSE (Root Mean Squared Error)
- R² Score (Akurasi/Koefisien Determinasi)
- Menyorot secara otomatis model terbaik (berdasarkan nilai R² tertinggi) dengan simbol ⭐ dan tag (Terbaik).
- Menampilkan kontribusi fitur (Feature Importance) dari model terbaik untuk memberikan wawasan biologi/fisiologis.
- Formulir dinamis untuk menginput profil fisik (Usia, Tinggi, Berat, Gender) dan parameter latihan (Durasi, Detak Jantung, Suhu Tubuh).
- Menghitung dan menampilkan estimasi kalori terbakar secara instan menggunakan model terbaik yang telah terpilih secara otomatis.
- Memberikan status kategori intensitas latihan (Ringan, Sedang, Sangat Tinggi) dan tips kesehatan pendukung secara personal.
Aplikasi ini dapat dijalankan dengan dua cara alternatif: Secara Lokal (Python & Pip) atau Menggunakan Docker (Kontainer).
git clone https://github.com/Jepsodent/Final-Assignment---ML-Project.git
cd Final-Assignment---ML-Project- Windows:
python -m venv venv .\venv\Scripts\activate
- macOS/Linux:
python3 -m venv venv source venv/bin/activate
pip install -r requirements.txtstreamlit run app.pyPastikan Anda sudah menginstal Docker di komputer Anda.
Buka terminal di direktori proyek dan jalankan perintah untuk membangun image:
docker build -t calories-prediction-app .Jalankan kontainer dengan memetakan port 8501:
docker run -p 8501:8501 calories-prediction-appSetelah berjalan, buka browser dan akses aplikasi melalui alamat: http://localhost:8501.
Final-Assignment---ML-Project/
│
├── app.py # Halaman Utama (Beranda Aplikasi)
├── requirements.txt # Daftar pustaka/dependensi Python
├── Dockerfile # Konfigurasi containerisasi Docker
│
├── pages/ # Halaman Navigasi Aplikasi
│ ├── 1_Dataset.py # Menu Dataset Overview
│ ├── 2_EDA.py # Menu Analisis EDA Visual
│ ├── 3_Preprocessing.py # Menu Preprocessing
│ ├── 4_Training-Evaluation.py# Menu Pelatihan & Perbandingan Model (LR, GB, RF)
│ └── 6_Demo.py # Menu Demo Prediksi Interaktif
│
├── utils/ # Fungsi Utilitas Pendukung
│ ├── data_access.py # Logika Cache dan Pemuatan Data
│ └── sidebar.py # Navigasi Sidebar Kustom
│
└── images/ # Folder Media Gambar
└── sport.jpg # Gambar Pendukung Beranda