Lewati ke konten utama
C2

C2 · Machine Learning Engineering

Membangun model prediktif yang benar-benar bekerja di luar notebook: algoritma klasik yang diturunkan dan ditulis sendiri, validasi yang jujur, keputusan bisnis dari peluang, lalu pipeline, API, dan pemantauan, dengan AI sebagai rekan yang setiap klaimnya diuji.

Bagian dari jalur:
Mulai Modul 01

Daftar modul

  1. 01Peran ML engineer dan siklus MLGratis7 latihan
  2. 02Data, fitur, dan pemisahan yang jujurGratis7 latihan
  3. 03Regresi linear dan gradient descentCoding Studio7 latihan
  4. 04Regresi logistik dan klasifikasiCoding Studio7 latihan
  5. 05Evaluasi klasifikasi dan keputusanCoding Studio7 latihan
  6. 06Validasi silang dan bias–variansCoding Studio6 latihan
  7. 07RegularisasiCoding Studio7 latihan
  8. 08k-NN dan Naive BayesCoding Studio7 latihan
  9. 09Pohon keputusanCoding Studio7 latihan
  10. 10Bagging dan hutan acakCoding Studio7 latihan
  11. 11Gradient boostingCoding Studio7 latihan
  12. 12Belajar tanpa labelCoding Studio7 latihan
  13. 13Data tak seimbang, keadilan, dan interpretabilitasCoding Studio7 latihan
  14. 14Pipeline, reproduktibilitas, dan pelacakan eksperimenCoding Studio7 latihan
  15. 15Penyajian dan pemantauan modelCoding Studio7 latihan
  16. 16Proyek akhir: Model MakmurCoding Studio7 latihan

Modul 01–02 gratis; modul bergembok terbuka dengan Coding Studio. Lihat paket

Ada contoh atau latihan bertanda “Kerjakan di laptop”? Paket dan data C2 untuk menjalankannya di komputermu ada di panduan menjalankan kode di komputermu.

Tentang course ini

Membangun model prediktif yang benar-benar bekerja di luar notebook: algoritma klasik yang diturunkan dan ditulis sendiri, validasi yang jujur, keputusan bisnis dari peluang, lalu pipeline, API, dan pemantauan, dengan AI sebagai rekan yang setiap klaimnya diuji.

Course inti jalur Data & AI (titik keluar Data Scientist dan ML Engineer), course kedua jalur ini sesudah C1. Ditulis Oktober 2026; latihan Python di setiap modul diperiksa otomatis.


Posisi course

Kenapa course ini ada

Melatih model kini hanya butuh tiga baris scikit-learn, dan agen AI bisa menulis seluruh notebook dalam semenit. Kegagalan ML di dunia nyata hampir tidak pernah karena kurang algoritma; penyebabnya:

  • kebocoran data: fitur yang baru diketahui sesudah kejadian (AUC 0,99 di notebook, tidak berguna di produksi);
  • validasi acak pada data yang berurutan waktu, sehingga skor terlalu optimis;
  • metrik yang tidak cocok dengan keputusan (akurasi 88% dengan menebak "tidak churn" untuk semua);
  • peluang yang tidak terkalibrasi, sehingga ambang keputusan salah;
  • model yang adil di rata-rata tetapi salah sasaran untuk satu kelompok;
  • model yang diam-diam memburuk karena dunia berubah dan tidak ada yang memantau.

Cara klasik di course ini: regresi linear dan logistik diturunkan lalu dilatih dengan gradient descent yang ditulis sendiri (NumPy), evaluasi dan validasi silang dari prinsip, bias–varians lewat simulasi, regularisasi (ridge bentuk tertutup, lasso dengan coordinate descent), Naive Bayes, pohon keputusan CART, hutan acak, dan gradient boosting ditulis sendiri, k-means dan PCA lewat SVD. Cara modern: scikit-learn 1.8 (Pipeline, ColumnTransformer, HistGradientBoosting), LightGBM, pelacakan eksperimen, kartu model, penyajian dengan FastAPI, pemantauan pergeseran data, dan AI sebagai rekan yang setiap klaim metriknya diulang dan diuji.

Setiap algoritma yang ditulis sendiri dibandingkan dengan padanan pustakanya (hasil harus sama atau perbedaannya dijelaskan): turunkan dan implementasikan dengan NumPy, lalu pakai pustaka.

