Membangun Machine Learning hingga Deploy Menggunakan Streamlit dan GitHub
Machine learning tidak berhenti ketika model berhasil dilatih. Dalam proyek nyata, model perlu dikemas menjadi sebuah aplikasi agar dapat digunakan oleh pengguna.
Pada tutorial ini kita akan membangun proyek machine learning klasifikasi kualitas jeruk mulai dari membaca dataset, memahami data, melakukan exploratory data analysis (EDA), preprocessing, training model, evaluasi, menyimpan model, membuat aplikasi menggunakan Streamlit, hingga melakukan deployment melalui GitHub.
Proyek ini menggunakan dataset jeruk_balance_500.csv dengan 500 data dan 8 kolom. Model yang digunakan adalah Logistic Regression yang dikombinasikan dengan StandardScaler, OneHotEncoder, OrdinalEncoder, ColumnTransformer, dan Pipeline.
Sumber Dataset: https://github.com/adiscreate/belajar_klasifikasi_jeruk
Alur keseluruhan proyek:
Dataset
↓
Load Data
↓
Data Understanding
↓
Exploratory Data Analysis
↓
Preprocessing
↓
Train-Test Split
↓
Model Training
↓
Evaluation
↓
Prediction
↓
Save Model
↓
Streamlit Application
↓
GitHub
↓
Streamlit Community Cloud
↓
Aplikasi Online
1. Gambaran Proyek
Kita akan membuat sistem yang dapat memprediksi kualitas jeruk berdasarkan beberapa karakteristik.
Input yang digunakan:
- Diameter
- Berat
- Tebal kulit
- Kadar gula
- Asal daerah
- Warna
- Musim panen
Output model:
BagusSedangJelek
Secara sederhana:
Karakteristik Jeruk
↓
Machine Learning
↓
Logistic Regression
↓
Prediksi Kualitas Jeruk
↓
Bagus / Sedang / Jelek
Model kemudian disimpan ke dalam file:
model_klasifikasi_jeruk.joblib
File tersebut akan digunakan oleh aplikasi Streamlit sehingga aplikasi tidak perlu melatih model kembali setiap kali dijalankan.
2. Struktur Project
Sebelum mulai, buat struktur project seperti berikut:
klasifikasi-jeruk/
│
├── data/
│ └── jeruk_balance_500.csv
│
├── notebook/
│ └── klasifikasi_jeruk.ipynb
│
├── model_klasifikasi_jeruk.joblib
│
├── app.py
│
├── requirements.txt
│
└── README.md
Untuk deployment sederhana, sebenarnya struktur dapat dibuat lebih sederhana:
klasifikasi-jeruk/
│
├── app.py
├── model_klasifikasi_jeruk.joblib
├── requirements.txt
├── README.md