Chapter Jenis Pembelajaran Machine Learning telah memperkenalkan peta besar paradigma machine learning; sekarang kita membedah dua paradigma yang paling sering dipakai di industri sampai ke mekanisme dalamnya. Pertanyaannya bukan lagi “apa itu supervised learning”, melainkan: apa yang persisnya berbeda pada data yang masuk, pada sinyal yang dipakai algoritme untuk belajar, dan pada cara kita menilai hasilnya? Perbedaan tersebut akan kita lihat langsung dengan menjalankan dua algoritme — KNeighborsClassifier dan KMeans — di atas data yang sama persis, satu dengan label dan satu tanpa label.

Supervision Berarti Ada Kunci Jawaban #

Kata supervised sering diterjemahkan “terbimbing”, tetapi analog yang lebih tepat adalah ujian berpemandu: pembelajar mengerjakan soal, lalu guru langsung memberi tahu jawaban yang benar. Dalam terminologi data, peran guru itu dipegang oleh label y. Selama training, setiap kali model menghasilkan prediksi untuk satu sampel, label sampel tersebut menjadi pembanding — selisih keduanya dihitung oleh fungsi loss, dan parameter model digeser untuk memperkecil selisih itu. Inilah yang disebut sinyal supervisi: umpan balik langsung yang menyatakan “prediksimu salah sejauh ini, koreksilah”.

Konsekuensinya menentukan seluruh bentuk pekerjaan supervised. Karena ada jawaban benar untuk setiap sampel latih, kita bisa mengukur ketepatan model secara objektif — akurasi, presisi, MSE — dan bisa membandingkan dua model secara adil pada data uji yang sama. Model klasifikasi dan regresi yang kita bangun sepanjang Course ini hampir semuanya bekerja pada paradigma ini.

Supervised sendiri terbagi dua cabang tergantung tipe labelnya, dan pembagian ini menentukan algoritme, loss, serta metrik evaluasi yang relevan.

AspekRegresiKlasifikasi
Tipe labelAngka kontinuKategori diskret
Contoh targetHarga rumah (Rp850.000.000)Spesies bunga (setosa/versicolor/virginica)
Contoh masalahPerkiraan permintaan, prediksi suhuDeteksi spam, diagnosis medis, credit scoring
Loss yang lazimMSE, MAEcross-entropy, hinge loss
Metrik evaluasiMSE, RMSE, MAE, R²Akurasi, presisi, recall, F1
Contoh algoritmeLinearRegression, KNN regresiLogisticRegression, KNN klasifikasi, decision tree

Pembeda praktisnya sederhana: tanyakan apakah nilai target yang wajar di antara dua nilai yang sudah ada. Antara rumah Rp850 juta dan Rp860 juta ada harga-harga yang sah, sehingga itu regresi; antara kelas setosa dan versicolor tidak ada “setengah spesies”, sehingga itu klasifikasi.

Unsupervised: Mencari Struktur Tanpa Kunci Jawaban #

Sekarang buang kolom label. Yang tersisa hanyalah X — sekumpulan sampel dengan fitur-fiturnya, tanpa jawaban benar satu pun. Tidak ada guru, tidak ada sinyal kesalahan; algoritme hanya bisa bekerja dengan struktur internal data itu sendiri. Paradigma unsupervised mencari pola yang muncul dari geometri data: titik-titik yang saling berdekatan, arah variasi terbesar, atau wilayah yang padat.

Tiga keluarga masalah utamanya:

  • Clustering — mengelompokkan sampel yang mirip: segmentasi pelanggan, pengelompokan dokumen (KMeans, DBSCAN, hierarchical clustering).
  • Estimasi densitas — memodelkan seberapa padat probability di tiap wilayah ruang fitur, dipakai untuk deteksi anomali (Gaussian Mixture, KDE).
  • Reduksi dimensi — meringkas banyak fitur menjadi sedikit komponen yang menyimpan sebagian besar informasi (PCA, t-SNE).

