0% menganggap dokumen ini bermanfaat (0 suara)
22 tayangan10 halaman

Validasi Model dengan RapidMiner

Modul ini membahas tentang validasi model dengan split validation dan cross validation di Rapidminer. Split validation melibatkan pemisahan dataset menjadi data latih dan data uji, sedangkan cross validation melibatkan pemisahan dataset menjadi beberapa bagian untuk melatih dan menguji model secara berulang."

Diunggah oleh

Gideon Saroinsong
Hak Cipta
© All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai PDF, TXT atau baca online di Scribd
0% menganggap dokumen ini bermanfaat (0 suara)
22 tayangan10 halaman

Validasi Model dengan RapidMiner

Modul ini membahas tentang validasi model dengan split validation dan cross validation di Rapidminer. Split validation melibatkan pemisahan dataset menjadi data latih dan data uji, sedangkan cross validation melibatkan pemisahan dataset menjadi beberapa bagian untuk melatih dan menguji model secara berulang."

Diunggah oleh

Gideon Saroinsong
Hak Cipta
© All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai PDF, TXT atau baca online di Scribd

Modul 3

Split Validation (Training Error & Test Error) dan Cross


Validation pada Rapidminer

Kita harus yakin bahwa model yang dibuat merupakan model terbaik
yang akan memberikan hasil maksimal dan akurat. Oleh karena itu, kita
perlu melakukan validasi terhadap model sebelum digunakan untuk
produksi. Validasi model adalah mengukur kinerja model dengan
menghitung segala bentuk tingkat kesalahan prediksi pada model. Lalu
mengapa perlu mengetahui kinerja model tersebut? dengan
mengetahui kinerja model dapat membantu kita untuk
mengoptimalkan parameter pada model itu sendiri sehingga model
jauh lebih akurat. Kita juga dapat memilih model dengan algoritma
terbaik karena setiap algoritma memiliki karateristik yang berbeda. Dan
yang terpenting adalah kita dapat mengetahui seberapa baik kinerja
model tersebut sebelum digunakan dalam produksi.

Ada dua teknik validasi yang digunakan untuk memvalidasi model:

1. Split validation: melakukan validasi sederhana dengan membagi


dataset secara acak menjadi dua data terpisah — data latih & data uji.

2. Cross validation: melakukan validasi berulang di mana dataset


dibagi menjadi banyak subset (himpunan) data latih & validasi.
Setiap iterasi memvalidasi (menguji) satu subset data dengan subset
yang tersisa sebagai data latih. Pada cross validation, # subset data
adalah jumlah iterasi.
1. Split Validation (Training Error & Test Error)

Salah satu cara mengetahui kinerja model adalah dengan mengukur


akurasinya (meskipun akurasi bukan satu-satunya parameter yang
digunakan untuk mengukur kinerja suatu model). Ada dua konsep
pada split validation: training error dan test error.

1. Training error didapatkan dengan menghitung kesalahan


klasifikasi model pada data yang sama dengan model yang dilatih.

2. Test error didapatkan dengan menggunakan dua data yang


sepenuhnya terpisah. Satu untuk melatih model (data latih) dan
lainnya untuk menghitung kesalahan klasifikasi (data uji). Kedua
dataset harus memiliki nilai label yang sama.

Traning Error

Nilai traning error didapatkan dengan menggunakan data yang sama


untuk melatih dan menguji model. Perhatikan proses pada Gambar 1.

Gambar 1. Proses mencari nilai training error.

Pada praktik ini, kita menggunakan data sonar yang telah tersedia
di repository RapidMiner. Operator performance digunakan untuk
mengevaluasi kinerja model yang memberikan daftar nilai kriteria
kinerja secara otomatis sesuai dengan tugas yang diberikan. Misalkan
untuk klasifikasi, kriteria yang diberikan
adalah accuracy, precision dan recall.

Jika proses dijalankan maka menghasilkan performance


metrics seperti Gambar 2.

Gambar 2. Performance metrics traning error.