Untuk siapa

  • Course wajib: F1 Python dari Nol dan C1 Data Science dan Analitik (C1 Modul 10–11 tentang regresi sebagai alat inferensi dianggap sudah dikuasai; cara melatih regresi logistik, termasuk IRLS, dan ridge diajarkan di C2 Modul 04 dan 07, bukan di C1).
  • Matematika wajib:
    • Aljabar Linear: perkalian matriks, matriks simetris, QR, nilai dan vektor eigen, SVD (dipakai langsung di Modul 03, 07, dan 12);
    • Kalkulus I dan II: turunan, aturan rantai, turunan parsial dan gradien (Modul 03–04 dan 11);
    • Statistika dan Probabilitas: peluang bersyarat, teorema Bayes, distribusi, ekspektasi dan varians (Modul 05, 06, 08, 13).
  • Untuk perkakas rilis: F5 Rilis (FastAPI, Docker, GitHub Actions) dianjurkan sebelum Modul 15 dan wajib bila kamu mengejar lencana Tayang di Modul 16.
  • Dianjurkan: F2 SQL dan K1 Struktur Data dan Algoritma (rekursi, pengurutan, notasi O untuk Modul 09).

Lingkungan lab

BagianDi manaDiperiksa
Latihan Python dengan numpy, pandas, scikit-learn, LightGBMPeramban (Pyodide, Python 3.14)Otomatis
Latihan API FastAPI dengan TestClient (memakai thread, tidak jalan di peramban)GitHub CodespacesOtomatis
Notebook, penyajian sungguhan, data lebih besarGitHub Codespaces atau Google Colab (gratis)Lab "Selesai bila:"

Peramban menjalankan Python 3.14, sedangkan pemeriksa otomatis memakai Python 3.12 dan 3.13 dengan versi paket yang sama (_kerangka/requirements.txt). Perilaku yang dipakai course ini sama di ketiga versi; bila kamu melihat perbedaan, laporkan.

Versi dipatok sama dengan Pyodide 314.0.7: numpy 2.4.6, pandas 3.0.2, scipy 1.18.0, scikit-learn 1.8.0, LightGBM 4.6.0, FastAPI 0.136.1, Pydantic 2.12.5, httpx 0.28.1 (dicek 22 Oktober 2026; perilaku yang bergantung versi ditandai "perlu dicek ulang" di modulnya). XGBoost, SHAP, dan ONNX hanya muncul sebagai kode statis dan Lab. Satu kali menjalankan kode dibatasi 15 detik (latihan pelatihan model boleh batas=N sampai 120 detik, tetapi peserta menjalankannya di peramban, jadi data latihan dibuat kecil).

Waktu: ±6 jam per modul, total ±95 jam.

Silabus (16 modul)

