Skip to content Skip to sidebar Skip to footer

Penerapan Cross Validation Sebagai Metode Pengujian Sistem

Setelah membuat berbagai aplikasi berbasis data mining menggunakan aneka varian metode, maka langkah selanjutnya yang tidak kalah penting adalah melakukan evaluasi. Evaluasi dimaksudkan untuk menguji aplikasi data mining yang telah kita buat agar didapatkan prosentase keakuratan sistem.

Ada berbagai cara dalam melakukan evaluasi. Evaluasi ternyata tidak sesederhana yang kita bayangkan. Jika kita memiliki data yang kita gunakan dalam proses pelatihan. Maka tidak serta merta data itu dapat digunakan sebagai indikator keberhasilan sistem. Oleh karenanya, kita membutuhkan metode tertentu untuk memprediksi performa berdasarkan eksperimen, untuk berbagai macam data selain data training tersebut.

Metode yang cukup populer untuk evaluasi adalah metode validasi silang (cross validation). Metode ini membagi data menjadi dua bagian, yaitu data pelatihan dan data pengujian. Selanjutnya, setelah data diuji dilakukan proses silang dimana data pengujian lantas dijadikan data pelatihan ataupun sebaliknya, data pelatihan sebelumnya dijadikan kini menjadi data pengujian.

Berikut contoh implementasi metode evaluasi cross validation menggunakan Matlab. Hebatnya, matlab telah menyediakan fungsi cross validation bernama crossvalind, yang dapat teman-teman lihat penggunaannya pada help matlab.

Kita akan mengambil contoh kasus penerimaaan mahasiswa menggunakan metode K-Nearest Neighbourhood (KNN), sebelumnya telah saya ulas dalam postingan Pengklusteran k-Nearest Neighbourhood Untuk Penentuan Beasiswa. Sistem itulah yang sekarang ini akan kita uji menggunakan metode cross validation untuk mengetahui tingkat keakuratannya.

Berikut ini adalah data penerima mahasiswa sebanyak 10 sampel. 0 menyatakan tidak lolos beasiswa sedangkan 1 menyatakan lolos seleksi beasiswa.



Data diatas saya pindah dalam Command Window Matlab 

berikutnya, akan kita bagi data tersebut menjadi beberapa bagian, dengan metode yang disebut dengan 'Kfold' sehingga sering disebut dengan 'Kfold Cross Validation'. Pembagian yang paling populer adalah membagi data menjadi 10 bagian, dikenal dengan nama 10-fold. Akan tetapi, karena disini datanya hanya 10, maka kita ambil contoh dibagi menjadi tiga bagian saja. 

Indices merupakan jamak dari index, yang dimaksud disini adalah membuat data di langkah pertama menjadi tiga bagian berdasarkan index 1 hingga 3. Secara otomatis, matlab akan mempartisi data seadil mungkin. 
Perhatikan, data yang digunakan dalam indeks adalah data pada kolom ketika yang berisi target beasiswa. Biar lebih enak, data pecah menjadi training dan target, seperti berikut : 

Selanjutnya, akan dilakukan training dan testing dimana satu data berfungsi sebagai penguji dan data lainnya sebagai data training. Karena data terbegi menjadi 3 maka kita lakukan iterasi sebanyak 3 kali :
Kode diatas dimaksudkan untuk melakukan proses training dan testing dengan terlebih dahulu membuat indeks testing dan training. Training dibuat dengan menegasikan test dengan simbol '~'. Sebelum diakhiri end, hasil ditampilkan sebagai hasil perbandingan antara hasil testing dan data training awal, apakah sesuai atau tidak. Hasil yang tidak sesuai dianggap sebagai kesalahan training. 
Namun, dari hasil yang telah diperoleh pada itarasi pertama hingga ketiga, hasil training dan testing menunjukkan hasil yang tepat sama, jadi akurasi sistem diatas sebesar 100 %. Demikian apa yang dapat saya jelaskan untuk teman-teman. Semoga bermanfaat. 

Referensi : Penerapan Data Mining Dengan Matlab, oleh Prabowo, Rahmadya, Herlawati. 
Salam Hangat 

8 comments for "Penerapan Cross Validation Sebagai Metode Pengujian Sistem "

  1. Assalamu'alaikum mas, mau tanya, cross validation ini untuk menguji akurasi sistem ya ? misal saya buat sistem identifikasi pake jst trus data yg dipakai pada kolom 1,2,3 itu nilai apa ya ? apa nilai hasil latih, hasil identifikasi dan nilai target ? makasih mas.

    ReplyDelete
  2. bang.. mau tanya metode ini penerapannya gimana kalo pada kasus data training dan data testing untuk dijadikan sample.?

    oya ada tutor pengenalan pola gak nih ?

    ReplyDelete
    Replies
    1. Contoh diatas itu udah ada data training dan tresting mas

      Delete
  3. penggunaan cross validation ini didalam KNN atau sebelum KNN dilakukan mas ?

    ReplyDelete
  4. mas itu kodingan perulangan misal aku pake 10 fold jadinya gimana ya ?

    ReplyDelete
  5. mas, kalau datasetnya berupa citra yang di load dari folder, penerapan di kodenya bagaimana ya? Dan mempunyai kategori kelas lebih dari dua.

    ReplyDelete
  6. badasarkan penjelasan di atas, dapat dilihat contoh data tersebut merupakan data calon yang lolos dan yang tidak lolos.
    bagaimana jika data yang kita miliki hanya merupakan data penerima. apakah pengujian coss validation dapat digunakan?

    ReplyDelete