Konsekuensi paling penting untuk pekerjaan sehari-hari: tidak ada jawaban benar untuk dicocokkan. Hasil clustering tidak bisa dihitung akurasinya, karena akurasi menuntut label. Evaluasi unsupervised memakai ukuran internal (misalnya silhouette yang menilai seberapa rapat klaster dan seberapa terpisah antar klaster) ditambah penilaian domain oleh manusia — apakah segmentasi pelanggan ini masuk akal bagi tim pemasaran, misalnya.

Data yang Sama, Dua Jalur yang Berbeda #

Mari kita buktikan bedanya secara eksperimental. File berikut membuat 30 titik dalam dua gugus terpisah, lalu menjalankan KNeighborsClassifier yang membaca label dan KMeans yang sama sekali tidak membacanya. Karena dataset sintetis menyimpan y secara diam-diam, kita bisa menyelinap memeriksa apakah klaster yang ditemukan KMeans sejajar dengan kelas sebenarnya — pemeriksaan yang di data nyata tanpa label mustahil dilakukan.

python
# Data yang sama dipakai dua paradigma berbeda:
# KNeighborsClassifier belajar DENGAN label (supervised),
# KMeans mengelompokkan TANPA label (unsupervised).

import numpy as np
from sklearn.cluster import KMeans
from sklearn.datasets import make_blobs
from sklearn.model_selection import train_test_split
from sklearn.neighbors import KNeighborsClassifier

# 30 titik dalam 2 gugus terpisah; random_state=42 -> data selalu sama.
X, y = make_blobs(
    n_samples=30,
    centers=[(-4.0, -4.0), (4.0, 4.0)],
    cluster_std=1.5,
    random_state=42,
)

# --- Paradigma 1: supervised, label dipakai sebagai sinyal guru ---
X_latih, X_uji, y_latih, y_uji = train_test_split(
    X, y, test_size=8, random_state=42, stratify=y
)
knn = KNeighborsClassifier(n_neighbors=3)
knn.fit(X_latih, y_latih)  # label ikut dibaca di sini
akurasi = knn.score(X_uji, y_uji)  # label uji jadi pembanding jawaban

# --- Paradigma 2: unsupervised, label TIDAK pernah dibaca ---
kmeans = KMeans(n_clusters=2, n_init=10, random_state=42)
klaster = kmeans.fit_predict(X)  # hanya X, tanpa y

# Nama klaster 0/1 dari KMeans tidak bermakna; bandingkan dua kemungkinan
# penamaan dan ambil yang lebih cocok dengan kelas sebenarnya.
cocok_langsung = int(np.sum(klaster == y))
cocok_terbalik = int(np.sum(klaster == 1 - y))
kecocokan = max(cocok_langsung, cocok_terbalik)

print("=== SUPERVISED: KNeighborsClassifier ===")
print(f"belajar dari {X_latih.shape[0]} sampel berlabel, diuji pada {X_uji.shape[0]} sampel")
print(f"akurasi terhadap label uji: {akurasi:.3f}")
print()
print("=== UNSUPERVISED: KMeans ===")
print(f"mengelompokkan {X.shape[0]} sampel tanpa membaca label sama sekali")
print(f"kecocokan klaster dengan kelas sebenarnya: {kecocokan}/{len(y)}")
print("(pembanding ini hanya ada karena dataset sintetis menyimpan y;")
print(" pada data nyata yang tak berlabel, tidak ada jawaban untuk dicocokkan)")
print()
print("Perbandingan ringkas:")
print(f"  sinyal belajar  : label kelas        vs struktur geometris data")
print(f"  hasil           : prediksi + akurasi {akurasi:.3f} vs penomoran klaster tanpa nama")

Output yang Dihasilkan:

text
=== SUPERVISED: KNeighborsClassifier ===
belajar dari 22 sampel berlabel, diuji pada 8 sampel
akurasi terhadap label uji: 1.000

