Lewati ke konten utama

Tuning Hyperparameter: Metode, Praktik Terbaik, dan Contoh

Panduan praktis untuk tuning hyperparameter, mencakup cara kerjanya, metode pencarian utama (grid, random, Bayesian), strategi evaluasi, dan cara menjalankannya di Python dan R.
Diperbarui 28 Jul 2026  · 15 mnt baca

Jelajahi dengan AI

Buka di ChatGPTBuka di ClaudeBuka di Perplexity

Akurasi model Anda bukan buruk karena memilih algoritme yang salah - melainkan karena Anda tidak pernah men-tuning-nya.

Kebanyakan orang melatih model dengan pengaturan default, melihat akurasi berada di kisaran 80-an persen, lalu menyimpulkan algoritme tidak cocok untuk tugas mereka. Padahal algoritmenya bukan masalah. Setiap model ML memiliki parameter yang mengendalikan cara ia belajar, dan parameter itu ditetapkan sebelum pelatihan dimulai. Jika Anda menentukannya dengan benar, Anda bisa mendapatkan tambahan akurasi 10–20% dari model yang sama pada data yang sama.

Parameter-parameter ini disebut hyperparameter, dan memilihnya dengan baik akan membedakan model yang sekadar lumayan dari model yang konsisten tepat sasaran. Tuning hyperparameter adalah proses mencari kombinasi yang memberi kinerja terbaik.

Dalam artikel ini, saya akan menjelaskan apa itu tuning hyperparameter, strategi pencarian yang paling efektif, cara mengevaluasi hasil tanpa menipu diri sendiri, dan cara menjalankannya di Python dan R.

Jika Anda baru dalam data science dan machine learning, cek kursus Machine Learning Fundamentals in Python sebelum mempelajari topik yang lebih lanjut.

Apa Itu Tuning Hyperparameter?

Tuning hyperparameter adalah proses menemukan pengaturan yang membuat model belajar paling baik.

Setiap model ML memiliki dua jenis angka. Sebagiannya dipelajari dari data selama pelatihan, seperti bobot pada neural network atau titik belah pada decision tree. Lainnya ditetapkan sebelum pelatihan dimulai, dan itulah hyperparameter. Mereka mengendalikan cara model belajar — seberapa cepat, seberapa dalam, seberapa banyak ia harus melakukan generalisasi atau menghafal.

Hyperparameter default ada agar model bisa berjalan. Bukan untuk memberi Anda model terbaik untuk dataset spesifik Anda. Laju pembelajaran default yang bekerja untuk klasifikasi gambar secara logis tidak akan berjalan baik pada data tabular. Kedalaman pohon default yang baik untuk dataset bersih akan overfit pada data yang bising. Anda paham maksudnya.

Proses tuning menelusuri berbagai kombinasi nilai hyperparameter, melatih model untuk masing-masing, dan menyimpan yang kinerjanya terbaik pada data validasi Anda. 

Hasil yang Anda peroleh sering kali lebih baik daripada beralih ke algoritme yang lebih canggih tetapi tidak di-tuning.

Hyperparameter vs Parameter Model

Perbedaannya terletak pada siapa yang menetapkannya dan kapan.

Parameter model dipelajari oleh algoritme selama pelatihan. Anda tidak pernah menentukannya sendiri. Proses pelatihan menyesuaikannya dengan melihat data dan meminimalkan fungsi loss. Misalnya:

  • Bobot dan bias pada neural network
  • Koefisien pada regresi linear
  • Ambang split pada decision tree
  • Support vector pada SVM

Hyperparameter dipilih oleh Anda sebelum pelatihan dimulai. Mereka mengendalikan bagaimana proses pembelajaran bekerja, tetapi algoritme tidak akan menyesuaikannya. Jika Anda tidak menetapkannya, library akan memakai default. Contohnya:

  • Learning rate pada gradient descent
  • Jumlah pohon pada random forest
  • Kekuatan regularisasi pada regresi logistik
  • Jenis kernel pada SVM

Berikut perbandingan berdampingan:

  Parameter model Hyperparameter
Ditentukan oleh Algoritme pelatihan Anda
Kapan Selama pelatihan Sebelum pelatihan
Dipelajari dari data Ya Tidak
Contoh Bobot, koefisien, titik split Learning rate, kedalaman pohon, kekuatan regularisasi
Berubah antar-run Setiap kali Anda melatih ulang Hanya jika Anda mengubahnya

Parameter model menjawab apa yang dipelajari model. Hyperparameter menjawab bagaimana model belajar.