#ModulKlasikModernProyek Model Makmur
01Peran ML engineer dan siklus MLMasalah → metrik → baseline → data → model → evaluasi → rilis → pantau; kapan tidak memakai ML; definisi belajar (Mitchell 1997)Model kecil khusus vs LLM (biaya, latensi, privasi); kesalahan khas kode ML buatan agenMASALAH.md: tiga masalah pemilik warung, metrik bisnis, baseline
02Data, fitur, dan pemisahan yang jujurLatih/validasi/uji, pemisahan berbasis waktu, kebocoran target dan kontaminasi, baseline, rekayasa fiturpandas + scikit-learn ColumnTransformer, datasheet databagi_waktu; menemukan fitur bocor poin_hangus
03Regresi linear dan gradient descentKerugian kuadrat, gradien diturunkan, GD batch/stokastik/mini-batch, laju belajar, standardisasi, konvergensi; dibandingkan dengan persamaan normal C1SGDRegressor, LinearRegression; autodiff dan SGD lanjut ada di C9Model permintaan linear pertama
04Regresi logistik dan klasifikasiLog-loss diturunkan dari likelihood, gradiennya, sigmoid stabil numerik, softmax multikelas, batas keputusanLogisticRegression (lbfgs), peluang vs labelModel churn pertama
05Evaluasi klasifikasi dan keputusanMatriks kebingungan, presisi/recall/F1, ROC-AUC sebagai peluang peringkat (Mann–Whitney), PR-AUC, kalibrasi (Brier, diagram reliabilitas), ambang dari biayasklearn.metrics, CalibratedClassifierCVAmbang kupon churn dari untung kampanye
06Validasi silang dan bias–variansk-fold, berstrata, GroupKFold, deret waktu, validasi bersarang, kurva belajar, dekomposisi bias–varians lewat simulasicross_validate, GridSearchCV/RandomizedSearchCV, HalvingGridSearchCVValidasi mundur model permintaan
07RegularisasiRidge bentuk tertutup, lasso dengan coordinate descent (soft-thresholding), elastic net, jalur regularisasi, penskalaanRidge, Lasso, LogisticRegression(C=…), ElasticNetCVFitur churn yang bertahan di lasso
08k-NN dan Naive BayesJarak dan kutukan dimensi, Naive Bayes multinomial dengan pemulusan Laplace di ruang log, tokenisasiTfidfVectorizer + LogisticRegression, embedding (jembatan ke C3)Pengklasifikasi ulasan pelanggan
09Pohon keputusanCART ditulis sendiri: Gini/entropi, pencarian pemisah O(n log n) dengan pengurutan, kriteria berhenti, pemangkasan biaya-kompleksitasDecisionTreeClassifier, export_text, ccp_alphaPohon churn yang bisa dijelaskan ke pemilik
10Bagging dan hutan acakBootstrap, bagging mengurangi varians (simulasi), subset fitur, galat out-of-bag, kepentingan impuritas vs permutasiRandomForestClassifier, permutation_importanceHutan acak churn dan permintaan
11Gradient boostingBoosting sebagai penurunan gradien di ruang fungsi (Friedman 2001), ditulis sendiri untuk kerugian kuadrat dan log-loss, shrinkage, early stoppingHistGradientBoosting*, LightGBM, XGBoost sekilasModel permintaan terbaik vs naif musiman
12Belajar tanpa labelk-means (Lloyd, k-means++) dan PCA lewat SVD ditulis sendiri, siluet, deteksi anomaliKMeans, PCA, IsolationForestSegmentasi pelanggan
13Data tak seimbang, keadilan, interpretabilitasBobot kelas, ambang, metrik keadilan (paritas demografis, kesetaraan peluang) dihitung sendiri, kepentingan permutasi, partial dependenceclass_weight, PartialDependenceDisplay, SHAP sekilasAudit keadilan model churn per kelompok usia
14Pipeline, reproduktibilitas, pelacakan eksperimenKontrak fit/transform, transformer buatan sendiri, kebocoran di dalam validasi silang, benih dan versi, serialisasi (bahaya pickle), kartu modelPipeline, set_output, skops sekilas; MLflow dan registry di C10Pipeline churn utuh + kartu model minimal
15Penyajian dan pemantauan modelInferensi batch vs online, validasi masukan, versi model, pergeseran data (PSI ditulis sendiri) vs pergeseran konsep, label terlambatFastAPI + Pydantic + TestClient (diperiksa), ONNX sekilas; canary dan pemantauan berskala di C10API prediksi churn + laporan pergeseran September
16Proyek akhir: Model MakmurMenyatukan: masalah, data, validasi, model, keputusan, rilis, pemantauanRepo reproduktif, kartu model, API; lencana Tayang opsionalLaporan dan API utuh

Proyek: Model Makmur

Pemilik Warung Makmur (F2, C1) kini punya tiga permintaan: siapa pelanggan yang mungkin tidak kembali bulan depan (agar kupon tepat sasaran), berapa stok yang perlu disiapkan besok, dan bisakah pesan pelanggan dipilah otomatis? Peserta membangun modelnya selangkah demi selangkah dengan data di data/ (dibuat deterministik oleh data/buat_data.py): panel bulanan pelanggan dengan label churn, penjualan harian enam produk, ulasan berlabel, dan profil pelanggan untuk segmentasi. Data sintetis punya "kebenaran" yang diketahui (fungsi peluang churn, mekanisme permintaan, segmen tersembunyi, derau label), sehingga tes memeriksa apakah metode menemukan pola yang benar dan menghindari jebakan (kebocoran, validasi acak, pergeseran), bukan sekadar menjalankan kode. Kontrak: proyek-model.md.

Kerangka setiap modul

# Modul NN · Judul

> **Hasil belajar:** 3–5 kemampuan yang bisa diamati
> **Prasyarat:** modul sebelumnya / pengetahuan
> **Waktu:** ± X jam
> **Hasil lab:** apa yang dihasilkan untuk Model Makmur

## Intinya                          (3–5 butir)
## 1. Masalah nyata
## 2. Konsep inti
### 2.N Di balik layar: …          (wajib, minimal satu: matematika/algoritma di balik fungsi pustaka)
### 2.N Di balik layar (opsional): … (pendalaman; tidak diuji di kuis)
## 3. Bekerja dengan agen
### Tugas tanpa AI (cara klasik)
### Tugas dengan AI (cara modern)
### Bandingkan
## 4. Lab
### Latihan terperiksa              (≥ 6; label **Tingkat:**, minimal 2 tantangan)
### Lab proyek                      (diakhiri "Selesai bila:")
## 5. Daftar periksa review
## 6. Red flag model dan kode agen
## 7. Studi kasus
## 8. Di skala enterprise
## 9. Kuis                          (8–10 soal, kunci + alasan)
## Sumber                           (dokumentasi resmi + rujukan klasik, "dicek 18 Oktober 2026")

