Mengambil Nilai Jarak Terdekat

Pyesno = |doc j| |Contoh| for int k = 0; k numClasses; k++ { double denominator = freq[k]; double classScore2 = freq[k]numInstances; Pada bagian kode program diatas adalah implementasi dari hitung probabilitas nilai kelas yang akan dibandingkan dan akan diulang sebanyak jumlah kelas dalam kasus ini diulang dua kali karena kelas yang dibandingkan adalah dua yes dan no. Kemudian setelah menghitung probabilitas nilai kelas selanjutnya sistem akan menghitung nilai dari kelas pembanding lainnya dengan menggunakan rumus: PWk|Vj= Nk+1 N+|vocabulary| Kemudian mengkalikan seluruh probabilitas kelas pembanding untuk kategori yes dan no untuk mendapatkan likelihood yang nantinya akan dibandingkan. for Object key : featureName_HT.keySet { int featureName = Integer key; int numValues = featureName_HT.getfeatureName.size; Double featureValue = getInstValuefeatureName, inst; double numerator = featureName_HT.getfeatureName.get featureValue.getCountClassk; Laplace correction classScore2 = numerator+1denominator+numValues; } Pada bagian ini sistem menghitung probabilitas kelas pembanding yang muncul dan mengkalikan seluruhnya untuk mendapatkan nilai likelihood, kemudian sistem menormalisasi nilai likelihoss agar berbentuk probabilitas dengan cara likelihood yes ataupun no dibagi hasil total dari penjumlahan hasil perkalian likelihood yes dan no. out.putclasses[k], classScore2; total = total +classScore2; } for int l = 0; l classes.length; l++ { double classScore2 = out.getclasses[l]; out.putclasses[l], classScore2total; } return out; } Kemudian setelah mendapat nilai probabilitas barulah dibandingkan, kemudian sistem akan mengembalikan nilai probabilitas tertinggi sebagai hasil akhir klasifikasi. public Object classifyInstance instance { MapObject, Double distribution = KelasDistribusiinstance; double max = 0; Object out = null; for Object key : distribution.keySet { if distribution.getkey max { max = distribution.getkey; out = key; } } return out; }

4.3.3 Teknik Cross Validation

Teknik cross validation digunakan untuk memvalidasi keakuratan dari suatu klasifikasi. Pada bagian ini akan dijelaskan beberapa proses dalam melakukan evaluasi dengan cross validation.

4.3.3.1 Menghitung Evaluasi Cross Validation

Untuk mengevaluasi klasifikasi dengan teknik cross validation ada beberapa langkah yaitu 1 melakukan perulangan sebanyak jumlah fold kemudian selama perulangan tersebut lakukan pengambilan satu data sebagai data validasi dan sisanya sebagai data latih training, 2 Lakukan klasifikasi pada data training dengan KNN atau NB, 3 Tentukan true positif, true negative, false positif, dan false negative. Langkah pertama yang dilakukan adalah membuat suatu tempat penyimpanan data untuk validasi dan data untuk training. for int i = 0; i numFolds; i++ { Dataset validation = folds[i]; untuk menyimpan data validasi Dataset training = new DefaultDataset; untuk menyimpan data training Pada kode program diatas perulangan dilakukan untuk mengambil data untuk dijadikan data validasi untuk setiap perulangan, dan perulangan dilakukan sebanyak jumlah fold yang diinginkan, kemudian setelah pengambilan data validasi sisa data nya dijadikan sebagai data training. for int j = 0; j numFolds; j++ { if j = i training.addAllfolds[j]; } classifier.buildClassifiertraining; Pada kode program diatas perulangan digunakan untuk mengambil semua data kecuali data yang dijadikan sebagai data validasi. Kemudian melatihnya dengan klasifikasi yang diinginkan. Selanjutnya menentukan jumlah benar yang positif true positif, jumlah benar yang negatif true negative, jumlah salah yang positif false positif dan jumlah salah yang negatif false negative. Pada bagian ini dilakukan pengecekan pada data yang dijadikan validasi dan dicocokan dengan data yang telah di-training. Langkah pertama adalah menjalankan proses klasifikasi for Instance instance : validation { Selama instance bagian dari validation Object prediction = classifier.classifyinstance; Kemudian setelah proses dijalankan maka pengecekan dimulai dari klasifikasi yang bernilai benar terlebih dahulu. if instance.classValue.equalsprediction { jika prediksi sesuai dengan kelas maka for Object o : out.keySet {