Cara Kerja Tuning Hyperparameter

Tuning adalah sebuah loop.

Anda mulai dengan memilih hyperparameter yang ingin dicari dan menentukan rentang nilai untuk masing-masing. Lalu Anda melatih model dengan satu kombinasi, mengukur kinerjanya pada data validasi, dan menggunakan hasil itu untuk memutuskan langkah berikutnya.

Loop-nya tampak seperti ini:

  1. Pilih hyperparameter untuk dituning dan tetapkan rentang nilai untuk masing-masing.
  2. Latih model dengan kombinasi nilai tertentu.
  3. Evaluasi kinerja pada set validasi menggunakan metrik yang sesuai dengan tugas Anda.
  4. Perbarui hyperparameter berdasarkan apa yang dipelajari — pindah ke kombinasi berikutnya dalam daftar pradefinisi atau gunakan hasil terakhir untuk memandu pilihan berikutnya.
  5. Ulangi hingga kinerja berhenti meningkat atau anggaran komputasi habis.

Pilihan cara memperbarui antar iterasi membedakan satu metode pencarian dari yang lain. Tuning manual memperbarui berdasarkan intuisi. Grid search memperbarui dengan menelusuri daftar pradefinisi. Metode Bayesian memperbarui dengan membangun model probabilistik tentang kombinasi mana yang kemungkinan bekerja.

Mari kita bahas metode-metode ini selanjutnya.

Metode Pencarian Hyperparameter

Metode pencarian yang Anda pilih menentukan seberapa banyak komputasi yang dibutuhkan dan seberapa besar peluang Anda menemukan hyperparameter yang baik.

Pencarian manual

Pencarian manual adalah metode paling sederhana. Anda memilih kombinasi hyperparameter, melatih model, melihat hasilnya, lalu menyesuaikan berdasarkan apa yang terlihat.

Metode ini bekerja saat Anda punya model kecil, beberapa hyperparameter, dan pengalaman sebelumnya dengan algoritme tersebut. Jika Anda sudah tahu XGBoost biasanya cocok dengan learning rate sekitar 0,05 dan kedalaman pohon 6, Anda bisa mulai dari sana dan menyesuaikan dari pengamatan.

Pencarian manual tidak efektif saat ruang pencarian membesar. Tiga hyperparameter dengan masing-masing lima nilai wajar saja sudah menghasilkan 125 kombinasi, dan tidak ada orang yang men-tuning 125 model secara manual.

Grid search

Grid search memeriksa setiap kombinasi dalam daftar nilai yang sudah ditentukan.

Anda mendefinisikan grid — misalnya, learning rate [0.01, 0.05, 0.1] dan kedalaman pohon [3, 5, 7] — dan grid search melatih model untuk masing-masing dari sembilan kombinasi. Metode ini menyeluruh dan dapat direproduksi.

Masalahnya adalah biaya komputasi. 

Menambahkan satu hyperparameter lagi dengan lima nilai akan mengalikan jumlah pelatihan Anda lima kali. Grid search juga membuang upaya pada nilai yang tidak terlalu berpengaruh — jika kedalaman pohon nyaris tidak memengaruhi skor Anda, grid search tetap akan melatih model untuk setiap kedalaman yang Anda daftarkan.

Grid search adalah default yang bagus untuk ruang pencarian kecil dengan dua atau tiga hyperparameter.

Random search

Random search mengambil sampel kombinasi acak dari suatu rentang alih-alih menelusuri grid tetap.

Anda mendefinisikan distribusi untuk setiap hyperparameter dan random search mengambil kombinasi dari distribusi tersebut. Ini lebih efisien daripada grid search karena tidak membuang run pada nilai yang tidak penting — jika hanya satu dari tiga hyperparameter yang memengaruhi kinerja, random search tetap mengeksplor hyperparameter penting itu pada banyak nilai berbeda.

Grid search versus random search

Grid search versus random search

Random search adalah default yang lebih baik untuk apa pun dengan lebih dari dua hyperparameter.

Optimisasi Bayesian

Optimisasi Bayesian menggunakan hasil dari uji sebelumnya untuk memutuskan apa yang dicoba selanjutnya.

Metode ini membangun model probabilistik tentang bagaimana kombinasi hyperparameter dipetakan ke kinerja, lalu memilih kombinasi berikutnya yang memiliki skor ekspektasi tertinggi atau ketidakpastian tertinggi. Ini adalah trade-off eksplorasi-eksploitasi, artinya Anda bisa mengeksplor area baru yang berpotensi bagus, atau mengeksploitasi area yang sudah terbukti baik.