Aturan isi:

  • Tulis sendiri dulu, lalu pustaka. Di modul tempat algoritma diajarkan, latihan intinya ditulis dengan NumPy dan melarang padanan pustakanya (disebut di perintah, diperiksa hemat lewat teks kode); bagian modern lalu membandingkan hasilnya dengan scikit-learn dalam toleransi.
  • Angka dari kode, bukan dari ingatan. Setiap metrik di prosa diambil dari contoh yang diperiksa mesin (python + text keluaran).
  • Tes memeriksa kebenaran ML, bukan hanya bentuk: model tanpa fitur bocor harus lebih baik dari baseline di data uji berbasis waktu, gradien buatan sendiri harus cocok dengan selisih hingga, lasso harus sama dengan scikit-learn, klaster harus memulihkan segmen tersembunyi, ramalan harus mengalahkan naif musiman, kode awal yang naif (misalnya memakai poin_hangus atau pemisahan acak) harus gagal.
  • Keacakan selalu berbenih (np.random.default_rng(42), random_state=0); hasil dibandingkan dengan toleransi yang disebut di perintah. Latihan yang melatih model memakai potongan data kecil agar selesai dalam batas waktu peramban.
  • Studi kasus memakai skenario umum (penaut artikel bantuan, persentil ujian daring, corong aktivasi aplikasi, endpoint prediksi publik), tanpa data pengguna sungguhan.
  • Bagian opsional ("Di balik layar (opsional)" dan latihan bertingkat "tantangan (opsional)") memperdalam materi; kuis tidak mengujinya.
  • Sumber klasik bergantian: Hastie, Tibshirani & Friedman The Elements of Statistical Learning (ed. 2); James, Witten, Hastie, Tibshirani & Taylor An Introduction to Statistical Learning (ed. Python 2023); Bishop Pattern Recognition and Machine Learning (2006); Murphy Probabilistic Machine Learning: An Introduction (2022); Breiman dkk. Classification and Regression Trees (1984); Breiman (2001) "Random Forests"; Friedman (2001) "Greedy Function Approximation"; Tibshirani (1996) lasso; Kohavi (1995) validasi silang; Lloyd (1982); Arthur & Vassilvitskii (2007) k-means++; Sculley dkk. (2015) "Hidden Technical Debt in Machine Learning Systems"; Mitchell dkk. (2019) "Model Cards"; Kaufman dkk. (2012) kebocoran. Edisi dan bab diverifikasi.
  • Patokan CS2023: knowledge area Artificial Intelligence (Machine Learning) dan Society, Ethics, and the Profession untuk keadilan.

Hubungan dengan course lain

CourseHubungan
F1, C1Prasyarat. Inferensi (interval, uji, bootstrap, regresi sebagai alat inferensi, QR) ada di C1; C2 memakainya untuk prediksi. Ridge dan metrik keadilan berumah di C2 (Modul 07 dan 13)
F5 RilisPerkakas rilis (FastAPI, Docker, GitHub Actions, tayang) yang dipakai Modul 15–16
K1Rekursi, pengurutan, dan notasi O untuk pencarian pemisah pohon (Modul 09)
C9 Deep Learning dari DasarAutodiff, SGD lanjut, dan jaringan saraf; C2 berhenti di gradient descent yang ditulis sendiri
C10 MLOps dan Platform MLPelacakan eksperimen, registry, penyajian berskala, canary, dan pemantauan pergeseran dimiliki C10; Modul 14–15 C2 hanya memberi pandangan ML engineer dan menautkannya
C3 AI EngineeringKapan model klasik kecil lebih tepat dari LLM; embedding dan pencarian sparse/dense
C4 Data EngineeringSumber fitur, kualitas data, pipeline batch

Yang tidak dibahas

SVM dan metode kernel, sistem rekomendasi, stacking secara mendalam, optimasi hiperparameter Bayesian (hanya disebut di Modul 06), klaster hierarkis, DBSCAN, dan Gaussian mixture, UMAP (hanya disebut batasnya di Modul 12), serta prediksi konformal (hanya disebut di Modul 11). Rujukan ESL dan ISLP di bagian Sumber cocok untuk melanjutkan.

Istilah

  • Fitur (feature): kolom masukan model. Di statistika C1 disebut prediktor atau kovariat; maknanya sama.
  • Target atau label: yang diprediksi (di C1: variabel respons).