Lewati ke konten utama

Menguasai Optimisasi Bayesian dalam Data Science

Manfaatkan kekuatan Optimisasi Bayesian untuk penyetelan hiperparameter dalam Pembelajaran Mesin. Kuasai fondasi teoretis dan aplikasi praktis dengan Python untuk meningkatkan akurasi model.
Diperbarui 28 Sep 2026  · 11 mnt Baca

Jelajahi bersama AI

ChatGPTClaudePerplexity

Dalam bidang Pembelajaran Mesin yang luas, tantangan untuk menavigasi himpunan data yang besar dan kompleks guna menemukan hiperparameter optimal selama pelatihan model adalah hambatan umum.

Metode konvensional, yang sering berbasis pada pencarian acak dan grid, bisa memakan waktu dan tidak efisien, terutama saat berhadapan dengan arsitektur model yang kompleks atau data berskala besar.

Di sinilah kebutuhan akan pendekatan yang lebih cerdas dan adaptif seperti optimisasi Bayesian menjadi semakin krusial untuk optimisasi hiperparameter.

Tujuan pertama artikel ini adalah menjelaskan apa itu optimisasi Bayesian, memberikan landasan teoretis yang kuat bagi pembaca. Namun, sebelum menyelami konsep optimisasi Bayesian, penting untuk memahami berbagai opsi optimisasi hiperparameter yang tersedia.

Bagian kedua artikel membahas implementasi yang lebih praktis dari konsep-konsep kunci menggunakan bahasa pemrograman Python. Di bagian terakhir, pembaca akan mempelajari cara memanfaatkan optimisasi Bayesian untuk penyetelan hiperparameter pada model pembelajaran mesin.

Apa itu Optimisasi Bayesian?

Sebelum masuk ke definisi optimisasi Bayesian, mari lihat gambaran umum empat metode utama optimisasi hiperparameter menggunakan contoh sederhana:

  • Pencarian manual
  • Pencarian acak
  • Pencarian grid, dan
  • Optimisasi Bayesian.

Pencarian manual

Ini adalah metode paling dasar yang didasarkan pada pengalaman, intuisi, atau coba-coba. Sering kali memakan waktu dan sangat bergantung pada keahlian praktisi.

Sebagai contoh, seorang pembuat kue berpengalaman mengatur suhu oven dan waktu panggang berdasarkan pengalaman dan intuisi sebelumnya.

Titik awal yang umum mungkin suhu 350°F dan waktu panggang 30 menit, mencerminkan pengaturan yang sering berhasil. Penyesuaian terhadap pengaturan ini dilakukan berdasarkan hasil dari setiap percobaan memanggang.

Pencarian acak

Pendekatan ini melibatkan pemilihan acak kombinasi suhu dan waktu dalam rentang yang ditentukan. Misalnya, suhu dapat bervariasi antara 325°F hingga 375°F dan waktu antara 25 hingga 35 menit.

Proses pemilihan mungkin dimulai pada 330°F selama 27 menit, diikuti 370°F selama 31 menit, berlanjut secara acak hingga kombinasi yang paling efektif teridentifikasi.

Pencarian grid

Metode ini melibatkan eksplorasi sistematis atas banyak kombinasi nilai hiperparameter.

Melanjutkan contoh memanggang yang sama. Pembuat kue membuat grid terstruktur berisi kombinasi suhu dan waktu di dinding.

Grid tersebut mungkin mencakup kenaikan setiap 5°F antara 325°F dan 375°F serta setiap 2 menit dari 25 hingga 35 menit. Kue kemudian dipanggang pada setiap kombinasi dalam grid ini (325°F selama 25 menit, 325°F selama 27 menit, ... , 375°F selama 35 menit) untuk menemukan kombinasi terbaik.

Pencarian Bayesian

Optimisasi Bayesian dapat dipandang sebagai pendekatan yang lebih cerdas untuk menemukan suhu dan waktu memanggang terbaik untuk kue, dibandingkan pencarian acak.

Pencarian Acak mungkin membuat pembuat kue mencoba beragam kombinasi suhu dan waktu secara acak, yang banyak di antaranya menghasilkan kue kurang matang atau terlalu matang.