Metode Bayesian menemukan hyperparameter yang baik dalam jauh lebih sedikit uji coba daripada random atau grid search. Konsekuensinya, setiap uji coba sedikit lebih lama karena algoritme harus memasangkan model internalnya sebelum memilih titik berikutnya. Library seperti Optuna dan Hyperopt melakukan ini untuk Anda.

Gunakan optimisasi Bayesian saat pelatihan mahal dan Anda hanya mampu melakukan sedikit run.

Successive halving dan Hyperband

Successive halving dan Hyperband mengurangi waktu komputasi dengan menghentikan run yang buruk lebih awal.

Successive halving memulai banyak kombinasi hyperparameter dengan anggaran pelatihan kecil, membuang setengah yang terburuk, menggandakan anggaran untuk yang tersisa, dan mengulanginya. 

Hyperband adalah pembungkus di atas successive halving yang menjalankannya beberapa kali dengan pembagian anggaran berbeda, sehingga Anda tidak perlu menebak konfigurasi awal yang tepat.

Keduanya berguna saat pelatihan lambat dan ruang pencarian besar. Mereka bekerja paling baik saat kinerja awal cukup mewakili kinerja akhir, yang biasanya berlaku untuk neural network dan gradient boosting.

Berikut perbandingan metode-metodenya:

  Biaya komputasi Efisiensi pencarian Terbaik untuk
Pencarian manual Rendah Rendah Model kecil, pengalaman sebelumnya
Grid search Tinggi Rendah 2–3 hyperparameter, rentang kecil
Random search Sedang Sedang 4+ hyperparameter, kepentingan tidak diketahui
Optimisasi Bayesian Sedang Tinggi Pelatihan mahal, anggaran kecil
Successive halving / Hyperband Rendah hingga sedang Tinggi Ruang pencarian besar, pelatihan lambat

Mengevaluasi Kinerja Hyperparameter

Tuning tidak akan banyak membantu jika Anda tidak memilih rentang nilai yang tepat.

Jika evaluasi Anda keliru, Anda akan memilih hyperparameter yang salah. Ada empat hal yang harus tepat — bagaimana Anda membagi data, bagaimana Anda mengukur kinerja, metrik mana yang Anda optimalkan, dan bagaimana Anda menjaga kebersihan set uji.

Pembagian train, validation, dan test

Bagi data Anda menjadi tiga bagian sebelum tuning.

Set pelatihan (training) adalah tempat model belajar. Set validasi digunakan untuk memberi skor tiap kombinasi hyperparameter selama tuning. Set uji (test) digunakan sekali, di akhir, untuk mengukur performa model final pada data yang belum pernah dilihat.

Jika Anda men-tuning terhadap set uji, Anda akan mendapatkan angka akurasi yang tampak bagus tetapi model yang underperform di produksi. Setiap keputusan tuning terhadap set uji membocorkan informasinya ke dalam model Anda.

Pembagian umum adalah 60/20/20 untuk dataset berukuran sedang atau 80/10/10 untuk yang lebih besar.

Cross-validation

Cross-validation adalah cara yang lebih baik untuk memberi skor hyperparameter saat set validasi Anda kecil.

Anda membagi data pelatihan menjadi k fold — biasanya 5 atau 10. Untuk setiap kombinasi hyperparameter, Anda melatih pada k-1 fold dan memvalidasi pada satu fold yang tersisa, lalu diputar. Skor akhir adalah rata-rata di semua fold.

Cross-validation memberi perkiraan yang lebih stabil tentang seberapa baik kombinasi hyperparameter melakukan generalisasi, karena Anda tidak bergantung pada satu pembagian validasi yang kebetulan baik atau buruk. Konsekuensinya, Anda melatih k model per kombinasi alih-alih satu.

Gunakan cross-validation saat dataset Anda terlalu kecil untuk satu pembagian validasi yang andal, dan saat Anda mampu menanggung biaya pelatihan ekstra.

Memilih metrik evaluasi

Metrik yang Anda optimalkan harus sesuai dengan tujuan Anda sebenarnya.

Akurasi baik untuk klasifikasi yang seimbang tetapi tidak masuk akal untuk masalah tidak seimbang. Misalnya, model deteksi penipuan yang memprediksi "bukan penipuan" untuk semuanya bisa mendapat akurasi 99% tetapi melewatkan semua kasus. Untuk klasifikasi tidak seimbang, gunakan precision, recall, F1, atau ROC-AUC. Untuk regresi, gunakan RMSE, MAE, atau R squared tergantung apakah outlier penting.

