Data prediksi testing dengan klasifikasi SVM dan KNN pada Perumdam Tirta Bengkayang oleh Bapak Azriel Christian Nurcahyo, M.Kom Institut Shanti Bhuana pada PDP yang dibiayai oleh KEMDIKBUDRISTEK yang menampilkan klasifikasi prediksi banjir intake pada periode April, Mei, Juni, Juli 2023.
Rumus SVM (Support Vector Machine) untuk deteksi banjir pada Intake Perumdam Tirta Bengkayang dapat dijelaskan dan diubah kembali sebagai berikut.
Pertama adalah menginisialisasi dan menentukan parameter lainnya, seperti Ξ» = 0,5, Ξ³ = 0,01, c = 1, IterasiMax = 100, dan Τ = 0,001. Kemudian, matriks Hessian dapat dihitung menggunakan rumus persamaan (2):
π·ππ = π¦ππ¦π(πΎ(π₯π, π₯π) + π/2) (2)
Dalam rumus ini, π¦π dan π¦π adalah label kelas (1 atau -1) dari data pelatihan π₯π dan π₯π, πΎ(π₯π, π₯π) adalah fungsi kernel yang menghitung kemiripan antara data pelatihan π₯π dan π₯π, dan π adalah parameter penalti. Langkah kedua adalah menghitung langkah-langkah berikut untuk setiap data pelatihan dari i hingga j menggunakan persamaan (3), (4), dan (5):
a. πΈπ = βπ ππ π·ππ (3)
b. πΏππ = min {max[πΎ(1 β πΈπ), βππ], π β ππ} (4)
c. ππ = ππ + πΏππ (5)
Dalam rumus ini, π adalah jumlah data pelatihan, ππ adalah nilai Ξ± (alpha) yang dihitung untuk data pelatihan ke-j. Langkah ketiga adalah melanjutkan langkah kedua secara berulang hingga mencapai kondisi iterasi maksimum. Setelah itu, nilai support vector (SV) dapat diperoleh dengan menggunakan Threshold SV. Nilai ini didapatkan melalui beberapa percobaan, dan biasanya menggunakan Threshold > 0. Setelah mendapatkan nilai support vector, dilakukan proses pengujian (testing) untuk mendapatkan keputusan. Fungsi keputusan dapat dihitung menggunakan persamaan (6) yaitu
π(π₯) = βπ ππ π¦ππΎ(π₯π, π₯) + π (6)
Dalam rumus ini, π adalah jumlah support vector, ππ adalah nilai Ξ± (alpha) untuk support vector ke-i, π¦π adalah label kelas (1 atau -1) dari support vector ke-i, πΎ(π₯π, π₯) adalah fungsi kernel yang menghitung kemiripan antara support vector ke-i dan data uji π₯, dan π adalah bias.
Nilai π dapat dihitung menggunakan persamaan (7) yaitu
π = -1 * [βπ ππ π¦π πΎ(π₯π, π₯+) + βπ ππ π¦π πΎ(π₯π, π₯-)] (7)
Β
Dalam rumus ini, π₯+ dan π₯- adalah support vector dengan label kelas positif (+1) dan negatif (-1) yang paling dekat dengan batas keputusan. Dengan menggunakan rumus SVM ini, dilakukan deteksi banjir pada Intake Perumdam Tirta Bengkayang dengan memasukkan batas bawah air, batas atas air, batas sensor air, aman banjir, siaga banjir, darurat banjir, dan tanggal dari April 2023 hingga Juli 2023 sebagai data masukan
Selanjutnya Metode K-NN (K-Nearest Neighbors) digunakan sebagai metode dalam machine learning untuk melakukan klasifikasi atau prediksi berdasarkan data yang paling mirip dengan data yang akan dievaluasi. Pada konteks deteksi banjir pada Intake Perumdam Tirta Bengkayang, metode K-NN digunakan untuk memprediksi apakah terjadi banjir berdasarkan fitur-fitur seperti batas bawah air, batas atas air, batas sensor air, aman banjir, siaga banjir, darurat banjir, dan hari tanggal sejak April 2023 hingga Juli 2023. Terdapat beberapa tahap yang perlu dilakukan dalam menghitung K-NN dalam deteksi banjir pada Intake Perumdam Tirta Bengkayang. Tahap-tahap tersebut adalah sebagai berikut
Menentukan Nilai K: Tentukan jumlah tetangga terdekat yang akan digunakan dalam prediksi. Nilai K ini harus ditentukan secara eksplisit sebelumnya.
Menghitung Jarak: Hitung jarak antara data yang akan dievaluasi dengan data pelatihan menggunakan persamaan (8) yaitu
D = β((x1 - y1)^2 + (x2 - y2)^2) (8)
Keterangan
x1, x2 = Sampel data
y1, y2 = Data uji
D = Jarak antara data uji dengan data pelatihan
Mengurutkan Hasil Jarak: Urutkan hasil jarak dari yang terkecil hingga yang terbesar dan tetapkan K tetangga terdekat berdasarkan jarak minimum.
Menggunakan Mayoritas Sederhana: Gunakan mayoritas sederhana dari kelas tetangga terdekat sebagai nilai prediksi untuk data baru. Dalam hal ini, kelas tetangga terdekat dapat merujuk pada apakah terjadi banjir atau tidak. Dalam mencari nilai prediksi K-NN, dapat dihitung menggunakan persamaan (9)
Y = (1 / K) * β(Yi) (9)
Dimana
Y= Perkiraan (prediksi)
K = Jumlah tetangga terdekat
Yi = Output tetangga terdekat
metode SVM (Support Vector Machine) dan KNN (K-Nearest Neighbors) dievaluasi berdasarkan akurasi (Accuracy) dan Area di Bawah Kurva (AUC) yang dihasilkan. Semakin tinggi nilai Akurasi dan AUC, semakin baik performa metode dalam melakukan deteksi banjir. Dalam contoh ini, SVM memiliki tingkat akurasi sebesar 0.85, yang berarti metode ini dapat memprediksi dengan benar sekitar 85% kasus deteksi banjir. Sedangkan AUC yang dihasilkan adalah 0.75, menunjukkan bahwa metode ini memiliki performa yang cukup efektif dalam membedakan kelas-kelas deteksi banjir. Di sisi lain, KNN memiliki tingkat akurasi sebesar 0.79, yang berarti metode ini dapat memprediksi dengan benar sekitar 79% kasus deteksi banjir pada intake. AUC yang dihasilkan adalah 0.68, menunjukkan bahwa metode ini memiliki performa yang sedikit lebih rendah dibandingkan dengan SVM dalam membedakan kelas-kelas deteksi banjir. Rumus untuk menghitung Akurasi (Accuracy) adalah Akurasi = (Jumlah prediksi benar) / (Jumlah total data) * 100%. Dalam penelitian ini, untuk metode SVM, Akurasi = (0.85) * 100% = 85%, yang berarti metode ini dapat memprediksi dengan benar sekitar 85% kasus deteksi banjir. Dengan metode KNN, Akurasi = (0.79) * 100% = 79%, yang berarti metode ini dapat memprediksi dengan benar sekitar 79% kasus deteksi banjir. Rumus untuk menghitung Area di Bawah Kurva (AUC) adalah AUC = Luas area di bawah kurva ROC. Pada penelitian ini, untuk metode SVM, AUC = 0.75, yang menunjukkan bahwa metode ini memiliki performa yang cukup efektif dalam membedakan kelas-kelas deteksi banjir. Sedangkan untuk metode KNN, AUC = 0.68, yang menunjukkan bahwa metode ini memiliki performa yang sedikit lebih rendah dibandingkan dengan SVM dalam membedakan kelas