Dari confusion matrix pada Gambar 2, nilai akurasi yang didapatkan


sebesar 86.54%. Apakah model tersebut merupakan model yang terbaik
karena memiliki akurasi tinggi ?

Diatas telah dijelaskan bahwa training error merupakan kesalahan


klasifikasi yang didapatkan menggunakan data yang sama untuk
melatih dan menguji model. Karena data yang digunakan sama, maka
kemungkinan hasil prediksi “benar” yang diberikan model sangatlah
besar. Oleh karena itu saya menyarankan anda untuk menggabaikan
nilai training error meskipun memiliki akurasi yang tinggi karena
selalu memberikan estimasi yang terlalu “optimis”. Sayangnya, banyak
referensi yang memberikan nilai training error sebagai hasil akhirnya.
Sebenarnya ini adalah praktik yang buruk dan harus dihindari.

Hal terbaik yang bisa dilakukan adalah memberikan estimasi seberapa


baik kinerja model di masa depan. Jika dilakukan dengan cara yang
benar, estimasi ini akan mendekati apa yang dapat dicapai tetapi tidak
ada jaminan bahwa kinerja yang diperkirakan akan persis seperti yang
diharapkan.

Test error: data latih & data uji

Test error adalah perkiraan yang jauh lebih baik tentang seberapa baik
kinerja model untuk kasus-kasus baru dan tak terlihat di masa depan.
Diatas telah disinggung untuk mendapatkan test error diperlukan dua
data yang sepenuhnya terpisah yaitu data latih dan data uji.
Kebanyakan dataset yang kita miliki belum memiliki data uji. Untuk
mengatasi hal tersebut, pada RapidMiner telah disediakan operator
split data yang dapat digunakan untuk membagi dataset menjadi
partisi data latih dan data uji sesuai porsi yang ditentukan. Perhatikan
proses pada Gambar 3.

Gambar 3. Proses membagi dataset menjadi data uji & data latih.

Untuk membaginya anda harus menambahkan rasio pada


paramater partition. Jumlah rasio dari semua partisi harus bernilai
total 1.0 (satu). Karena kita ingin melatih model sebaik mungkin maka
rasio partisi untuk data latih harus lebih besar dari rasio partisi data uji.
Pada praktik ini saya membagi 80% dari dataset sebagai data latih dan
sisanya 20% dari dataset sebagai data uji. Perhatikan gambar 4 dibawah
ini.
Gambar 4. Rasio 0.8 untuk partisi data latih dan 0.2 untuk partisi data uji.

Sedangkan operator store pada Gambar 3 digunakan untuk


menyimpan objek hasil partisi dari operator split
data ke repository RapidMiner. Objek yang disimpan dapat digunakan
untuk proses lain dengan menggunakan operator retrieve.

Gunakan data latih dan data uji yang telah disiapkan sebelumnya untuk
mendapatkan nilai test error. Perhatikan proses pada Gambar 5.

Gambar 5. Proses mencari nilai test error.

Gambar 6. Performance metrics test error


Dari confusion matrix pada Gambar 6, nilai akurasi yang
dihasilkan test error sebesar 56.29%. Jauh berbeda dengan nilai
akurasi yang didapatkan training error pada gambar 2 sebesar 86.54%.
Karena menggunakan data yang terpisah untuk melatih dan menguji
model, bisa jadi data yang diuji tidak dilatih pada model sehingga
menghasilkan banyak prediksi “salah”. Oleh karena itu, sangat penting
untuk memahami perbedaan antara training error dan test error.

Biasanya, model akan semakin baik jika menggunakan lebih banyak


data latih. Hal ini akan mempengaruhi kita untuk menggunakan data
sebanyak mungkin untuk melatih model. Pada saat yang sama, anda
ingin menggunakan data sebanyak mungkin untuk menguji model
sehingga mendapatkan kesalahan prediksi pada pengujian model yang
jauh lebih baik. Lalu, apakah ada cara yang lebih baik untuk
memvalidasi sebuah model ?

2. Cross Validation

