File size: 2,801 Bytes
8b278c3 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 | ---
license: mit
tags:
- tabular-classification
- employee-attrition
- human-resources
- scikit-learn
---
# Employee Attrition Intelligence
Model klasifikasi untuk memperkirakan apakah seorang karyawan termasuk kelas bertahan (`left=0`) atau keluar (`left=1`) berdasarkan fitur HR yang tersedia.
## Informasi proyek
- **Pembuat:** Marcel Ong
- **NIM:** 2025121043
- **Mata kuliah:** MN1135 β Business Data Science
- **Jenis tugas:** Binary classification
- **Algoritma:** Random Forest
- **Dataset:** HR Analytics / HR_comma_sep.csv
- **Target:** `left` (0 = bertahan, 1 = keluar)
## Dataset dan sumber
Dataset berisi atribut pekerjaan karyawan, seperti kepuasan, evaluasi, jumlah proyek, jam kerja bulanan, masa kerja, kecelakaan kerja, promosi, departemen, dan tingkat gaji. Sumber dataset: [Kaggle HR Analytics](https://www.kaggle.com/ludobenistant/hr-analytics/data).
## Fitur input
Model mengharapkan 17 fitur numerik yang sudah melalui encoding sesuai preprocessing saat pelatihan. Urutan kolom dijaga menggunakan `feature_names.joblib`.
- `satisfaction_level` β `float64`
- `last_evaluation` β `float64`
- `number_project` β `int64`
- `average_montly_hours` β `int64`
- `time_spend_company` β `int64`
- `Work_accident` β `int64`
- `promotion_last_5years` β `int64`
- `salary_encoded` β `int64`
- `sales_RandD` β `int64`
- `sales_accounting` β `int64`
- `sales_hr` β `int64`
- `sales_management` β `int64`
- `sales_marketing` β `int64`
- `sales_product_mng` β `int64`
- `sales_sales` β `int64`
- `sales_support` β `int64`
- `sales_technical` β `int64`
## Performa pada data uji
- Accuracy: 0.9858
- Precision kelas keluar: 0.9892
- Recall kelas keluar: 0.9246
- F1-score kelas keluar: 0.9558
## Berkas repository
- `model_final.joblib` β model hasil tuning
- `scaler.joblib` β objek StandardScaler dari tahap UTS
- `feature_names.joblib` β urutan fitur hasil encoding
- `metadata.json` β metadata model dan preprocessing
## Cara memuat model
```python
import joblib
model = joblib.load("model_final.joblib")
scaler = joblib.load("scaler.joblib")
feature_names = joblib.load("feature_names.joblib")
```
Siapkan satu baris data yang sudah di-encoding dengan kolom sesuai `feature_names`. Jika `uses_scaling` bernilai `True`, standardisasi kolom pada `scale_columns` menggunakan objek scaler yang disimpan sebelum memanggil `model.predict()`.
## Keterbatasan
Model hanya mempelajari pola dari dataset historis yang digunakan. Prediksi bukan kepastian bahwa seorang karyawan akan keluar. Data tidak mencakup seluruh faktor personal dan organisasi, serta dapat mengandung bias atau perubahan pola dari waktu ke waktu. Hasil model hanya boleh menjadi sinyal awal untuk peninjauan manusia oleh HR, bukan dasar tunggal keputusan terhadap karyawan.
|