Dalam optimisasi Bayesian, pencarian pembuat kue terhadap kondisi memanggang optimal dipandu dan diinformasikan oleh hasil sebelumnya.

Misalnya, jika pembuat kue menemukan bahwa kue yang dipanggang sekitar 350°F selama 30 menit cenderung lebih berhasil, maka ia akan lebih fokus pada kombinasi suhu dan waktu yang mendekati nilai-nilai tersebut pada percobaan selanjutnya.

Metode ini mengurangi jumlah percobaan yang dibutuhkan karena ia "belajar" kombinasi mana yang lebih mungkin menghasilkan kue yang matang sempurna berdasarkan hasil sesi memanggang sebelumnya.

Secara keseluruhan, optimisasi Bayesian didasarkan pada teorema Bayes untuk mengoptimalkan fungsi objektif yang mahal untuk dievaluasi. Metode ini sangat efektif pada skenario di mana pengambilan sampel mahal, dan fungsi objektif tidak diketahui namun dapat diambil sampelnya.

Optimisasi Bayesian biasanya menggunakan model probabilistik, seperti Gaussian Process, untuk memperkirakan fungsi objektif dan kemudian menggunakan fungsi akuisisi untuk memutuskan di mana harus mengambil sampel berikutnya.

Tantangan Optimisasi Bayesian

Metode ini telah berhasil diterapkan di berbagai domain. Namun, penting untuk dicatat bahwa metode ini menghadirkan beberapa tantangan, dan yang utama disajikan di bawah ini:

Evaluasi Batch / Paralel

Salah satu tantangannya adalah melakukan evaluasi batch atau paralel secara efisien. Optimisasi Bayesian secara tradisional beroperasi secara berurutan, memilih satu titik pada satu waktu untuk dievaluasi. Memperluasnya ke pengaturan batch, di mana beberapa titik dievaluasi secara bersamaan, tidaklah sepele dan memerlukan keseimbangan cermat untuk memastikan keberagaman dan efisiensi pada titik-titik yang dipilih.


Optimisasi Non-myopic

Ini mengacu pada tantangan membuat keputusan strategis jangka panjang tentang titik mana yang akan dievaluasi. Metode non-myopic mempertimbangkan dampak masa depan dari evaluasi saat ini, yang dapat intensif secara komputasi dan kompleks untuk dimodelkan.


Dimensionalitas Ruang

Seiring meningkatnya dimensionalitas ruang pencarian, optimisasi Bayesian bisa menjadi kurang efektif. Hal ini disebabkan oleh 'kutukan dimensionalitas', di mana volume ruang meningkat secara eksponensial, sehingga lebih sulit menemukan optimum dengan jumlah evaluasi yang terbatas.


Ruang Pencarian Terstruktur

Dalam banyak masalah dunia nyata, ruang pencarian bukanlah ruang n-dimensi kontinu yang sederhana melainkan memiliki struktur kompleks, seperti ketergantungan antar variabel atau kendala. Menangani ruang terstruktur ini secara efektif merupakan tantangan yang signifikan.


Pencarian Multi-tugas/Objektif, Multi-fidelity

Memperluas optimisasi Bayesian untuk menangani beberapa objektif secara bersamaan atau mengintegrasikan informasi dari evaluasi dengan tingkat fidelity (akurasi) yang bervariasi adalah hal yang kompleks. Skenario ini memerlukan penyeimbangan trade-off antara berbagai objektif atau tingkat detail yang berbeda dalam evaluasi.


Pencarian Warm-start

Ini melibatkan pemanfaatan pengetahuan atau data sebelumnya untuk mempercepat proses optimisasi. Mengintegrasikan informasi ini secara efektif ke dalam kerangka Bayesian tanpa menimbulkan bias pada hasil merupakan tantangan.


Jumlah Evaluasi yang Besar

Meskipun optimisasi Bayesian dirancang untuk skenario di mana evaluasi mahal, dalam beberapa kasus, jumlah evaluasi yang besar mungkin tetap diperlukan. Mengelola dan menavigasi jumlah evaluasi yang besar ini secara efisien bisa menjadi tantangan, khususnya terkait sumber daya komputasi dan waktu.