Dari dua percobaan diatas kita setuju bahwa menggunakan data uji dari
dataset untuk menghitung test error merupakan cara yang lebih baik
untuk mendapatkan estimasi yang lebih handal pada akurasi model di
masa mendatang. Menggunakan data uji juga pendekatan yang efisien
untuk memvalidasi model. Tetapi pada praktiknya masih ada potensi
masalah yang timbul: bagaimana mengetahui data uji tersebut tidak
terlalu mudah untuk model? Bisa jadi sampel acak yang dipilih tidak
begitu acak, terutama jika hanya memiliki dataset yang sedikit. Dalam
kasus tersebut, test error yang dihasilkan mungkin kurang mewakili
akurasi model.
Dari permasalahan tersebut, ide yang muncul adalah
mengulangi sampling data uji beberapa kali dan menggunakan sampel
yang berbeda untuk setiap kali pengujian. Misalnya dengan membuat
10 sampel data uji berbeda yang digunakan untuk mencari 10 kali nilai
test error. Dengan cara ini dapat diketahui rata-rata nilai dari 10 test
error. Prosedur ini merupakan cara standar untuk memvalidasi model
tetapi memerlukan waktu yang lebih lama. Meskipun pada prinsipnya
dengan mencari rata-rata nilai test error lebih dari satu kali pengujian
lebih unggul daripada test error tunggal, tetapi cara ini masih juga
memiliki satu kelemahan yaitu: beberapa baris data yang digunakan
dalam beberapa sampel data uji mungkin belum digunakan untuk
pengujian sama sekali. Sebagai akibatnya, kesalahan yang dibuat pada
baris yang diulang memiliki dampak yang lebih tinggi pada kesalahan
pengujian yang lain. Jadi apa yang sebaiknya dilakukan ?

Jawabannya: k-fold cross validation.

K-fold merupakan salah satu metode cross validation. Konsep k-fold


cross validation tidak hanya membuat beberapa sampel data uji
berulang kali, tetapi membagi dataset menjadi bagian terpisah dengan
ukuran yang sama. Model dilatih oleh subset data latih dan divalidasi
oleh subset validasi (data uji) sebanyak k. Dengan k-fold cross
validation dapat mengurangi waktu komputasi dengan tetap menjaga
keakuratan estimasi model. Gambar 7 menunjukkan bagaimana
prinsip cross validation.
Gambar 7. Konsep cross validation.

Pada RapidMiner, operator cross validation adalah operator yang


bersarang yang memiliki dua subproses: subproses training yang
digunakan untuk melatih model dan subproses testing untuk pengujian
sekaligus mengukur kinerja model. Perhatikan proses pada Gambar 8
dan Gambar 9.

Gambar 8. Proses cross validation.

Gambar 9. Subproses pada operator cross validation.


Operator cross validation memiliki parameter yang dapat
digunakan. Number of folds digunakan untuk memberikan
nilai k (jumlah iterasi). Sampling type digunakan untuk memilih
teknik sampling yang membagi dataset.

Gambar 10. Parameter pada operator cross validation.

Gambar 11. Performance metrics dari 10 fold cross validation.

Dari confusion matrix pada Gambar 11, nilai akurasi yang dihasilkan
dari 10 fold cross validation sebesar 80.71% dengan standar deviasi
(+/-) sebesar 13.32%. Ketika mengukur kinerja model
menggunakan cross validation maka akurasi yang dihasilkan memiliki
standar deviasi atau simpangan baku yaitu ukuran penyebaran data
yang menunjukan jarak rata-rata dari nilai tengah ke suatu titik nilai.
Semakin besar simpangan baku yang dihasilkan, maka penyebaran dari
nilai tengahnya juga besar, begitu pula sebaliknya. Tujuan simpangan
baku adalah melihat jarak antara rata-rata akurasi dengan akurasi
setiap percobaan (iterasi).

Kita dapat menghitung seberapa baik kinerja model dengan


membandingkan nilai prediksi dengan nilai sebenarnya untuk y.
Validasi model adalah langkah “wajib” sebelum anda menerapakan
model.