=== UNSUPERVISED: KMeans ===
mengelompokkan 30 sampel tanpa membaca label sama sekali
kecocokan klaster dengan kelas sebenarnya: 30/30
(pembanding ini hanya ada karena dataset sintetis menyimpan y;
 pada data nyata yang tak berlabel, tidak ada jawaban untuk dicocokkan)

Perbandingan ringkas:
  sinyal belajar  : label kelas        vs struktur geometris data
  hasil           : prediksi + akurasi 1.000 vs penomoran klaster tanpa nama

Bedah kode baris demi baris:

  1. Baris 11–17 (make_blobs(...)): membuat 30 titik di sekitar dua pusat (-4, -4) dan (4, 4) dengan sebaran cluster_std=1.5. Dengan random_state=42, data ini identik di setiap eksekusi. Nilai y (gugus asal tiap titik) tetap dibuat, tetapi hanya KNN yang akan membacanya.
  2. Baris 20–22 (train_test_split): supervised mampu memisahkan data uji berlabel karena label tersedia — 22 sampel untuk belajar, 8 sampel untuk menguji.
  3. Baris 23–25 (knn.fit dan knn.score): dua momen kunci paradigma supervised. Saat fit(X_latih, y_latih), label ikut dibaca sebagai sinyal guru; saat score(X_uji, y_uji), label uji menjadi kunci jawaban untuk menghitung akurasi.
  4. Baris 28–29 (kmeans.fit_predict(X)): perhatikan argumennya — hanya X, tanpa y sama sekali. KMeans membaca letak titik-titiknya, menghitung pusat gugus, lalu menomori keanggotaan tiap titik.
  5. Baris 31–35 (cocok_langsung/cocok_terbalik): nomor klaster 0/1 hasil KMeans tidak bermakna — KMeans bisa saja menamai gugus kiri sebagai klaster 1. Karena itu dua kemungkinan penamaan dihitung dan yang lebih tinggi diambil. Langkah ini hanya mungkin karena kita diam-diam masih menyimpan y.
  6. Baris 37–49: mencetak ringkasan kedua paradigma untuk dibandingkan berdampingan.

Hasilnya instruktif. KNN mencapai akurasi 1.000 pada 8 sampel uji — ia tahu nama kelas karena label mengajarinya. KMeans menemukan dua kelompok yang 30/30 sejajar dengan kelas sebenarnya — tetapi perlu diingat, angka kecocokan itu bisa dihitung semata karena dataset sintetis kita menyimpan y; pada data pelanggan nyata yang tidak berlabel, pemeriksaan seperti ini tidak ada, dan penamaan klaster harus ditafsirkan manusia.

Penentu Utama Pilihan: Ketersediaan Label #

Paradigma bukan pilihan selera, melainkan konsekuensi dari data yang ada. Label itu mahal: memeriksa ribuan transaksi untuk menandai mana yang mencurigakan memakan waktu analis; mendiagnosis citra medis meminta dokter spesialis. Semakin mahal labelnya, semakin jauh kita terdorong ke wilayah unsupervised.

Kondisi dataParadigma yang tersediaSikap yang lazim
Label lengkap dan terpercayaSupervised penuhLatih model prediksi, evaluasi dengan akurasi/metrik lainnya
Label hanya untuk sebagian dataSemi-supervisedLatih pada yang berlabel, manfaatkan sisanya untuk struktur
Tidak ada label sama sekaliUnsupervisedClustering/reduksi dimensi, evaluasi internal + penilaian domain
Label tersedia untuk contoh yang bisa dipilihActive learningModel menandai sampel paling bernilai untuk dilabeli manusia

Struktur penyelidikannya sudah jelas, istilahnya sudah lengkap, dan mekanisme belajarnya sudah dipahami. Saatnya merangkai semuanya menjadi model machine learning pertama yang utuh — dari memuat data sampai mengukur akurasi — dalam Chapter Model Pertama dengan scikit-learn.

Referensi Resmi #