Proyek ini adalah aplikasi machine learning untuk memprediksi kemungkinan karyawan resign berdasarkan data HR. Model yang digunakan adalah Decision Tree dan Random Forest, dilatih menggunakan dataset Dataset_HR.csv. Aplikasi di-deploy menggunakan FastAPI sebagai backend API dan Gradio sebagai frontend UI. Selain itu, mendukung deployment dengan Docker untuk kemudahan skalabilitas.
- Fitur Utama:
- Prediksi resign karyawan berdasarkan input:
tingkat kepuasan,lama bekerja,kecelakaan kerja,gaji, danjam kerja per bulan. - Model: Random Forest (default) atau Decision Tree.
- API Endpoint:
/predictuntuk prediksi via JSON. - UI: Gradio di
/gradiountuk input interaktif.
- Prediksi resign karyawan berdasarkan input:
- Dataset: Berdasarkan
Dataset_HR.csv(tidak disertakan di repo ini; asumsikan Anda punya). - Bahasa: Python 3.10+.
-
Python 3.10 atau lebih tinggi.
-
Dependensi (lihat
requirements.txt):fastapi uvicorn gradio joblib pandas numpy scikit-learn -
Docker (untuk deployment containerized).
-
Clone repository (jika ada repo; atau buat folder project).
-
Instal dependensi:
pip install -r requirements.txt
-
Pastikan folder
models/berisi:random_forest_model.joblibscaler.joblib(Dihasilkan daritrain_model.py).
-
Jalankan training model (opsional, jika belum ada model):
python train_model.py
-
Jalankan aplikasi:
uvicorn app:app --reload
- Akses API:
http://localhost:8000/docs(Swagger UI untuk tes endpoint/predict). - Akses UI:
http://localhost:8000/gradio(Gradio interface).
- Akses API:
Kirim POST request ke /predict dengan JSON body:
{
"tingkat_kepuasan": 0.5,
"lama_bekerja": 3,
"kecelakaan_kerja": 0,
"gaji": 1,
"jam_kerja_perbulan": 200
}Respons: {"prediction": "ya"} atau "tidak".
- Buka
http://localhost:8000/gradio. - Masukkan nilai via slider/number/radio/dropdown.
- Klik "Submit" untuk lihat prediksi.
-
Build image:
docker build -t prediksi-resign-app . -
Run container:
docker run -p 8000:8000 prediksi-resign-app
-
Akses seperti lokal:
http://localhost:8000/gradio.
Gunakan Docker Compose jika perlu (lihat docker-compose.yml jika dibuat).
project/
├── app.py # FastAPI + Gradio app
├── train_model.py # Script training model
├── models/ # Folder model dan scaler
│ ├── random_forest_model.joblib
│ └── scaler.joblib
├── requirements.txt # Dependensi
├── Dockerfile # Untuk Docker build
└── README.md # Dokumentasi ini
- Model Alternatif: Ganti ke Decision Tree di
app.pyjika diinginkan (gunakanpickleuntuk load.pkl). - Error Handling: Pastikan input valid; app punya try-except dasar.
- Improvement: Tambah autentikasi untuk production, atau integrasi database untuk data real-time.
- Kontribusi: Fork repo dan submit PR jika ada perbaikan.
Jika ada pertanyaan, hubungi pengguna repositori ini via email ke hendriyantofendy07@gmail.com. Terima kasih!