Fungsi Objektif yang Sulit

Menangani fungsi objektif yang memiliki banyak optimum lokal, diskontinuitas, atau non-stasioner (di mana fungsi berubah seiring waktu) adalah hal yang sulit. Fungsi-fungsi ini dapat menyesatkan proses optimisasi dan membuat sulit menemukan optimum global.


Observasi Tidak Langsung

Dalam beberapa skenario, fungsi objektif tidak dapat diamati secara langsung, melainkan hanya melalui pengukuran tidak langsung. Ini menambah lapisan kompleksitas karena algoritma optimisasi harus menyimpulkan fungsi objektif sebenarnya dari observasi tidak langsung tersebut.


Fungsi Akuisisi dan Pengambilan Keputusan

Dalam optimisasi Bayesian, fungsi akuisisi digunakan untuk memandu pencarian nilai optimum.

Fungsi akuisisi dan model pengganti saling bergantung dalam optimisasi Bayesian.

Model pengganti memberikan prediksi probabilistik atas fungsi objektif, yang kemudian digunakan oleh fungsi akuisisi untuk menentukan titik paling menjanjikan yang akan dievaluasi berikutnya. Selain itu, model pengganti seperti Gaussian Process Regression sangat berguna ketika fungsi objektif kompleks atau mahal untuk dievaluasi secara langsung.

Lebih jauh lagi, dengan terus memperbarui model pengganti menggunakan titik data baru, fungsi akuisisi dapat diarahkan dengan lebih akurat ke area ruang pencarian yang paling mungkin menghasilkan hasil terbaik.

Beberapa fungsi akuisisi yang dapat digunakan dalam optimisasi Bayesian antara lain:

  • Thompson Sampling: fungsi ini memilih titik berdasarkan estimasi probabilistik dari fungsi objektif.
  • Upper Confidence Bound (UCB): fungsi ini digunakan untuk memilih titik dengan probabilitas tertinggi dalam meningkatkan nilai terbaik yang teramati. Ia menggunakan selisih antara keluaran solusi baru yang potensial dan yang terbaik saat ini, dengan menghitung probabilitas peningkatannya.
  • Probability of Improvement (PI): digunakan untuk memilih titik yang memiliki probabilitas tertinggi terhadap nilai terbaik yang telah teramati sejauh ini.
  • Expected Improvement (EI): digunakan untuk memilih titik dengan peningkatan ekspektasi tertinggi atas nilai terbaik yang teramati saat ini.

Tidak ada fungsi yang paling baik atau paling buruk. Masing-masing fungsi akuisisi ini memiliki kekuatan tersendiri dan dipilih berdasarkan kebutuhan spesifik dari masalah optimisasi yang dihadapi.

Aplikasi Optimisasi Bayesian

Optimisasi Bayesian telah berhasil diterapkan di banyak industri, dan bagian ini berfokus pada ilustrasinya dalam empat kasus penggunaan:

  • Pemrosesan Bahasa Alami
  • Pembelajaran Mesin dan penyetelan hiperparameter
  • Pengujian A/B, dan
  • Pembelajaran penguatan dan robotika

Contoh-contoh ini sangat relevan dan informatif bagi Data Scientist.

Pemrosesan Bahasa Alami

Saat menerapkan Pembelajaran Mesin pada masalah Pemrosesan Bahasa Alami, ada banyak pilihan terkait representasi teks masukan, dan pilihan-pilihan ini dapat memengaruhi hasil akhir model yang mendasarinya.

Optimisasi Bayesian digunakan untuk mengotomatisasi proses memilih cara terbaik merepresentasikan teks dalam model NLP, sehingga menyederhanakan proses pengembangan model dan membuatnya lebih efisien, sembari tetap mempertahankan atau bahkan meningkatkan kinerja keseluruhan model-model tersebut.

Untuk mempelajari lebih lanjut tentang embedding, kursus kami Introduction to Embeddings with OpenAI API menyediakan panduan lengkap menggunakan OpenAI API untuk membuat embedding.

