Cross Validation of KNN using R
Setelah kemarin kita belajar menentukan kelas untuk data baru dengan metode KNN, sekarang kita akan membuat cross validation untuk prediksi suatu kelas dengan metode KNN.
Cross validation atau yang biasa disebut estimasi rotasi adalah sebuah teknik validasi model untuk menilai bagaimana hasil statistik analisis akan menggeneralisasi kumpulan data independent. Teknik ini utamanya digunakan untuk melakukan prediksi model dan memperkirakan seberapa akurat sebuah model prediktif ketika dijalankan dalam praktiknya. Singkatnya, validas silang menggabungkan rata-rata ukuran kecocokan dengan melihat nilai rata-rata pada setiap putaran untuk mendapatkan model prediksi yang lebih akurat. Validasi silang ini membagi data menjadi dua, yaitu training dan testing.
Untuk cross validation penulis menggunakan data Chick Weight. Data tersebut adalah data hasil eksperimen diet terhadap pertumbuhan anak ayam. Datanya adalah sebagai berikut:
Terdapat empat variabel yaitu weight, time, chick, dan diet dengan klasifikasi 1 dan 2, yang jumlah datanya ada 250.
Berikut adalah langkah-langkah untuk cross validation:
- Menentukan replikasi klasifikasi diet
“table(Chickweight$Diet)” untuk melihat data variabel Diet. Berdasrkan tabel data Diet, diperoleh empat klasifikasi yaitu 1 ada 220, 2 ada 120, 3 ada 120, dan 4 ada 118.
2. Membagi data testing dan training
Rumus di atas digunakan untuk menentukan jumlah data training. Hasilnya adalah sebagai berikut:
Jadi hasil tersebut adalah data training yang berjumlah 125.
3. Menentukan nilai data testing
head untuk melihat nilai dari masing-masing variabel dan dim untuk melihat dimensi data testing. Hasilnya adalah sebagai berikut:
Untuk data testing adalah data yang ganjil dengan nilai setiap variabel seperti di atas, sedangkan jumlah barisnya ada 125 dan kolomnya 4.
4. Menentukan nilai data training
Untuk data training menggunakan data -tt (data selain data testing). Hasilnya adalah sebagai berikut:
Untuk data training adalah data yang genap dengan nilai setiap variabel seperti di atas, sedangkan jumlah barisnya ada 453 dan kolomnya 4.
5. Menentukan Prediksi Kelas dengan KNN
knn untuk menentukan urutan kelas, table untuk hasil prediksi klasifikasi. Di sini penulis menggunakan titik persekitarannya yaitu 4. Hasilnya adalah sebagai berikut:
Yang diberi kotak warna merah adalah hasil prediksi klasifikasi. Yang diprediksikan masuk kelas 1 dan benar ada 101, yang diprediksikan masuk kelas 1 tetapi salah ada 2, yang dipreiksikan masuk kelas 2 tetapi salah ada 9, dan yang diprediksi masuk kelas 2 dan benar ada 13.S
Untuk melihat hasilnya berdasarkan grafik digunakan perintah berikut:
Hasilnya adalah seperti berikut:
6. Cross Validation of KNN
Setelah diperoleh prediksi dengan KNN, maka penulis melakukan validasi untuk memastikan keakuratan prediksi jumlah masing-masing kelas. Perintah yang digunkana adalah sebagai berikut:
Untuk cross validation dengan R dapat digunakan perintah knn.cv. Hasilnya adalah sebagai berikut:
Jadi setelah divalidasi diperoleh hasil prediksi kelas diet yang lebih akurat yaitu yang diprediksi masuk kelas 1 dan benar ada 212, yang diprediksikan masuk kelas 1 dan ternyata masuk kelas 2 ada 8, yang diprediksikan masuk kelas 2 dan ternyata masuk kelas 1 ada 3, yang diprediksikan masuk kelas 2 dan benar ada 106, yang diprediksikan masuk kelas 2 dan ternyata masuk kelas 3 ada 11, yang diprediksikan masuk kelas 3 dan ternyata masuk kelas 2 ada 10, yang diprediksikan masuk kelas 3 dan benar ada 92, yang diprediksikan masuk kelas 3 dan ternyata masuk kelas 4 ada 18, yang diprediksikan masuk kelas 4 dan ternyata masuk kelas 3 ada 5, dan yang diprediksikanmasuk kelas 4 dan benar ada 113.