Hyperparameter Tuning dalam Machine Learning: Pengertian, Teknik, dan Praktik Terbaik
Dalam proses membangun model machine learning, salah satu faktor yang paling menentukan performa adalah hyperparameter. Berbeda dari parameter model (seperti weights pada regresi atau neural network), hyperparameter tidak dipelajari secara otomatis oleh model, tetapi harus ditentukan secara manual sebelum proses training dimulai. Proses untuk mencari kombinasi terbaik disebut Hyperparameter Tuning.
Artikel ini membahas apa itu hyperparameter, mengapa penting, dan metode populer untuk melakukan tuning.
Apa Itu Hyperparameter?
Hyperparameter adalah variabel yang mengontrol cara model belajar. Ia mengatur struktur model atau perilaku algoritma selama training.
Contoh hyperparameter:
1. Regresi dan Tree Model
max_depthpada Decision Treen_estimatorspada Random Forestlearning_ratepada Gradient Boosting
2. KNN
k(jumlah tetangga)
3. SVM
C(regularization strength)kernel(linear, rbf, polynomial)gamma
4. Neural Networks
- Jumlah layer
- Jumlah neuron per layer
- Learning rate
- Batch size
- Epoch
Model yang sama bisa memberikan hasil yang sangat berbeda tergantung hyperparameter yang dipilih.
Mengapa Hyperparameter Tuning Penting?
Karena hyperparameter memengaruhi:
1. Performa Model
Tuning meningkatkan akurasi, menurunkan error, dan mengurangi overfitting.
2. Stabilitas Model
Model menjadi lebih konsisten dan tidak sensitif terhadap noise.
3. Efisiensi Komputasi
Hyperparameter yang tepat membuat training lebih cepat (misalnya learning rate yang optimal).
Metode Hyperparameter Tuning
Ada beberapa pendekatan yang umum digunakan. Berikut penjelasan lengkapnya.
1. Grid Search
Metode tuning paling klasik.
Grid search mencoba semua kombinasi hyperparameter dari grid yang telah didefinisikan.
Contoh:
param_grid = {
'max_depth': [3, 5, 7],
'n_estimators': [50, 100, 200]
}
Grid search akan mencoba 9 kombinasi unik.
Kelebihan:
- Akurat karena menguji seluruh ruang parameter.
- Mudah digunakan (tersedia di scikit-learn).
Kekurangan:
- Sangat lambat jika grid besar.
- Boros komputasi.
2. Random Search
Alih-alih mencoba semua kombinasi, Random Search memilih hyperparameter secara acak dari distribusi tertentu.
Kelebihan:
- Jauh lebih cepat daripada Grid Search.
- Terbukti lebih efisien untuk model dengan banyak hyperparameter.
Kekurangan:
- Tidak menjamin menemukan nilai terbaik.
- Mengandalkan keberuntungan sampling.
3. Bayesian Optimization
Pendekatan cerdas menggunakan probabilitas.
Menggunakan informasi dari percobaan sebelumnya untuk memutuskan hyperparameter selanjutnya.
Contoh library:
- Optuna
- Hyperopt
- Scikit-Optimize (skopt)
Kelebihan:
- Lebih efisien daripada Grid/Random Search.
- Cocok untuk model mahal seperti deep learning.
Kekurangan:
- Lebih kompleks.
- Membutuhkan framework tambahan.
4. Evolutionary Algorithms (Genetic Algorithm)
Menggunakan inspirasi proses biologis (seleksi alam) untuk mencari parameter terbaik.
Kelebihan:
- Bagus untuk ruang parameter besar dan non-linier.
- Tidak membutuhkan asumsi probabilistik.
Kekurangan:
- Lebih kompleks.
- Waktu training bisa sangat lama.
Hyperband / Successive Halving
Teknik modern dan cepat untuk deep learning.
Cara kerja:
- Menguji banyak hyperparameter dengan sedikit iterasi.
- Seleksi model terbaik.
- Melanjutkan training penuh untuk model yang bertahan.
Kelebihan:
- Sangat cepat.
- Cocok untuk model besar.
Kekurangan:
- Tidak tersedia pada semua framework.
Contoh Implementasi di Scikit-learn
Grid Search
from sklearn.model_selection import GridSearchCV
from sklearn.ensemble import RandomForestClassifier
model = RandomForestClassifier()
params = {
"n_estimators": [50, 100, 200],
"max_depth": [3, 5, 7]
}
grid = GridSearchCV(model, params, cv=5)
grid.fit(X_train, y_train)
print(grid.best_params_)
Random Search
from sklearn.model_selection import RandomizedSearchCV
random_search = RandomizedSearchCV(model, params, n_iter=5, cv=5)
random_search.fit(X_train, y_train)
print(random_search.best_params_)
Praktik Terbaik (Best Practices)
1. Mulai dengan Random Search
Gunakan random search untuk mempersempit area hyperparameter.
2. Lanjutkan dengan Grid Search (opsional)
Fokus pada rentang kecil dari random search.
3. Gunakan Bayesian Optimization untuk model mahal
Sangat cocok untuk deep learning.
4. Gunakan Cross-validation
Pastikan hasil tuning stabil.
5. Jangan tuning terlalu banyak parameter sekaligus
Fokus pada parameter paling berpengaruh:
- learning_rate
- max_depth
- regularization strength
6. Monitor waktu komputasi
Tuning bisa sangat mahal secara waktu dan biaya.
Kesimpulan
Hyperparameter tuning adalah langkah penting dalam machine learning untuk mendapatkan model yang optimal.
Berbagai metode tersedia, dari Grid Search hingga Bayesian Optimization, dan pemilihan teknik sangat bergantung pada:
- kompleksitas model,
- ukuran data,
- sumber daya komputasi.
Dengan memahami dan menerapkan hyperparameter tuning secara tepat, performa model dapat meningkat secara signifikan.