Pembelajaran Mesin dan penyetelan hiperparameter

Optimisasi Bayesian dalam pembelajaran mesin otomatis (AutoML) mengotomatisasi pemilihan model terbaik dan hiperparameternya untuk suatu masalah pada dataset tertentu.

Aplikasi terbaru optimisasi Bayesian menunjukkan efektivitasnya dalam menyetel model kompleks seperti deep belief network, convolutional neural network, dan metode Markov chain Monte Carlo.

Selain itu, metode ini bermanfaat dalam mengotomatisasi proses pemilihan di antara model yang ditawarkan oleh pustaka pembelajaran mesin populer seperti WEKA dan scikit-learn.

Pengujian A/B

Dalam Pengujian A/B, Optimisasi Bayesian digunakan untuk meningkatkan efisiensi pengujian berbagai konfigurasi produk, seperti iklan, aplikasi, gim, atau situs web.

Dengan menyajikan dua opsi (A dan B) kepada sebagian kecil pengguna, pengembang mengumpulkan umpan balik untuk mengoptimalkan berbagai metrik seperti keterlibatan pengguna atau rasio klik-tayang, dan tantangan utamanya adalah mengidentifikasi konfigurasi produk terbaik dalam anggaran terbatas untuk kueri pengguna.

Optimisasi Bayesian memfasilitasi proses ini dengan menggunakan umpan balik dari pengujian sebelumnya untuk membuat keputusan terinformasi tentang subset pengguna mana yang akan ditanyakan berikutnya, dengan tujuan mengoptimalkan kinerja keseluruhan produk seraya meminimalkan biaya peluang.

Pembelajaran Penguatan dan Robotika

Optimisasi Bayesian telah diterapkan secara efektif dalam Robotika dan Pembelajaran Penguatan.

Dalam robotika, metode ini digunakan untuk mengoptimalkan gaya berjalan robot untuk tujuan spesifik seperti kecepatan atau kelancaran, seperti yang ditunjukkan pada robot Sony AIBO ERS-7. Metode ini juga telah digunakan dalam tugas navigasi, membantu robot meminimalkan ketidakpastian tentang lokasi dan estimasi peta mereka saat bergerak di lingkungan.

Optimisasi Bayesian telah diterapkan dalam pembelajaran penguatan hierarkis untuk secara otomatis menyetel parameter kebijakan jaringan saraf dan mempelajari fungsi nilai pada berbagai tingkat dalam sistem hierarkis.

Selain itu, teknik ini telah diterapkan untuk mengembangkan kebijakan atensi dalam pelacakan citra menggunakan jaringan dalam, menunjukkan versatilitasnya dalam beradaptasi dengan berbagai aspek pembelajaran dan pengambilan keputusan di lingkungan yang kompleks.

Panduan Langkah demi Langkah Mengimplementasikan Optimisasi Bayesian

Bagian-bagian sebelumnya memberikan pemahaman komprehensif tentang optimisasi Bayesian. Bagian ini mendemonstrasikan cara mengoptimalkan hiperparameter XGBRegressor menggunakan pustaka GPyOpt.

PyMC3 adalah pustaka kuat lainnya yang digunakan untuk optimisasi Bayesian, dan kursus kami Bayesian Data Analysis in Python menyediakan panduan lengkap beserta beberapa contoh dunia nyata.

Bagi yang tertarik menerapkan optimisasi Bayesian menggunakan bahasa pemrograman R, kursus kami Fundamentals of Bayesian Data Analysis in R adalah pilihan yang tepat.

Dua metode diterapkan: Pencarian grid, dan optimisasi Bayesian. Tujuannya adalah mengidentifikasi mana yang menghasilkan hiperparameter optimal, sehingga menghasilkan model yang lebih baik. Kode sumber lengkap tersedia di workbook DataLab ini; Anda dapat membuat salinan workbook Anda sendiri untuk mengedit dan menjalankan kode di browser tanpa menginstal apa pun di komputer Anda.

Prasyarat