Cukup pilih satu metrik utama sebelum mulai tuning dan konsistenlah dengannya.

Menghindari kebocoran data

Kebocoran data terjadi saat informasi dari set validasi atau uji masuk ke pelatihan.

Berikut beberapa cara umum terjadinya:

  • Skalasi atau normalisasi seluruh dataset sebelum membagi, sehingga statistik validasi bocor ke pelatihan
  • Rekayasa fitur yang menggunakan nilai target dari seluruh dataset
  • Tuning terhadap set uji alih-alih set validasi terpisah
  • Menggunakan data deret waktu tanpa menghormati urutan waktu saat membagi

Pasang semua langkah praproses hanya pada set pelatihan, lalu terapkan ke validasi dan uji. Dalam scikit-learn, inilah fungsi Pipeline — ia membungkus praproses dan pemodelan dalam satu objek yang menghormati pembagian data Anda.

Menerapkan Tuning Hyperparameter

Sebagian besar library ML menyertakan alat untuk melakukan pencarian dan cross-validation, jadi Anda tidak perlu mengimplementasikan dari nol.

Tuning hyperparameter di Python

Scikit-learn hadir dengan dua kelas tuning yang mencakup sebagian besar use case — GridSearchCV untuk grid search dan RandomizedSearchCV untuk random search. Keduanya membungkus estimator scikit-learn apa pun, menjalankan cross-validation untuk setiap kombinasi, dan memberikan model terbaik di akhir.

GridSearchCV menerima sebuah estimator, kamus nilai hyperparameter, dan jumlah lipatan cross-validation. Kelas ini melatih model untuk setiap kombinasi dan menyimpan yang skornya terbaik.

from sklearn.ensemble import RandomForestClassifier
from sklearn.model_selection import GridSearchCV
from sklearn.datasets import make_classification

X, y = make_classification(n_samples=1000, random_state=42)

param_grid = {
    "n_estimators": [100, 200, 500],
    "max_depth": [5, 10, 20],
    "min_samples_leaf": [1, 5, 10],
}

grid = GridSearchCV(RandomForestClassifier(random_state=42), param_grid, cv=5)
grid.fit(X, y)

print(grid.best_params_)
print(grid.best_score_)

Hasil GridSearchCV di Python

Hasil GridSearchCV di Python

RandomizedSearchCV menggunakan antarmuka yang sama tetapi mengambil sampel dari distribusi alih-alih melalui daftar tetap. Ini memungkinkan Anda mencakup rentang yang lebih luas dengan jumlah uji coba tetap.

from sklearn.model_selection import RandomizedSearchCV
from scipy.stats import randint

param_dist = {
    "n_estimators": randint(100, 500),
    "max_depth": randint(3, 20),
    "min_samples_leaf": randint(1, 10),
}

random_search = RandomizedSearchCV(
    RandomForestClassifier(random_state=42),
    param_dist,
    n_iter=30,
    cv=5,
    random_state=42,
)
random_search.fit(X, y)

print(random_search.best_params_)

Hasil RandomizedSearchCV di Python

Hasil RandomizedSearchCV di Python

Untuk optimisasi Bayesian, Optuna adalah pilihan standar. Ia memilih kombinasi berikutnya berdasarkan hasil sebelumnya, sehingga konvergen lebih cepat daripada random search saat pelatihan mahal.

import optuna
from sklearn.ensemble import RandomForestClassifier
from sklearn.model_selection import cross_val_score

def objective(trial):
    params = {
        "n_estimators": trial.suggest_int("n_estimators", 100, 500),
        "max_depth": trial.suggest_int("max_depth", 3, 20),
        "min_samples_leaf": trial.suggest_int("min_samples_leaf", 1, 10),
    }
    model = RandomForestClassifier(**params, random_state=42)
    return cross_val_score(model, X, y, cv=5).mean()

study = optuna.create_study(direction="maximize")
study.optimize(objective, n_trials=30)

print(study.best_params)

Hasil Optuna di Python

Hasil Optuna di Python

Metode trial.suggest_* mendefinisikan ruang pencarian, dan Optuna memutuskan kombinasi mana yang dicoba selanjutnya berdasarkan skor yang telah dilihat sejauh ini.

Tuning hyperparameter di R

