Setiap disiplin punya kosakata intinya, dan machine learning tidak terkecuali. Istilah seperti sampel, fitur, label, model, dan hyperparameter muncul di hampir setiap halaman dokumentasi, setiap pesan galat, dan setiap diskusi tim data. Tanpa penguasaan istilah-istilah ini, dokumentasi scikit-learn yang sebenarnya tertata rapi akan terasa seperti teka-teki. Chapter ini merangkum seluruh terminologi inti dalam satu tempat, mengikat setiap istilah pada satu contoh konkret yang sama, lalu memeriksa istilah-istilah tersebut langsung di atas dataset iris yang asli.
Satu Masalah, Sepuluh Istilah Inti #
Mari kita pakai satu masalah nyata sebagai pijakan: membangun sistem perkiraan harga rumah. Untuk itu kita mengumpulkan catatan penjualan — setiap rumah yang terjual menghasilkan satu baris pencatatan yang memuat karakteristik rumah (luas tanah, lokasi, jumlah kamar) beserta harga jualnya yang sudah diketahui. Dari contoh sesederhana ini, seluruh istilah inti langsung bisa didefinisikan dan dipetakan, seperti pada tabel berikut.
| Istilah | Pengertian | Contoh pada kasus harga rumah |
|---|---|---|
| Sampel (instance) | Satu baris pengamatan | Rumah di Jl. Melati No. 7 |
| Fitur (feature) | Kolom penjelas; variabel masukan | Luas tanah, lokasi, jumlah kamar |
| Label (target) | Kolom jawaban yang ingin diprediksi | Harga jual (Rp) |
| Dataset | Kumpulan sampel beserta fitur dan labelnya | 5.000 catatan penjualan |
| Model | Pola hasil pembelajaran, siap memprediksi | Fungsi harga = f(luas, lokasi, kamar) |
| Parameter | Angka di dalam model yang dipelajari dari data | Bobot untuk luas, bobot untuk lokasi |
| Hyperparameter | Pengatur yang kita pilih sebelum melatih | Jumlah tetangga k, kekuatan regularisasi |
| Training | Proses model mempelajari parameter | fit(X_latih, y_latih) |
| Inference | Model dipakai memprediksi data baru | predict(rumah_baru) |
| Data latih / data uji | Bagian untuk belajar / bagian untuk menguji | 4.000 baris / 1.000 baris |
Dalam prakteknya, dataset hampir selalu disimpan sebagai tabel: baris berisi sampel, kolom berisi fitur, plus satu kolom khusus untuk label. Notasi matematisnya telah menjadi konvensi lintas pustaka — scikit-learn, XGBoost, statsmodels semuanya memakai huruf kapital X untuk matriks fitur berdimensi dua (jumlah_sampel, jumlah_fitur) dan huruf kecil y untuk vektor label berdimensi satu dengan panjang persis jumlah_sampel. Kapitalisasi ini diturunkan dari notasi aljabar linear: matriks ditulis kapital, vektor ditulis kecil (materi Chapter Aljabar Linear untuk Machine Learning).
Istilah dalam Bentuk Nyata: Dataset Iris #
Definisi di tabel baru benar-benar melekat ketika kita melihatnya sebagai objek yang bisa dicetak. Dataset iris — kumpulan pengukuran 150 bunga iris dari tiga spesies — adalah contoh bawaan scikit-learn yang cocok untuk keperluan ini. File berikut memuat dataset tersebut lalu mencetak bentuk, nama fitur, nama label, dan tiga sampel pertama secara rinci.
# Dataset iris mengubah istilah abstrak menjadi objek yang bisa diamati:
# setiap baris adalah satu sampel, setiap kolom adalah satu fitur,
# dan setiap nilai pada y adalah satu label.
from sklearn.datasets import load_iris
iris = load_iris()
X = iris.data # matriks fitur: 150 baris (sampel) x 4 kolom (fitur)
y = iris.target # vektor label: 150 nilai kelas, satu per sampel
print(f"Bentuk X (matriks fitur) : {X.shape}")
print(f"Bentuk y (vektor label) : {y.shape}")
print(f"Nama fitur : {list(iris.feature_names)}")
print(f"Nama label : {iris.target_names.tolist()}")
print()
print("Tiga sampel pertama:")
for i in range(3):
nilai = ", ".join(f"{v:.1f}" for v in X[i])
kelas = iris.target_names[y[i]]
print(f" sampel {i}: [{nilai}] -> label {y[i]} ({kelas})")Output yang Dihasilkan:
Bentuk X (matriks fitur) : (150, 4)
Bentuk y (vektor label) : (150,)
Nama fitur : ['sepal length (cm)', 'sepal width (cm)', 'petal length (cm)', 'petal width (cm)']
Nama label : ['setosa', 'versicolor', 'virginica']
Tiga sampel pertama:
sampel 0: [5.1, 3.5, 1.4, 0.2] -> label 0 (setosa)
sampel 1: [4.9, 3.0, 1.4, 0.2] -> label 0 (setosa)
sampel 2: [4.7, 3.2, 1.3, 0.2] -> label 0 (setosa)Mari kita baca hasilnya sambil mencocokkan setiap baris kode dengan istilahnya:
- Baris 5 (
from sklearn.datasets import load_iris): memuat fungsi penyedia dataset mainan. Iris dipilih karena kecil, bersih, dan selalu identik di setiap instalasi — tidak ada unduhan yang diperlukan. - Baris 7–9 (
iris = load_iris(); X = ...; y = ...): objekirismenampung seluruh isi dataset. Matriks fitur diambil keXdan vektor label key— persis konvensi yang kita bahas di atas. - Baris 11–12 (
print(f"Bentuk X ...")):(150, 4)berarti 150 sampel dengan 4 fitur;(150,)berarti 150 label, satu untuk tiap sampel. Panjang keduanya wajib sama — kalau tidak, pustaka akan menolak saatfit(). - Baris 13–14 (
feature_names,target_names): empat fitur iris adalah panjang dan lebar kelopak (sepal) serta panjang dan lebar mahkota (petal) dalam sentimeter; tiga label adalah nama spesiessetosa,versicolor,virginica. - Baris 17–21 (
for i in range(3)):X[i]mengambil satu baris — satu sampel — berisi empat angka, dany[i]mengambil labelnya. Sampel 0 misalnya memiliki kelopak 5,1 cm × 3,5 cm dan mahkota 1,4 cm × 0,2 cm, sehingga tergolong spesiessetosa.
Perhatikan pola baris-kolom pada output: sampel 0: [5.1, 3.5, 1.4, 0.2] -> label 0 (setosa) adalah satu kalimat lengkap dalam bahasa machine learning — “satu instance dengan empat feature, target-nya kelas 0”.
Parameter Dipelajari, Hyperparameter Diatur #
Dua istilah ini paling sering tertukar, padahal bedanya tegas. Parameter adalah angka yang nilainya ditentukan otomatis oleh algoritme selama proses training dari data — koefisien bobot pada regresi linier, pusat klaster pada KMeans, atau probabilitas prior pada Naive Bayes. Kita tidak pernah menuliskan nilainya; kita hanya membacanya setelah fit() selesai, biasanya lewat atribut berakhiran garis bawah seperti coef_ dan cluster_centers_.
Hyperparameter, sebaliknya, adalah keputusan yang kita tetapkan sebelum training dimulai: berapa tetangga terdekat yang dipakai KNN (n_neighbors), seberapa keras hukuman regularisasi diberlakukan (C atau alpha), atau derajat polinomial pada regresi polynomial. Analoginya: parameter adalah hasil latihan atlet, sedangkan hyperparameter adalah keputusan pelatih tentang bagaimana latihan itu dijalankan.
Training, Inference, dan Pemisahan Data #
Alur kerja machine learning bergerak dalam dua fase. Fase training adalah saat model mempelajari parameter dari data latih — inilah momen pemanggilan fit(). Fase inference adalah saat model yang sudah terlatih dipakai untuk memprediksi sampel baru yang belum pernah dilihat — momen pemanggilan predict(). Model yang sama berperan berbeda di tiap fase: saat training ia murid, saat inference ia alat.
Karena itu dataset lazim dibagi dua: data latih untuk memelajari parameter, dan data uji yang disimpan rapat-rapat sampai evaluasi akhir. Alasannya sederhana — menguji model pada data yang ikut dipakai belajar sama seperti memberikan soal ujian beserta kunci jawabannya; nilainya tinggi tetapi tidak mengatakan apa-apa tentang kemampuan model pada data baru. Kita akan melihat pemisahan ini dipraktikkan pada Chapter Model Pertama dengan scikit-learn dan mendalaminya pada section Evaluasi dan Validasi Model.
Dengan kosakata lengkap di tangan, pertanyaan berikutnya menjadi tajam: proses apa persisnya yang terjadi di dalam fit() sehingga parameter bisa “dipelajari”? Jawabannya berkisar pada satu kata kunci — loss — dan itulah bahasan Chapter Cara Machine Learning Belajar dari Data.
Referensi Resmi #
- Glossary of Common Terms and Terminology — scikit-learn — kamus resmi istilah-istilah yang dibahas chapter ini.
- Datasets — scikit-learn User Guide — deskripsi resmi dataset mainan, termasuk iris yang dipakai pada contoh kode.
- sklearn.datasets.load_iris — API Reference
— dokumentasi fungsi
load_irisbeserta atribut yang dikembalikannya.