Pustaka berikut diperlukan untuk menjalankan kedua teknik dengan sukses.

  • numpy: pustaka komputasi numerik di Python.
  • scipy: pustaka komputasi ilmiah di Python.
  • sklearn: pustaka pembelajaran mesin di Python.
  • GPyOpt: pustaka optimisasi Bayesian di Python.
  • Xgboost untuk model XGBoost

Pustaka-pustaka ini dapat diinstal menggunakan perintah pip sebagai berikut, dari Jupyter notebook:

!pip -q install xgboost scikit-learn GPyOpt numpy

Setelah berhasil menjalankan kode sebelumnya, impor dilakukan menggunakan pernyataan import:

import xgboost as xgb
from sklearn.datasets import fetch_california_housing as fch
from sklearn.model_selection import train_test_split
from sklearn.metrics import mean_squared_error
from sklearn.model_selection import RandomizedSearchCV
from GPyOpt.methods import BayesianOptimization
from sklearn.model_selection import cross_val_score
import numpy as np

Persiapan dataset

Analisis benchmarking didasarkan pada dataset perumahan California.

  • 70% data digunakan untuk melatih model XGBoost
  • Sisa 30% digunakan untuk pengujian

Pembagian data latih dan uji dijelaskan di bawah:

# Load dataset
california_housing = fch()

X = california_housing.data
y = california_housing.target

# Split the dataset into training and testing sets
X_train, X_test, y_train, y_test = train_test_split(X, y,
                                                	test_size=0.3,
                                                	random_state=2024)

Setelah memuat data latih dan uji, kita dapat memeriksa ukurannya menggunakan fungsi .shape.

print(f"Training Shape: {X_train.shape}")
print(f"Testing Shape: {X_test.shape}")

Penyetelan hiperparameter dengan Pencarian Acak

Bagian ini menjelaskan cara menyiapkan dan menjalankan penyetelan hiperparameter dengan pendekatan Gridsearch untuk regresi XGBoost menggunakan kelas RandomizedSearchCV dari modul scikit-learn.

Menyiapkan grid parameter

Sebuah kamus bernama param_dist dibuat dengan berbagai hiperparameter sebagai kunci dan daftar nilai kemungkinannya sebagai nilai yang sesuai. Hiperparameter ini mencakup:

  • max_depth: Kedalaman maksimum sebuah pohon. Nilai: 3, 10, 5, 15.
  • min_child_weight: Jumlah minimum bobot instance (hessian) yang dibutuhkan pada sebuah child. Nilai: 1, 5, 10.
  • subsample: Rasio sampel dari instance pelatihan. Nilai: 0,5, 0,7, 1,0.
  • colsample_bytree: Rasio sampel kolom saat membangun setiap pohon. Nilai: 0,5, 0,7, 1,0.
  • n_estimators: Jumlah pohon gradient boosted. Setara dengan jumlah putaran boosting. Nilai: 100, 200, 300, 400.
param_dist = {
	'max_depth': [3, 10, 5, 15],
	'min_child_weight': [1, 5, 10],
	'subsample': [0.5, 0.7, 1.0],
	'colsample_bytree': [0.5, 0.7, 1.0],
	'n_estimators': [100, 200, 300, 400],
	'learning_rate': [0.01, 0.05, 0.1, 0.15, 0.2]
}

Inisialisasi XGBoost Regressor

Sebuah instance dari kelas XGBRegressor dari pustaka XGBoost dibuat:

xgb_reg = xgb.XGBRegressor()

Konfigurasikan RandomizedSearchCV

RandomizedSearchCV disiapkan dengan parameter berikut:

  • Estimator (xgb_reg) adalah regressor XGBoost.
  • param_distributions=param_dist menentukan kamus parameter yang akan diambil sampelnya.
  • n_iter=25 menunjukkan bahwa 25 kombinasi berbeda akan dicoba.
  • scoring='neg_mean_squared_error' menetapkan metrik penilaian ke negative mean squared error.
  • cv=3 menetapkan strategi pembagian validasi silang menjadi 3 lipatan.
  • verbose=1 mengaktifkan keluaran rinci.
  • random_state=42 memastikan reprodusibilitas.
