Improving Model Accuracy
Introduction
Dalam meningkatkan akurasi model, faktor utama yang perlu disesuaikan adalah hyperparameter. Sebelum mempelajari lebih lanjut cara meningkatkan akurasi model, kita harus mengetahui dan memahami apa yang kita perlu disesuaikan yakni hyperparameter. Secara garis besar hyperparameter adalah aspek yang mempengaruhi arsitektur model yang kita buat. Selama model dilatih, hyperparameter tidak dapat disesuaikan karena hyperparameter sendiri mempengaruhi arsitektur dari model itu sendiri, sehingga jika arsitektur diubah maka optimasi parameter tidak ada maknanya karena arsitekturnya sudah berbeda. Tidak seperti hyperparameter, parameter dapat disesuaikan selama model dilatih.
Parameter dan Hyperparameter
Parameter
adalah variabel dari model yang akan di update nilainya selama proses training. Dalam hal ini, parameter model adalah : Bobot dan Bias dari model. Jumlah parameter yang di update menunjukkan tingkat kompleksitas dari sebuah model. Semakin besar jumlah parameter, semakin kompleks model tersebut.
hyperparameter
Adalah variabel yang menentukan bagaimana sebuah model dilatih. Hyperparameter ini tidak diupdate selama proses training. Namun dalam bidang AutoML, bisa jadi hyperparameter akan di update dalam proses training untuk mencari kombinasi hyperparameter yang terbaik untuk suatu model.
Beberapa hyperparameter umum adalah:
Learning rate
Batch size
Number of epochs to train the model
Number of hidden layers
Number of neurons in each layer
Activations functions
Hyperparameter Tuning
Hyperparameter tuning adalah proses mencari parameter terbaik untuk suatu model machine learning dengan menguji dan membandingkan berbagai kombinasi hyperparameter. Terdapat beberapa metode yang dapat digunakan untuk melakukan hyperparameter tuning, di antaranya adalah:
1. Grid Search: Metode ini mencari parameter terbaik dengan melakukan uji coba pada semua kombinasi hyperparameter yang diberikan. Meskipun metode ini dapat menemukan parameter terbaik, namun sangat memakan waktu dan tidak efisien jika jumlah hyperparameter yang diuji sangat banyak.
2. Random Search: Metode ini memilih beberapa kombinasi hyperparameter secara acak dan melakukan uji coba pada kombinasi tersebut. Random search lebih cepat daripada grid search, tetapi masih mungkin melewatkan kombinasi hyperparameter terbaik.
3. Bayesian Optimization: Metode ini menggunakan model probabilistik untuk mencari parameter terbaik. Bayesian optimization mencoba menggabungkan keuntungan dari grid search dan random search untuk menghemat waktu dan mendapatkan hasil yang lebih baik.
4. Gradient-based Optimization: Metode ini menggunakan algoritma gradient untuk memperbarui parameter dalam model machine learning. Metode ini membutuhkan waktu lebih sedikit daripada grid search dan random search, namun mungkin memerlukan pengaturan awal yang lebih sulit dan tidak selalu menemukan parameter terbaik.
Kombinasi dari beberapa metode di atas juga dapat digunakan untuk mencari parameter terbaik dalam model machine learning.
Setelah kita memahami pentingnya melakukan Hyperparameter Tuning untuk meningkatkan akurasi, kita juga harus memahami terkadang hasil dari tuning yang kita lakukan juga masih menghasilkan bias pada hasil yang dikeluarkan. Untuk mengatasi hal ini terdapat suatu metode bernama Ensemble Learning.
Ensemble Learning bekerja seperti halnya manusia meminta pendapat saat bingung dalam pengambilan keputusan. Yap, kita perlu banyak kepala! Dalam kasus AI ini kita membuat model yang membuat prediksi berdasarkan keluaran prediksi sejumlah model.
Ensemble Learning
Ensemble Learning adalah salah satu teknik dalam machine learning yang melibatkan penggunaan beberapa model machine learning untuk menghasilkan prediksi yang lebih akurat. Teknik ini bekerja dengan cara menggabungkan beberapa model yang telah dilatih secara terpisah dan menghasilkan prediksi akhir berdasarkan hasil gabungan dari model-model tersebut.
Dalam Ensemble Learning, terdapat beberapa metode yang dapat digunakan, di antaranya adalah:
1. Bagging (Bootstrap Aggregating): Metode ini melibatkan penggunaan beberapa model machine learning yang dilatih pada subset yang berbeda dari data pelatihan yang sama. Setiap model kemudian memberikan prediksi dan hasilnya digabungkan untuk menghasilkan prediksi akhir.
2. Boosting: Metode ini melatih model secara berurutan dengan memberikan bobot lebih pada data yang salah diklasifikasikan pada iterasi sebelumnya. Hasil prediksi dari setiap model kemudian digabungkan untuk menghasilkan prediksi akhir.
Ensemble Learning dapat meningkatkan akurasi prediksi dan mengurangi overfitting pada model machine learning, sehingga sangat berguna dalam berbagai jenis masalah prediksi dan klasifikasi.
Setelah kita dapat membuat kepala yang berbeda menggunakan dua metode Ensemble, mari kita bahas dua model yang menggunakan banyak kepala ini untuk mengambil keputusan.
Decision Algorithm
Random Forest, Seperti halnya hutan yang berisi pohon-pohon yang bervariasi, Random Forest pun berisi pohon-pohon (model Decision Tree) dengan subdataset masing-masing. Pohon-pohon tersebut akan dilatih dengan subdataset yang telah dibagi dengan metode ensemble bagging, masing-masing pohon melakukan prediksi, dan hasil prediksi masing-masing pohon akan dipertimbangkan untuk mengambil keputusan akhir.
AdaBoost (Adaptive Boost). Tidak seperti Random Forest yang menggunakan ensemble method bagging, AdaBoost menggunakan Boosting. Sehingga model dilatih menggunakan dataset yang sama dengan bobot yang disesuaikan. Tiap model yang dibuat akan diukur bobot error nya masing-masing. Dari bobot error tersebut akan menentukan tingkat kuasa model dalam mempengaruhi hasil akhir AdaBoost, semakin tinggi bobot eror semakin rendah kuasanya dan hal ini berlaku sebaliknya juga.
Improving Model
Terdapat beberapa langkah yang dapat dilakukan untuk meningkatkan akurasi suatu model. Berikut adalah beberapa langkah tersebut:
1. Memperluas dataset: Semakin besar dataset yang digunakan, semakin baik kinerja model. Oleh karena itu, mencoba untuk menambahkan lebih banyak data ke dataset Anda dapat membantu meningkatkan akurasi model.
2. Normalisasi data: Memastikan bahwa data yang digunakan untuk melatih model ternormalisasi dapat membantu meningkatkan akurasi model. Ini dapat dilakukan dengan menggunakan teknik normalisasi seperti Z-score normalization atau Min-Max normalization.
3. Memilih fitur yang tepat: Memilih fitur yang tepat dan relevan dari dataset dapat membantu meningkatkan akurasi model. Analisis korelasi dapat digunakan untuk membantu menentukan fitur mana yang paling berpengaruh terhadap variabel target.
4. Mengevaluasi dan memilih model yang tepat: Memilih model yang tepat untuk dataset Anda sangat penting untuk meningkatkan akurasi. Pilihlah model yang paling cocok untuk dataset Anda berdasarkan jenis masalah yang dihadapi.
5. Menyetel parameter model: Menyetel parameter model dapat membantu meningkatkan akurasi model. Ini melibatkan penyesuaian parameter model seperti learning rate, jumlah epoch, dan lain-lain untuk mencapai hasil yang optimal.
6. Mengurangi overfitting: Overfitting terjadi ketika model terlalu rumit dan cocok dengan data pelatihan dengan sangat baik tetapi buruk dalam memprediksi data baru. Untuk mengurangi overfitting, teknik seperti regularisasi dapat digunakan.
7. Menambahkan lapisan atau neuron: Menambahkan lapisan atau neuron ke dalam model dapat membantu meningkatkan akurasi. Ini memungkinkan model untuk mempelajari lebih banyak fitur yang terkandung dalam dataset.
8. Menggunakan teknik ensemble: Teknik ensemble melibatkan penggabungan beberapa model untuk menghasilkan prediksi yang lebih akurat. Ini dapat membantu meningkatkan akurasi model.
9. Mengevaluasi model dengan data yang tidak dikenal: Setelah melatih model, sangat penting untuk mengevaluasi model dengan data yang tidak dikenal untuk memeriksa apakah model dapat memprediksi data yang belum pernah dilihat sebelumnya. Ini dapat membantu menghindari overfitting dan meningkatkan akurasi model.
Dengan mengikuti langkah-langkah ini, Anda dapat meningkatkan akurasi model Anda dan memastikan bahwa model Anda siap untuk digunakan pada data yang belum pernah dilihat sebelumnya.
Quiz
1. Apa yang dimaksud dengan teknik "hyperparameter tuning" dalam machine learning?
a. Teknik untuk meningkatkan interpretasi model machine learning
b. Teknik untuk menambah jumlah layer pada model machine learning
c. Teknik untuk mengoptimalkan nilai dari parameter-parameter pada model machine learning
d. Teknik untuk mengurangi overfitting pada model machine learning
2. Apa yang dimaksud dengan grid search dalam hyperparameter tuning?
a. Proses mencari konfigurasi hyperparameter secara acak
b. Proses mencari konfigurasi hyperparameter dengan algoritma pencarian yang lebih cerdas
c. Proses mencari konfigurasi hyperparameter dengan metode trial and error
d. Proses mencari konfigurasi hyperparameter dengan mencoba semua kombinasi hyperparameter yang mungkin
3. Apa yang dimaksud dengan random search dalam hyperparameter tuning?
a. Proses mencari konfigurasi hyperparameter secara acak
b. Proses mencari konfigurasi hyperparameter dengan algoritma pencarian yang lebih cerdas
c. Proses mencari konfigurasi hyperparameter dengan metode trial and error
d. Proses mencari konfigurasi hyperparameter dengan mencoba semua kombinasi hyperparameter yang mungkin
4. Apa yang dimaksud dengan Bayesian optimization dalam hyperparameter tuning?
a. Proses mencari konfigurasi hyperparameter dengan mencoba semua kombinasi hyperparameter yang mungkin
b. Proses mencari konfigurasi hyperparameter dengan algoritma pencarian yang lebih cerdas
c. Proses mencari konfigurasi hyperparameter secara acak
d. Proses mencari konfigurasi hyperparameter dengan metode trial and error
5. Apa yang dimaksud dengan Ensemble Learning dalam Machine Learning?
a. Teknik penggabungan beberapa model untuk meningkatkan akurasi prediksi
b. Teknik untuk membagi dataset menjadi beberapa bagian untuk pelatihan model
c. Teknik untuk meningkatkan interpretasi model machine learning
d. Teknik untuk mengurangi overfitting pada model machine learning
Referensi
https://tentangdata.wordpress.com/2017/09/21/definisi-optimisasi-machine learning/
https://towardsdatascience.com/hyperparameter-tuning-explained d0ebb2ba1d35
https://machinelearningmastery.com/manually-optimize-hyperparameters/ https://neptune.ai/blog/hyperparameter-tuning-in-python-complete-guide
https://buggyprogrammer.com/difference-between-bagging-and-boosting/