R memiliki dua opsi hebat — caret dan tidymodels. Keduanya melakukan hal yang sama — mendefinisikan grid, menjalankan cross-validation, mengembalikan model terbaik — tetapi tidymodels adalah default modern.

Dengan caret, Anda meneruskan grid tuning ke fungsi train() dan menentukan metode resampling.

library(caret)

data <- iris
ctrl <- trainControl(method = "cv", number = 5)

grid <- expand.grid(
  mtry = c(2, 3, 4)
)

model <- train(
  Species ~ .,
  data = data,
  method = "rf",
  trControl = ctrl,
  tuneGrid = grid
)

print(model$bestTune)

Hasil Caret di R

Hasil Caret di R

tidymodels membagi alur kerja menjadi langkah-langkah jelas — spesifikasi model, resep untuk praproses, dan grid tuning. Ini lebih verbose tetapi dalam praktiknya lebih skalabel.

library(tidymodels)

data <- iris
split <- initial_split(data, prop = 0.8)
train_data <- training(split)

rf_spec <- rand_forest(
  mtry = tune(),
  trees = tune(),
  min_n = tune()
) |>
  set_engine("ranger") |>
  set_mode("classification")

grid <- grid_regular(
  mtry(range = c(2, 4)),
  trees(range = c(100, 500)),
  min_n(range = c(1, 10)),
  levels = 3
)

folds <- vfold_cv(train_data, v = 5)

results <- tune_grid(
  rf_spec,
  Species ~ .,
  resamples = folds,
  grid = grid
)

show_best(results, metric = "accuracy")

Hasil Tidymodels di R

Hasil Tidymodels di R

Alur kerjanya persis sama seperti di Python — Anda mendefinisikan apa yang akan dicari, mendefinisikan cara memberi skornya, dan membiarkan library menjalankan loop.

Hyperparameter Mana yang Sebaiknya Anda Tuning?

Tidak semua hyperparameter layak di-tuning karena biasanya hanya beberapa yang paling berpengaruh terhadap kinerja. Berikut yang biasanya paling penting lebih dulu, per keluarga model.

Decision tree dan random forest

Anda sebaiknya selalu men-tuning tiga ini:

  • Kedalaman maksimum mengendalikan seberapa jauh tiap pohon bisa tumbuh. Pohon yang dangkal underfit, yang dalam overfit. Ini biasanya hal pertama yang dituning.
  • Minimum sampel per daun menetapkan berapa banyak titik pelatihan yang diperlukan sebuah node daun. Nilai yang lebih tinggi memaksa pohon untuk melakukan generalisasi alih-alih menghafal baris individual.
  • Jumlah pohon pada random forest. Lebih banyak pohon memberi model yang lebih stabil tetapi dengan imbal hasil menurun setelah beberapa ratus. Tuning ini terakhir.

Model gradient boosting

Gradient boosting (XGBoost, LightGBM, CatBoost) lebih sensitif terhadap hyperparameter dibanding random forest. Perhatikan yang berikut:

  • Learning rate mengendalikan seberapa besar setiap pohon baru mengoreksi yang sebelumnya. Nilai yang lebih rendah lebih akurat tetapi butuh lebih banyak pohon. Ini adalah hyperparameter tunggal paling penting untuk dituning.
  • Jumlah estimator adalah jumlah putaran boosting. Kaitkan dengan learning rate — jika Anda menurunkan yang satu, naikkan yang lain.
  • Kedalaman pohon mengendalikan seberapa kompleks tiap pohon individu. Boosting biasanya menyukai pohon yang lebih dangkal daripada random forest, umumnya 3 hingga 8.

Support vector machine

Pada SVM, pemilihan hyperparameter sangat menentukan, mungkin lebih daripada model lain:

  • C mengendalikan trade-off antara margin yang lebar dan mengklasifikasikan titik pelatihan dengan benar. C lebih tinggi berarti regularisasi lebih lemah.
  • Gamma mengendalikan seberapa jauh pengaruh satu titik pelatihan. Gamma rendah berarti jauh, gamma tinggi berarti dekat.
  • Kernel menentukan bentuk batas keputusan yang bisa dipelajari SVM. Mulailah dengan rbf untuk masalah non-linear dan linear untuk data jarang berdimensi tinggi.

Neural network