Common questions

Didukung oleh AI

Nilai test error dianggap lebih baik karena menggunakan data yang sepenuhnya terpisah untuk melatih dan menguji model, yang memberikan perkiraan lebih realistis tentang seberapa baik kinerja model dengan data yang belum terlihat. Berbeda dengan training error, yang seringkali terlalu optimis karena menguji model dengan data yang sama dengan data pelatihan .

Rasio pembagian data pada split validation mempengaruhi jumlah data yang tersedia untuk pelatihan dan uji, yang akan berkorelasi dengan seberapa baik model dapat belajar dan diuji. Sebaiknya lebih banyak data dialokasikan untuk pelatihan demi mengoptimalkan pembelajaran model, biasanya dalam rasio 80:20 untuk pelatihan dan pengujian, agar model dapat menangkap lebih banyak fitur kompleks tanpa terlalu sedikit data uji untuk pengukuran validitas .

Konsep dasar cross validation adalah membagi dataset menjadi beberapa subset, melatih model di satu bagian, dan menguji di bagian lain. Dalam RapidMiner, cross validation dilakukan dengan operator bersarang yang memiliki subproses untuk pelatihan dan pengujian, dan memungkinkan kontrol parameter seperti jumlah folds untuk iterasi dan tipe sampling .

Penting untuk memilih algoritma terbaik dan mengoptimalkan parameter untuk memastikan model memberikan performa maksimal dan akurat dalam aplikasi dunia nyata. Algoritma yang cocok memiliki karakteristik unik yang selaras dengan kebutuhan spesifik dari masalah yang dihadapi, dan optimalisasi parameter memastikan model menggunakan strategi terbaik untuk meminimalkan kesalahan dan meningkatkan prediksi .

Pentingnya memahami perbedaan tersebut adalah untuk memastikan model dapat diterapkan secara efektif dalam kasus nyata. Training error biasanya terlalu optimis karena diuji pada data yang sama dengan data training, sedangkan test error memberikan indikasi lebih realistis tentang performa model pada data baru, sehingga mengurangi risiko performa buruk saat diterapkan di dunia nyata .

K-fold cross validation mengurangi waktu komputasi dengan membagi dataset menjadi beberapa bagian yang memiliki ukuran setara. Model dilatih dan divalidasi bergantian dengan subset data latih dan uji tersebut, sehingga memanfaatkan seluruh data yang ada secara efisien dalam berbagai iterasi (folds), dan mendapatkan rata-rata skor akurasi yang lebih representatif .

Kelemahan dari pengetesan berulang dengan banyak sampel adalah kemungkinan beberapa baris data tidak pernah digunakan untuk pengujian karena sampling berulang, yang dapat menghasilkan bias tinggi. Cara mengatasinya adalah menggunakan k-fold cross validation yang menjamin tiap data unit digunakan untuk pengujian tepat sekali, mengurangi bias dan memberikan estimasi akurasi yang lebih stabil .

Potensi masalah dari pendekatan split validation adalah kemungkinan bahwa data uji yang dipilih tidak cukup mewakili distribusi sebenarnya dari data, terutama jika datasetnya kecil. Sampel acak mungkin tidak benar-benar acak, menyebabkan estimasi yang kurang andal dari akurasi model .

Keuntungan dari cross validation adalah memberikan estimasi kinerja model yang lebih stabil dan representatif dengan melibatkan seluruh dataset untuk pelatihan dan pengujian selama beberapa iterasi. Ini mengurangi kemungkinan bias dari sampel yang dipilih untuk pengujian tunggal, yang mungkin tidak acak sepenuhnya .

Ya, standar deviasi dalam k-fold cross validation menunjukkan penyebaran akurasi hasil dari tiap iterasi (fold). Semakin kecil standar deviasi, semakin konsisten dan stabil akurasi model pada setiap fold; sebaliknya, standar deviasi yang besar menandakan variasi tinggi dan kemungkinan ketidakstabilan performa model .

Anda mungkin juga menyukai