Machine learning adalah bagian Course ini dengan permukaan terluas: ratusan algoritma, puluhan metrik, dan ekosistem pustaka yang terus bertambah. Kabar baiknya, hampir semuanya dipusatkan pada satu pustaka — scikit-learn — yang dokumentasinya tertata mengikuti alur belajar yang justru sama dengan alur Course ini. Pada chapter ini kita memetakan jalur belajar lewat dokumentasi scikit-learn, lalu melengkapi peta tersebut dengan pustaka pendamping untuk data tak seimbang, model bertingkat, penjelasan model, pencatatan eksperimen, dan penyajian model sebagai layanan.
Jalur Belajar di Dokumentasi scikit-learn #
Dokumentasi scikit-learn paling mudah dijelajahi bila kita membacanya sebagai empat tahap: dasar, supervised, evaluasi, lalu lanjutan. Tahap dasar menjawab pertanyaan bentuk data dan pemisahan latih-uji. Tahap supervised memetakan keluarga model untuk prediksi. Tahap evaluasi mengajarkan cara mengukur dan membandingkan secara jujur. Tahap lanjutan membuka topik clustering hingga jaringan saraf sederhana.
| Tahap | Halaman rujukan | Chapter Course terkait |
|---|---|---|
| Dasar | FAQ , toy datasets , train_test_split | Pengenalan machine learning , pemisahan dataset |
| Supervised | Preprocessing , LinearRegression , RandomForestClassifier | Encoding data kategorikal , regresi linear , random forest |
| Evaluasi | Cross-validation , model evaluation , confusion_matrix | Confusion matrix , cross-validation |
| Lanjutan | Clustering , MLPClassifier , permutation_importance | K-Means clustering , pengantar deep learning , interpretasi feature importance |
Dua halaman pada tabel itu layak dibaca paling awal. FAQ
menjawab pertanyaan yang hampir semua pemula tanyakan — dari memilih algoritma sampai mengapa keluaran train_test_split berbeda tiap kali dijalankan. Laman toy datasets
memperkenalkan dataset latihan bawaan yang dipakai banyak contoh resmi, sehingga kita bisa mencocokkan hasil contoh dengan percobaan sendiri.
Ekosistem di Sekitar scikit-learn #
Seiring perjalanan, kita akan menemui kebutuhan yang jawabannya ada di luar scikit-learn. Pustaka berikut melengkapi masing-masing celah tersebut:
| Pustaka | Mengisi kebutuhan | Chapter Course terkait |
|---|---|---|
| imbalanced-learn dengan SMOTE | Data label yang timpang (misalnya penipuan transaksi yang jarang) | Imbalanced learning |
| XGBoost | Gradient boosting kelas industri untuk kompetisi dan produksi | Gradient boosting |
| SHAP | Menjelaskan kontribusi tiap fitur pada prediksi satu data | Explainable AI |
| MLflow | Mencatat eksperimen dan menyimpan model secara tertib | Eksperimen dan pencatatan , menyimpan model |
| FastAPI | Menyajikan model sebagai layanan yang dipanggil aplikasi lain | Pengenalan API model |
| Jupyter dan JupyterLab | Lingkungan notebook tempat semua eksperimen berlangsung | Pengenalan Jupyter Notebook |
Ketiga pustaka pertama memperluas kemampuan pemodelan; MLflow dan FastAPI mengurus sisi pengelolaan dan penyajian; Jupyter adalah rumah tempat semuanya dikerjakan. Menyadari pembagian peran ini membantu kita mencari rujukan yang tepat: masalah akurasi model jarang selesai dengan MLflow, dan masalah penyajian model jarang selesai dengan SHAP.
Pola Enam Baris yang Menjadi Kebiasaan #
Hampir semua latihan machine learning di scikit-learn mengikuti satu pola yang sama: pisahkan data, latih model, ukur hasilnya. Mari kita jalankan pola tersebut pada data harga kopi dan jumlah pembeli — hubungan yang cukup rapat untuk menghasilkan model yang layak.
import numpy as np
from sklearn.linear_model import LinearRegression
from sklearn.model_selection import train_test_split
# Harga kopi (ribuan rupiah) dan jumlah gelas terjual per hari
X = np.array([[18], [20], [22], [24], [26], [28], [30], [32]])
y = np.array([150, 145, 130, 128, 110, 105, 90, 85])
X_latih, X_uji, y_latih, y_uji = train_test_split(
X, y, test_size=0.25, random_state=42
)
model = LinearRegression().fit(X_latih, y_latih)
print("Koefisien kemiringan :", round(float(model.coef_[0]), 3))
print("Intercept :", round(float(model.intercept_), 3))
print("Skor R^2 data uji :", round(float(model.score(X_uji, y_uji)), 3))Output yang Dihasilkan:
Koefisien kemiringan : -4.83
Intercept : 237.86
Skor R^2 data uji : 0.975Mari kita telaah baris-baris kode di atas:
- Baris 11-12 (
train_test_split(...)): dua puluh lima persen data disisihkan sebagai data uji. Parameterrandom_state=42membekukan pengacakan sehingga pembagian yang sama terulang setiap kali kode dijalankan — kebiasaan yang ditegaskan pada chapter pembagian data latihan dan pengujian . - Baris 13 (
LinearRegression().fit(...)): polabuat model → latih dengan fit()berlaku untuk hampir semua model scikit-learn, dari regresi sampai random forest; yang berubah hanya nama kelasnya. - Baris 15-17 (
model.coef_,model.intercept_,model.score(...)): koefisien -4,83 berarti tiap kenaikan harga seribu rupiah menyusutkan penjualan sekitar 4,8 gelas, dan skor R² 0,975 pada data uji menandakan garis lurus sudah menjelaskan hampir seluruh variasi data.
Rangkuman #
- Jelajahi dokumentasi scikit-learn sebagai empat tahap — dasar, supervised, evaluasi, lanjutan — yang sejajar dengan alur Course ini; mulai dari FAQ dan halaman toy datasets.
- Pustaka pendamping mengisi celah spesifik: imbalanced-learn untuk label timpang, XGBoost untuk boosting, SHAP untuk penjelasan, MLflow untuk eksperimen dan penyimpanan, FastAPI untuk layanan, Jupyter untuk lingkungan kerja.
- Pola
train_test_split→fit→scoreberlaku seragam di seluruh model scikit-learn; menguasai satu berarti menguasai pintu masuk semuanya.
Kita kini telah mengumpulkan seluruh rujukan belajar: dokumentasi resmi, dataset terbuka, dan referensi per topik dari matematika sampai machine learning. Satu hal terakhir yang akan menemani kita sesudah course selesai adalah kamus istilah — glosarium yang menyingkat seluruh perjalanan ini dalam satu halaman.