random_search = RandomizedSearchCV(
	xgb_reg, param_distributions=param_dist, n_iter=25,
	scoring='neg_mean_squared_error', cv=3, verbose=1, random_state=2024
)

Melatih model dan mengakses parameter

Metode fit digunakan untuk menjalankan pencarian acak pada data latih (X_train dan y_train) yang disediakan:

random_search.fit(X_train, y_train)

Atribut best_params dari model yang telah dilatih berisi informasi tentang hiperparameter terbaik yang menghasilkan model dengan kinerja lebih baik.

Parameter-parameter tersebut dapat diperoleh sebagai berikut:

print("Random Search Best Parameters:", random_search.best_params_)

image2.png

Parameter terbaik pencarian acak

Dari semua parameter yang mungkin, yang terbaik untuk model XGBoost menggunakan pencarian acak adalah sebagai berikut:

'subsample': 0.5,
'n_estimators': 400,
'min_child_weight': 5,
'max_depth': 10,
'learning_rate': 0.05,
'colsample_bytree': 1.0
}

Evaluasi model

Dengan menggunakan nilai-nilai ini, kita dapat mengevaluasi model dan memperoleh kinerjanya sebagai berikut:

Pertama, kita inisialisasi model menggunakan hiperparameter terbaik sebelum pelatihan.

# Initialize and train the model
model_random_search = xgb.XGBRegressor(**params_random_search)
model_random_search.fit(X_train, y_train)

Kemudian, model dievaluasi pada data uji

predictions_random_search = model_random_search.predict(X_test)
mse_random_search = mean_squared_error(y_test, predictions_random_search)
print("MSE for Random Search: ", mse_random_search)

Eksekusi kode di atas yang berhasil menghasilkan nilai mean square error berikut:

MSE untuk XGBosst menggunakan hiperparameter pencarian acak

Penyetelan hiperparameter dengan Optimisasi Bayesian

Mirip dengan pencarian acak, kita menerapkan proses langkah demi langkah untuk menghasilkan hiperparameter terbaik menggunakan optimisasi Bayesian.

Menetapkan batas parameter

Batas untuk hiperparameter didefinisikan dalam sebuah daftar baysian_opt_bounds. Setiap hiperparameter direpresentasikan sebagai kamus dengan kunci: name, type, dan domain.

  • max_depth, min_child_weight, n_estimators adalah variabel diskret.
  • subsample, colsample_bytree, learning_rate adalah variabel kontinu.
  • domain menentukan rentang nilai untuk setiap hiperparameter.
baysian_opt_bounds = [
	{'name': 'max_depth', 'type': 'discrete', 'domain': (3, 10, 5, 15)},
	{'name': 'min_child_weight', 'type': 'discrete', 'domain': (1, 5, 10)},
	{'name': 'subsample', 'type': 'continuous', 'domain': (0.5, 1.0)},
	{'name': 'colsample_bytree', 'type': 'continuous', 'domain': (0.5, 1.0)},
	{'name': 'n_estimators', 'type': 'discrete', 'domain': (100, 200, 300, 400)},
	{'name': 'learning_rate', 'type': 'continuous', 'domain': (0.01, 0.2)}
]

Mendefinisikan fungsi objektif

Sebuah fungsi objektif xgb_cv_score didefinisikan untuk menghitung negative mean squared error tervalidasi-silang dari model XGBoost.

  • Fungsi menerima sekumpulan parameter dan mengonversinya ke format yang diperlukan.
  • cross_val_score digunakan untuk mengevaluasi model XGBoost menggunakan parameter yang ditentukan.
  • Rata-rata negatif dari skor validasi silang dikembalikan sebagai objektif untuk diminimalkan.
def xgb_cv_score(parameters):
	parameters = parameters[0]
	score = -cross_val_score(
            	xgb.XGBRegressor(
                	max_depth=int(parameters[0]),
                	min_child_weight=int(parameters[1]),
                	subsample=parameters[2],
                	colsample_bytree=parameters[3],
                	n_estimators=int(parameters[4]),
                	learning_rate=parameters[5]),
            	X_train, y_train, scoring='neg_mean_squared_error', cv=3).mean()
	return score

