Sempurnakan Model Machine Learning dengan Teknik Cross-Validation
Machine Learning, sebuah konsep mesin yang dapat belajar banyak hal secara mandiri. Namun, bagaimana memilih model Machine Learning dengan tepat? cobalah untuk mempraktikkan teknik Cross-validation!
Table of Contents
Perkembangan teknologi masa kini telah begitu pesat, salah satu teknologi tersebut adalah Machine Learning, sebuah konsep yang memberikan mesin kemampuan untuk belajar secara otomatis tanpa perlu di program secara eksplisit. Machine Learning telah dimanfaatkan dalam berbagai hal, seperti memprediksi data, mengelompokkan data hingga melatih mobil otonom. Tentunya dalam pembentukan Machine Learning penting untuk memastikan model tersebut dapat diandalkan. Salah satu caranya adalah dengan memanfaatkan Cross-Validation, sebuah alat yang sangat berharga bagi Data Scientist sebab berguna untuk membangun model Machine Learning yang lebih akurat dan mengevaluasi seberapa baik model bekerja pada kumpulan data pengujian independen. Cross-Validation mudah dipahami dan diterapkan sehingga menjadikannya metode untuk membandingkan kemampuan prediktif dari berbagai model agar dapat memilih model terbaik.
Apa itu Cross-Validation?
Cross-Validation (CV) adalah teknik yang digunakan untuk menilai dan menguji kinerja (akurasinya) model Machine Learning. Hal ini dilakukan dengan mengambil sampel spesifik dari kumpulan data yang modelnya tidak dilatih. Kemudian, model tersebut diuji pada sampel ini untuk mengevaluasinya. Validasi silang juga digunakan untuk melindungi model dari overfitting (kondisi model sangat baik hanya pada data latih dan buruk ketika diuji dengan data baru), terutama jika jumlah data yang tersedia terbatas.
Sederhananya, dalam proses Cross-Validation, sampel data asli dibagi secara acak menjadi beberapa subset kemudian model Machine Learning akan dilatih pada semua subset, kecuali satu subset yang nantinya digunakan untuk menguji model dalam membuat prediksi. Dalam banyak kasus, beberapa putaran validasi silang dilakukan menggunakan himpunan bagian yang berbeda, dan hasilnya dirata-ratakan untuk menentukan model terbaik.
Dengan demikian, Cross-Validation merupakan metode validasi model yang membagi data dengan cara yang kreatif untuk mendapatkan perkiraan kinerja model yang lebih baik dan meminimalkan kesalahan ketika memvalidasi model.
Mengapa Cross-Validation Penting?
Cross-Validation sangat penting terutama jika jumlah data yang tersedia terbatas. Misalkan Anda perlu memprediksi kemungkinan ban sepeda bocor. Untuk ini, Anda telah mengumpulkan data tentang ban yang ada: usia ban, jarak tempuh yang ditempuh, bobot pengendara, dan apakah pernah bocor sebelumnya. Dalam membuat model prediktif, Anda akan menggunakan data (historis) ini untuk melatih dan menguji model.
Umumnya kita tidak boleh menggunakan semua data untuk melatih model sebab kita perlu membagi data untuk menguji atau mengevaluasi model tersebut. Kemudian menggunakan kembali set pelatihan sebagai set uji bukanlah ide bagus karena kita ingin menghasilkan model yang siap menghadapi realitas yang relatif memiliki data unik atau berbeda dengan set pelatihan.
Ide yang lebih baik adalah menggunakan Cross Validation. Misalnya kita membagi data menjadi 4 blok (deretan data yang menjadi satu bagian), tiga blok pertama dari data digunakan untuk melatih model dan menggunakan blok terakhir untuk menguji model. Kemudian dicatat seberapa baik kinerja model dengan data uji.
Setelah mencatat kinerja, kita akan menggunakan blok data ke-1, ke-2, dan ke-4 untuk dilatih dan blok ke-3 untuk diuji. Proses berlanjut sampai semua blok digunakan sekali sebagai data uji. Rata-rata dari semua hasil dihitung untuk mengevaluasi performa model. Intinya proses ini dapat dilakukan otomatis oleh mesin, proses Cross Validation ini berguna untuk pemilihan model dan membuatnya mudah untuk memeriksa seberapa baik model menggeneralisasi data baru. Selain itu, proses ini dapat mengungkapkan konsistensi data dan algoritma Machine Learning.
Jenis Cross-Validation
1. Holdout Method
Metode holdout adalah salah satu pendekatan validasi silang dasar di mana dataset asli dibagi menjadi dua bagian, yaitu data pelatihan dan data pengujian. Nantinya model dilatih pada set data pelatihan dan dievaluasi pada set data pengujian. Dalam kebanyakan kasus, ukuran dataset pelatihan dua kali lebih besar dari dataset uji, yang berarti dataset asli dibagi dalam rasio 80:20 atau 70:30. Selain itu, data diacak sebelum membaginya menjadi set pelatihan dan validasi.
Namun, ada beberapa kelemahan dari metode validasi silang ini. Karena model dilatih pada kombinasi titik data yang berbeda, model dapat menunjukkan hasil yang bervariasi setiap kali dilatih. Selain itu, kami tidak pernah dapat sepenuhnya yakin bahwa kumpulan data pelatihan yang dipilih mewakili seluruh kumpulan data.
2. K-Fold Cross-Validation
Metode k-fold cross-validation adalah versi perbaikan dari metode holdout. Ini membawa lebih banyak konsistensi pada skor model karena tidak bergantung pada bagaimana kita memilih dataset pelatihan dan pengujian.
Prosedur k-fold cross-validation dimulai dengan secara acak memisahkan dataset asli menjadi k jumlah fold atau subset. Di setiap iterasi, model dilatih pada subset k-1 dari seluruh dataset. Setelah itu, model diuji pada subset ke-k untuk memeriksa kinerjanya. Proses ini diulangi sampai semua lipatan-k berfungsi sebagai set evaluasi. Hasil setiap iterasi dirata-ratakan, dan ini disebut akurasi validasi silang.
Teknik k-fold cross-validation umumnya menghasilkan model yang kurang bias karena setiap titik data dari dataset asli akan muncul di set pelatihan dan pengujian. Metode ini optimal jika Anda memiliki jumlah data yang terbatas. Namun, seperti yang diharapkan, proses ini mungkin memakan waktu karena algoritma harus menjalankan ulang k kali dari awal.
3. Stratified K-Fold Cross-Validation
Ketika kita mengocok data secara acak dan membaginya menjadi subset, ada kemungkinan berakhir dengan himpunan bagian yang tidak seimbang. Hal ini dapat menyebabkan pelatihan menjadi bias sehingga menghasilkan model yang tidak akurat.
Untuk menghindari situasi seperti itu, lipatan distratifikasi menggunakan proses yang disebut stratifikasi. Dalam stratifikasi, data diatur ulang untuk memastikan bahwa setiap subset merupakan representasi yang baik dari keseluruhan dataset.
4. Leave-P-Out Cross-Validation
Leave-P-Out Cross-Validation (LpOCV) adalah metode lengkap di mana p jumlah titik data diambil dari jumlah total sampel data untuk menjadi data uji.
Model dilatih pada titik data dan kemudian diuji pada titik data p (bisa 1, 2, 5, disesuaikan dengan kebutuhan pengguna). Proses yang sama diulangi untuk semua kemungkinan kombinasi p dari sampel asli. Terakhir, hasil dari setiap iterasi dirata-ratakan untuk mencapai akurasi validasi silang.
5. Leave-One-Out Cross-Validation
Pendekatan leave-one-out Cross-Validation (LOOCV) merupakan versi LpOCV yang disederhanakan. Dalam teknik Cross Validation ini, nilai p ditetapkan menjadi satu, apabila lebih dari satu data maka disebut LpOCV. Namun, pelaksanaan metode ini mahal dan memakan waktu karena model harus dipasang berkali-kali.
Aplikasi Cross-Validation
Aplikasi utama validasi silang adalah untuk mengevaluasi kinerja model pembelajaran mesin. Ini membantu membandingkan metode pembelajaran mesin dan menentukan mana yang ideal untuk memecahkan masalah tertentu. Dalam hal ini Cross Validation memainkan peran memastikan model sudah baik sehingga siap masuk ke tahap testing atau pengujian yang memiliki data relatif berbeda dengan data latih sebab tujuan tahap testing menjadi landasan apakah model dapat digunakan secara luas.
Misalnya, Anda mempertimbangkan K-Nearest Neighbor (KNN) atau Principal Component Analysis (PCA) untuk melakukan pengenalan karakter optik. Dalam hal ini, Anda dapat menggunakan validasi silang untuk membandingkan keduanya berdasarkan jumlah karakter yang salah diklasifikasikan oleh masing-masing metode alias seberapa akurat setiap model.
Keterbatasan Cross-Validation
Tantangan utama validasi silang adalah kebutuhan akan sumber daya komputasi yang berlebihan, terutama dalam metode seperti k-fold Cross-Validation. Karena algoritma harus dijalankan ulang dari awal sebanyak k kali, diperlukan perhitungan k kali lebih banyak untuk mengevaluasi.
Keterbatasan lain adalah terkait data. Dalam validasi silang, kumpulan data uji adalah kumpulan data tak terlihat yang digunakan untuk mengevaluasi kinerja model. Secara teori, ini adalah cara yang bagus untuk memeriksa cara kerja model karena menguji dengan “soal berbeda”. Namun, cenderung tidak akan ada sekumpulan data tak terlihat yang komprehensif dalam praktiknya, dan seseorang tidak akan bisa memprediksi jenis data apa yang sesungguhnya yang mungkin dihadapi model di masa depan.
Kesimpulan
Kita telah mempelajari banyak hal terkait Cross Validation, sebuah teknik yang digunakan untuk menilai dan menguji kinerja (akurasinya) model Machine Learning. Cross Validation sangat penting terutama jika jumlah data yang tersedia terbatas karena tetap dapat melatih dan mengevaluasi model secara komprehensif.
Selanjutnya kita juga berkenalan dengan jenis Cross-Validation, yaitu Holdout Method, K-Fold Cross-Validation, Stratified K-Fold Cross-Validation, dan Leave-P-Out Cross-Validation, serta Leave-One-Out Cross-Validation. Setelah itu, kita juga membahas aplikasi Cross-Validation, yang intinya adalah mengevaluasi model dan mempersiapkannya untuk masuk pada tahap testing (tahap sebelum Machine Learning digunakan secara luas).
Terakhir kita juga membahas batasan atau tantangan Cross Validation, yaitu sumber daya komputasi yang berlebihan dan memastikan pemilihan data yang tepat untuk mengevaluasi model.Cross Validation menjadi salah satu bagian dalam Machine Learning (ML) yang memiliki segudang manfaat untuk mengolah dan memprediksi data di masa depan.
Jika Anda tertarik mempelajari berbagai hal terkait Machine Learning dan pemanfaatannya lebih lanjut hingga berkarir di dunia data hingga #JadiTalentaDataa handal, Anda dapat mengikuti Bootcamp Algoritma Data Science yang memiliki serangkaian program yang dapat membantu Anda menguasai dunia data di industri yang Anda minati. Yuk, bergabung bersama Algoritma sekarang!