Neural network memiliki ruang pencarian terbesar di antara keluarga model umum. Tuning yang berikut terlebih dahulu:

  • Learning rate adalah hyperparameter paling penting dalam deep learning. Terlalu tinggi membuat pelatihan divergen, terlalu rendah membuatnya tak pernah konvergen. Cobalah nilai lintas orde magnitudo seperti 1e-4, 1e-3, 1e-2.
  • Ukuran batch memengaruhi kecepatan pelatihan dan akurasi akhir. Batch lebih besar berlatih lebih cepat per epoch tetapi sering kali kurang baik dalam generalisasi.
  • Optimizer (Adam, SGD dengan momentum, AdamW) mengubah cara jaringan memperbarui bobotnya. Adam adalah default yang baik.
  • Epoch adalah berapa kali model melihat seluruh set pelatihan. Gunakan early stopping alih-alih men-tuning ini secara manual.

Tantangan Umum dalam Tuning Hyperparameter

Tuning itu mahal, terutama saat Anda ingin menguji banyak nilai per parameter dan memiliki banyak parameter untuk di-tuning. Berikut beberapa tantangan umum yang perlu diketahui.

Biaya komputasi adalah kendala terbesar. Setiap kombinasi yang Anda coba berarti melatih model penuh, dan cross-validation mengalikannya dengan jumlah fold. Grid 100 kombinasi dengan CV 5-fold berarti 500 pelatihan model. Jika tiap pelatihan memakan 10 menit, itu lebih dari tiga hari.

Ruang pencarian besar tumbuh secara multiplikatif. Lima hyperparameter dengan masing-masing lima nilai menghasilkan 3.125 kombinasi. Di sinilah grid search bukan lagi opsi dan diganti dengan random search atau metode Bayesian.

Imbal hasil menurun terlihat lebih awal daripada yang diperkirakan banyak orang. Beberapa run tuning pertama biasanya memberi peningkatan terbesar. 50 run berikutnya mungkin hanya menambah sekitar satu persen akurasi. Pada titik tertentu, komputasi tambahan lebih baik digunakan untuk menambah data atau memperbaiki fitur.

Trade-off akurasi-waktu lebih penting di produksi daripada di pengembangan. Model yang skornya 0,5% lebih tinggi tetapi butuh waktu dua kali lipat untuk dilatih mungkin tidak sepadan jika Anda melatih ulang setiap hari. Anda sebaiknya memutuskan sejak awal seberapa banyak akurasi sebanding dengan berapa banyak komputasi.

Praktik Terbaik untuk Tuning Hyperparameter

Berikut beberapa kebiasaan baik saat men-tuning hyperparameter model machine learning:

  • Tuning hyperparameter paling berpengaruh terlebih dahulu: Learning rate untuk boosting dan neural network. Kedalaman maksimum untuk pohon. C dan gamma untuk SVM. Pastikan ini berada pada rentang yang tepat sebelum yang lain.
  • Mulai dengan random search untuk ruang pencarian besar: Grid search membuang komputasi pada hyperparameter yang tidak penting. Random search mencakup ruang lebih baik, dan tepat untuk apa pun dengan lebih dari dua atau tiga hyperparameter.
  • Gunakan cross-validation: Satu pembagian validasi bisa saja kebetulan baik atau buruk. Lima fold memberi estimasi yang jauh lebih jujur tentang bagaimana kombinasi melakukan generalisasi.
  • Tentukan rentang pencarian yang realistis: Jika rentang learning rate Anda [0.001, 100], Anda akan membuang waktu pada nilai yang tidak pernah berhasil. Mulailah dengan rentang yang diketahui wajar untuk algoritme Anda, lalu persempit berdasarkan hasil.
  • Lacak eksperimen Anda: Catat nilai hyperparameter, skor, dan seed untuk setiap run. Alat seperti MLflow, Weights & Biases, atau bahkan file CSV semuanya bisa. Tanpa ini, Anda tidak bisa mereproduksi hasil.
  • Tetapkan anggaran komputasi: Putuskan berapa banyak uji coba yang bisa Anda lakukan sebelum mulai, bukan setelahnya. Ini memaksa Anda memilih metode pencarian yang sesuai dan mencegah tuning lebih lama dari yang perlu.

Kesalahan Umum dalam Tuning Hyperparameter