Inisialisasi dan menjalankan model Bayesian

Optimisasi Bayesian diinstansiasi dengan parameter berikut:

  • f=xgb_cv_score: Fungsi objektif yang akan diminimalkan.
  • domain=baysian_opt_bounds: Batas hiperparameter.
  • model_type='GP': Menentukan penggunaan Gaussian Processes.
  • acquisition_type='EI': Menggunakan Expected Improvement sebagai fungsi akuisisi.
  • max_iter=25: Jumlah iterasi untuk proses optimisasi.

Proses optimisasi dimulai dengan optimizer.run_optimization()

optimizer = BayesianOptimization(
	f=xgb_cv_score, domain=baysian_opt_bounds, model_type='GP',
	acquisition_type='EI', max_iter=25
)
optimizer.run_optimization()

Mengakses parameter terbaik

Setelah optimisasi, parameter terbaik diekstrak dan diformat:

  • Parameter diambil dari optimizer.x_opt.
  • Parameter diskret (max_depth, min_child_weight, n_estimators) diubah tipenya menjadi integer.

Parameter terbaik dicetak:

print("Bayesian Optimization Best Parameters:", best_params_bayesian)

Bayesian optimization best parameters

Parameter terbaik optimisasi Bayesian

Evaluasi model

Proses inisialisasi dan pelatihan sama seperti sebelumnya. Namun kali ini, kita menggunakan parameter dari optimisasi Bayesian:

params_bayesian_opt = {
	'max_depth': 10,
	'min_child_weight': 10,
	'subsample': 0.820222997732141,
	'colsample_bytree': 0.6710357796023916,
	'n_estimators': 300,
	'learning_rate': 0.04797554348030097
}

# Initialize and train the model
model_bayesian_opt = xgb.XGBRegressor(**params_bayesian_opt)
model_bayesian_opt.fit(X_train, y_train)

# Make predictions and evaluate
predictions_bayesian_opt = model_bayesian_opt.predict(X_test)
mse_bayesian_opt = mean_squared_error(y_test, predictions_bayesian_opt)
print("MSE for Bayesian Optimization: ", mse_bayesian_opt)

Kinerja model ditampilkan setelah berhasil mengeksekusi kode di atas, dan hasilnya diberikan di bawah:

MSE for XGBosst using Random search hyperparameters

MSE untuk XGBosst menggunakan hiperparameter optimisasi Bayesian

Interpretasi hasil

Dari dua eksperimen, kita melihat bahwa:

  • MSE lebih rendah pada Optimisasi Bayesian: Model yang dilatih dengan hiperparameter dari Optimisasi Bayesian memiliki MSE yang lebih rendah (0,204) dibandingkan dengan yang dari Pencarian Acak (0,219). Nilai yang lebih rendah ini menunjukkan bahwa model, secara rata-rata, lebih dekat dengan titik data sebenarnya.
  • Kinerja Model: MSE yang lebih rendah menunjukkan bahwa metode Optimisasi Bayesian lebih efektif dalam menyetel hiperparameter untuk model XGBoost. Hasil ini menunjukkan bahwa model yang disetel oleh Optimisasi Bayesian lebih baik dalam menggeneralisasi dari data latih ke data yang belum pernah dilihat (dalam hal ini, himpunan uji).
  • Efisiensi optimisasi Bayesian: Optimisasi Bayesian umumnya menghasilkan kinerja yang lebih baik dalam penyetelan hiperparameter karena menggunakan model probabilistik untuk memandu pencarian parameter terbaik. Metode ini belajar dari evaluasi sebelumnya dan mengarahkan pencarian ke hiperparameter yang paling menjanjikan, yang sering kali menghasilkan nilai yang lebih baik daripada Pencarian Acak.

Dalam kasus khusus ini, metode Optimisasi Bayesian memberikan hasil yang lebih baik sebagaimana dibuktikan oleh MSE yang lebih rendah. Ini menunjukkan bahwa untuk dataset dan model (XGBoost) tertentu ini, Optimisasi Bayesian lebih efektif dalam mengidentifikasi seperangkat hiperparameter yang meminimalkan kesalahan prediksi pada himpunan uji.

