Instructions to use Minee12/ds-salary-gradient-boosting with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Scikit-learn
How to use Minee12/ds-salary-gradient-boosting with Scikit-learn:
from huggingface_hub import hf_hub_download import joblib model = joblib.load( hf_hub_download("Minee12/ds-salary-gradient-boosting", "sklearn_model.joblib") ) # only load pickle files from sources you trust # read more about it here https://skops.readthedocs.io/en/stable/persistence.html - Notebooks
- Google Colab
- Kaggle
Prediksi Gaji Data Science β Gradient Boosting Regressor
Deskripsi singkat
Model regresi Gradient Boosting (scikit-learn) yang memprediksi gaji tahunan (USD) seorang profesional data berdasarkan level pengalaman, jabatan, lokasi, ukuran perusahaan, dan pola kerja. Dibuat untuk Ujian Akhir Semester MN1135 Business Data Science (Jasmine Liu, NIM 2025121076), sebagai alat bantu HR untuk menyusun rentang penawaran gaji.
Dataset dan sumber
Data Science Salaries 2023 oleh Arnab Chaki, Kaggle: https://www.kaggle.com/datasets/arnabchaki/data-science-salaries-2023 (lisensi dataset di Kaggle: DbCL-1.0). Setelah 1.171 baris duplikat dibuang tersisa 2.584 baris; dibagi 80:20 (random_state=42) menjadi 2.067 data latih dan 517 data uji.
Jenis tugas
Regresi β target: salary_in_usd (gaji tahunan dalam USD, angka kontinu).
Fitur input
| Fitur | Tipe | Keterangan |
|---|---|---|
work_year |
int | Tahun gaji dilaporkan (2020β2023) |
experience_level |
str | EN = Entry, MI = Mid, SE = Senior, EX = Executive |
employment_type |
str | FT = Full-time, PT = Part-time, CT = Kontrak, FL = Freelance |
job_title |
str | Jabatan (93 nilai, mis. Data Scientist, Data Engineer) |
employee_residence |
str | Negara tempat tinggal karyawan, kode ISO 3166 (78 nilai, mis. US) |
remote_ratio |
int | Persentase kerja jarak jauh: [0, 50, 100] |
company_location |
str | Negara lokasi perusahaan, kode ISO 3166 (72 nilai) |
company_size |
str | S = kecil, M = menengah, L = besar |
Kolom salary dan salary_currency tidak dipakai (redundan dengan target). Fitur kategorikal di-one-hot encode (250 kolom akhir); urutan kolom tersimpan di model_columns.json.
Metrik performa akhir (data uji, 517 baris)
| Metrik | Nilai |
|---|---|
| RMSE (metrik utama) | USD 52,027 |
| MAE | USD 39,213 |
| MSE | 2,706,840,864 |
| RΒ² | 0.3812 |
Pembanding: menebak rata-rata gaji menghasilkan RMSE USD 66,142 dan RΒ² β 0. Parameter terbaik hasil Randomized + Grid Search CV (5-fold, scoring RMSE):
learning_rate: 0.1062loss: hubermax_depth: 4max_features: 0.2min_samples_leaf: 13min_samples_split: 7n_estimators: 287subsample: 0.9018
Cara memuat dan memakai model
# pip install scikit-learn pandas joblib huggingface_hub
import importlib.util
from huggingface_hub import hf_hub_download
REPO_ID = "jasmine_liu/ds-salary-gradient-boosting"
# 1) unduh dan impor helper inferensi dari repository
spec = importlib.util.spec_from_file_location("inference", hf_hub_download(REPO_ID, "inference.py"))
inference = importlib.util.module_from_spec(spec); spec.loader.exec_module(inference)
# 2) muat model, scaler, daftar kolom, dan konfigurasi (memakai joblib.load di dalamnya)
bundel = inference.muat_model(REPO_ID)
# 3) prediksi satu atau beberapa baris
contoh = [{"work_year": 2023, "experience_level": "SE", "employment_type": "FT",
"job_title": "Data Scientist", "employee_residence": "US", "remote_ratio": 100,
"company_location": "US", "company_size": "M"}]
print(inference.prediksi_gaji(contoh, bundel)) # gaji tahunan dalam USD
Nilai kategori harus salah satu dari daftar pada preprocessing_config.json (kategori_valid); nilai asing akan memunculkan galat yang jelas.
Keterbatasan
- Daya jelaskan sedang: RΒ² β 0.3812, artinya sebagian besar variasi gaji tidak terjelaskan. Bonus, ekuitas, keahlian spesifik, industri, dan lama pengalaman riil tidak ada di data.
- Rata-rata kesalahan Β± USD 39,213: gunakan sebagai rentang (prediksi Β± MAE), bukan angka final. Akurasi lebih rendah untuk level Executive dan Entry (data sedikit).
- Data 2020β2023, 2.584 baris: pola gaji berubah dari waktu ke waktu; model perlu dilatih ulang. Kategori yang jarang/tidak pernah muncul saat pelatihan tidak dapat diprediksi andal.
- Bukan hubungan sebab-akibat dan dapat mereproduksi kesenjangan gaji antar-negara yang ada di data; jangan dijadikan satu-satunya dasar keputusan terhadap individu.
- Model dilatih dengan
scikit-learnversi 1.6.1; gunakan versi yang sama (lihatrequirements.txt).
Berkas
model_gb_tuned.joblib, scaler.joblib, model_columns.json, preprocessing_config.json, inference.py, contoh_input.json, requirements.txt.
- Downloads last month
- -