Kebanyakan kegagalan tuning terjadi karena kesalahan yang mudah dihindari. Berikut beberapa di antaranya:

  • Membingungkan hyperparameter dengan parameter model. Bobot dan koefisien dipelajari selama pelatihan. Anda tidak menetapkannya secara manual dan tidak men-tuning-nya. Jika Anda mencoba men-tuning sesuatu yang seharusnya dipelajari algoritme, Anda tertukar antara keduanya.
  • Men-tuning terhadap set uji. Setiap keputusan berdasarkan skor uji membocorkan informasinya ke model Anda. Angka yang Anda dapatkan di akhir akan terlalu optimistis, dan model produksi Anda akan underperform. Gunakan set validasi terpisah atau cross-validation.
  • Mencari grid parameter yang terlalu besar secara tidak perlu. Grid dengan tujuh hyperparameter dan sepuluh nilai masing-masing memiliki sepuluh juta kombinasi. Anda tidak bisa mencari itu. Pangkas sebelum mulai dengan memilih dua atau tiga hyperparameter yang paling penting dan beri rentang yang realistis.
  • Mengoptimalkan metrik yang salah. Akurasi pada dataset tidak seimbang akan memberi model yang selalu memprediksi kelas mayoritas. Pilih metrik yang mencerminkan tujuan Anda sebenarnya, dan tentukan sebelum mulai tuning.
  • Mengubah terlalu banyak hyperparameter sekaligus saat tuning manual. Jika Anda menyesuaikan learning rate dan ukuran batch pada langkah yang sama, Anda tidak akan tahu mana yang menyebabkan perubahan. Ubah satu per satu saat tuning manual.

Tuning Hyperparameter vs Rekayasa Fitur

Keduanya meningkatkan model Anda, tetapi bekerja pada bagian masalah yang berbeda.

Rekayasa fitur memperbaiki data masukan. Anda membuat fitur baru dari yang ada, melakukan enkode variabel kategorikal, menangani nilai hilang, dan mengurangi noise. Fitur yang lebih baik memberi model sinyal yang lebih berguna untuk dipelajari.

Tuning hyperparameter meningkatkan cara model belajar dari fitur apa pun yang Anda berikan. Ini mengubah perilaku algoritme pada data alih-alih mengubah datanya.

Keduanya saling melengkapi. Rekayasa fitur biasanya memberi peningkatan terbesar di awal proyek, saat data masih mentah dan model kehilangan sinyal yang jelas. Tuning hyperparameter memberi peningkatan yang lebih kecil namun konsisten setelah fitur Anda sudah cukup baik.

Jika model Anda mentok dan Anda tidak yakin mana yang dicoba lebih dulu, lihat kesalahan Anda. Jika model melewatkan pola yang tampak jelas dari data, Anda punya masalah fitur. Jika overfit atau underfit, Anda punya masalah tuning.

Mengapa Tuning Hyperparameter Penting dalam Machine Learning

Tuning adalah langkah standar dalam alur kerja ML mana pun.

Sering kali memberikan peningkatan lebih besar daripada mengganti algoritme. Misalnya, random forest yang di-tuning dengan baik sering mengungguli model gradient boosting yang di-tuning buruk pada data yang sama, meski gradient boosting lebih canggih. 

Tuning juga membantu generalisasi. Hyperparameter seperti kedalaman maksimum dan tingkat dropout secara langsung mengendalikan seberapa banyak model dapat overfit. Menentukan ini dengan benar adalah pembeda antara model yang menghafal set pelatihan dan yang berkinerja baik pada data baru.

Di produksi, tuning mengubah proof-of-concept menjadi sistem yang andal. 

Pengaturan default membantu Anda memulai, tetapi bukan pengaturan yang akan membuat model tetap kompetitif terhadap pelatihan ulang dan kebutuhan bisnis. Setiap tim ML serius menganggap tuning sebagai bagian dari proses.

Kesimpulan

Tuning hyperparameter adalah loop iteratif untuk mencari, mengevaluasi, dan mempersempit pada apa yang bekerja untuk data spesifik Anda.

Hasil terbaik datang dari menggabungkan tiga hal — metode pencarian yang sesuai anggaran komputasi Anda, validasi yang memberi skor relevan, dan pelacakan eksperimen yang memungkinkan Anda meninjau apa yang telah dicoba.

Mulailah dengan random search atau grid search. Beralih ke optimisasi Bayesian saat pelatihan menjadi cukup mahal sehingga jumlah uji coba benar-benar penting. Apa pun pilihannya, tuning hyperparameter yang relevan untuk model Anda, jaga kebersihan set uji, dan catat setiap run.

Jika Anda mempertimbangkan karier di machine learning, daftarlah ke track Machine Learning Engineer untuk siap kerja pada 2026.


Dario Radečić's photo
Author
Dario Radečić
LinkedIn
Senior Data Scientist yang berbasis di Kroasia. Penulis Tekno Teratas dengan lebih dari 700 artikel yang telah diterbitkan, menghasilkan lebih dari 10 juta tayangan. Penulis buku Machine Learning Automation with TPOT.