Penting untuk dicatat bahwa meskipun Optimisasi Bayesian menunjukkan kinerja lebih baik pada contoh ini, pilihan antara Pencarian Acak dan Optimisasi Bayesian dapat bergantung pada berbagai faktor seperti kompleksitas model, sifat data, dan sumber daya komputasi.

Namun, pada skenario di mana ketepatan dalam penyetelan hiperparameter sangat penting dan sumber daya komputasi memungkinkan, Optimisasi Bayesian sering terbukti menjadi pilihan yang lebih unggul.

Kesimpulan

Artikel ini telah memberikan eksplorasi menyeluruh tentang Optimisasi Bayesian, sebuah teknik kunci dalam mengoptimalkan fungsi-fungsi kompleks.

Kita mulai dengan mendefinisikan apa itu optimisasi Bayesian sebelum membahas tantangan dalam optimisasi fungsi, yang mengarah pada relevansi Optimisasi Bayesian.

Melalui panduan praktis, kita meninjau aspek implementasi, berfokus pada Gaussian Process Regression dan fungsi akuisisi. Bagian penting dari diskusi berpusat pada penerapan Optimisasi Bayesian untuk penyetelan hiperparameter dalam model pembelajaran mesin, menampilkan kegunaannya di dunia nyata.

Secara keseluruhan, artikel ini berfungsi sebagai tinjauan pengantar sekaligus panduan praktis, menyoroti peran krusial Optimisasi Bayesian dalam pembelajaran mesin dan optimisasi komputasional.

Artikel ini menawarkan wawasan berharga bagi praktisi, peneliti, dan penggemar di bidang ini, menekankan keterterapan dan dampak metodenya dalam tantangan komputasional modern.

Bagi yang ingin memperdalam keterlibatan dengan optimisasi Bayesian dan implementasinya di Python, kursus kami Hyperparameter Tuning in Python menyediakan pengalaman praktis menggunakan beberapa metodologi umum untuk penyetelan hiperparameter otomatis dengan pustaka Scikit Learn. Beberapa metodologi lanjutan mencakup algoritma Bayesian dan Genetika.


Zoumana Keita 's photo
Author
Zoumana Keita
LinkedIn
Twitter

Seorang data scientist serbabisa yang senang berbagi pengetahuan dan memberi dampak bagi orang lain, Zoumana adalah pembuat konten di YouTube dan penulis teknologi teratas di Medium. Ia menikmati berbicara di depan umum, ngoding, dan mengajar. Zoumana meraih dua gelar magister: yang pertama di bidang ilmu komputer dengan fokus Machine Learning di Paris, Prancis, dan yang kedua di bidang Data Science dari Texas Tech University di AS. Kariernya dimulai sebagai Pengembang Perangkat Lunak di Groupe OPEN, Prancis, lalu bergabung dengan IBM sebagai Konsultan Machine Learning, di mana ia mengembangkan solusi AI end-to-end untuk perusahaan asuransi. Zoumana kemudian bergabung dengan Axionable, startup AI Berkelanjutan pertama yang berbasis di Paris dan Montreal. Di sana, ia berperan sebagai Data Scientist dan mengimplementasikan produk AI, terutama use case NLP, untuk klien dari Prancis, Montreal, Singapura, dan Swiss. Selain itu, 5% dari waktunya didedikasikan untuk Riset dan Pengembangan. Saat ini, ia bekerja sebagai Senior Data Scientist di IFC - World Bank Group.

Topik
Analisis Data
Machine Learning

Lanjutkan Belajar Optimisasi Bayesian!

Kursus

Penyetelan Hyperparameter di Python

4 jam
25.4K
Pelajari teknik-teknik untuk penyesuaian hiperparameter otomatis dalam Python, termasuk Grid, Random, dan Informed Search.
Lihat DetailRight Arrow
Mulai Kursus
Lihat SelengkapnyaRight Arrow
Terkait

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

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

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

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 SelengkapnyaLihat Selengkapnya