FAQ

Apa itu tuning hyperparameter dalam machine learning?

Tuning hyperparameter adalah proses menemukan pengaturan yang membuat model belajar paling baik pada data Anda. Hyperparameter adalah nilai yang Anda tetapkan sebelum pelatihan, seperti learning rate atau kedalaman pohon, dan mereka mengendalikan bagaimana model belajar, bukan apa yang dipelajari. Tuning menelusuri berbagai kombinasi nilai ini dan memilih yang memberi kinerja terbaik pada set validasi.

Mengapa tuning hyperparameter itu penting?

Hyperparameter default membuat model Anda bisa berjalan, bukan teroptimasi untuk masalah spesifik Anda. Tuning sering memberi peningkatan akurasi yang lebih baik daripada beralih ke algoritme yang lebih kompleks, dan secara langsung mengendalikan seberapa baik model Anda melakukan generalisasi ke data baru.

Apa perbedaan antara hyperparameter dan parameter model?

Parameter model dipelajari oleh algoritme selama pelatihan — seperti bobot pada neural network atau titik split pada decision tree. Hyperparameter ditetapkan oleh Anda sebelum pelatihan dan mengendalikan bagaimana pembelajaran terjadi, seperti learning rate atau jumlah pohon. Anda tidak pernah men-tuning parameter model secara manual, dan algoritme tidak menyentuh hyperparameter Anda.

Haruskah saya menggunakan grid search atau random search?

Grid search cocok untuk ruang pencarian kecil dengan dua atau tiga hyperparameter dan beberapa nilai masing-masing. Begitu Anda memiliki lebih banyak hyperparameter, random search mencakup ruang lebih baik dengan anggaran komputasi yang sama karena tidak membuang run pada nilai yang tidak penting. Sebagai patokan, gunakan grid search saat Anda paham nilai mana yang layak dicoba, dan random search saat Anda tidak tahu.

Kapan saya harus menggunakan optimisasi Bayesian alih-alih random search?

Optimisasi Bayesian layak dipertimbangkan saat pelatihan mahal dan setiap uji coba membutuhkan waktu atau biaya nyata. Metode ini menggunakan hasil dari run sebelumnya untuk memutuskan apa yang dicoba selanjutnya, sehingga menemukan hyperparameter kuat dalam jauh lebih sedikit uji coba dibanding random search. Jika Anda mampu menjalankan ratusan pelatihan cepat, random search lebih sederhana dan biasanya cukup. Gunakan metode Bayesian saat jumlah uji coba Anda terbatas hanya puluhan.

Topik

Belajar bersama DataCamp

Kursus

Machine Learning dengan Model Berbasis Pohon di Python

5 Hr
117.2K
Dalam kursus ini, Anda akan belajar cara menggunakan model berbasis pohon dan ensemble untuk regresi dan klasifikasi menggunakan scikit-learn.
Lihat DetailRight Arrow
Mulai Kursus
Lihat Lebih BanyakRight Arrow
Terkait

blogs

Tutorial Korelasi di R

Dapatkan pengenalan dasar-dasar korelasi di R: pelajari lebih lanjut tentang koefisien korelasi, matriks korelasi, plotting korelasi, dan sebagainya.
David Woods's photo

David Woods

13 mnt

blogs

Spaghetti Plot dan Jalur Badai

Temukan alasan mengapa Anda sebaiknya (tidak) menggunakan spaghetti plot untuk menyampaikan ketidakpastian jalur prediksi badai serta dampaknya terhadap interpretasi.
Hugo Bowne-Anderson's photo

Hugo Bowne-Anderson

13 mnt

blogs

40 Pertanyaan Wawancara DBMS Teratas di 2026

Kuasai pertanyaan wawancara basis data, dari konsep SQL dasar hingga skenario desain sistem tingkat lanjut. Panduan mendalam ini mencakup semua yang Anda perlukan untuk sukses di wawancara DBMS dan meraih peran berikutnya.
Dario Radečić's photo

Dario Radečić

15 mnt

blogs

12 Alternatif ChatGPT Terbaik yang Bisa Anda Coba pada 2026

Artikel ini menyajikan daftar alternatif ChatGPT yang akan meningkatkan produktivitas Anda.
Javier Canales Luna's photo

Javier Canales Luna

14 mnt

Lihat Lebih BanyakLihat Lebih Banyak