Membandingkan Jarak Terdekat Nearest Neighbor

Rumus tersebut yang akan diimplementasikan dalam kode program ini. Langkah pertama adalah membuat sebuah array untuk menyimpan nilai frekuensi dan probabilitas, kemudian lakukan iterasi sebanyak jumlah kelas lakukan perhitungan probabilitas. Berikut adalah kode programnya: private double[] HitungProbsKelas { double[] probs = trainResult.getClassFreqs.clone; menyimpan probabilitas kelas double[] freq = trainResult.getClassFreqs.clone; for int k = 0; k numClasses; k++ { probs[k] = freq[k] + 1 numInstances + numClasses; } return probs; }

4.3.2.3 Menghitung Kelas Distribusi Naïve Bayes

Langkah ketiga adalah menghitung probabilitas likehood dari naive bayes dengan mengkalikan semua probabilitas kelas, kemudian menormalisasi hasil likehood ke dalam bentuk probabilitas, dan kemudian membandingkan probabilitas kelas yang dibandingkan untuk mendapatkan hasil akhir dari klasifikasi. Yang pertama dilakukan adalah membuat suatu tempat penyimpanan atau map untuk menyimpan nilai frekuensi, fitur tabel dan menyimpan hasil klasifikasi. HashMapObject, Double out = new HashMapObject, DoublenumClasses; menyimpan hasil klasifikasi HashtableInteger, HashtableDouble, ClassCounter featureName_HT = trainResult.getFeatureTable; menyimpan fitur tabel double[] freq = trainResult.getClassFreqs.clone; double total = 0; Kemudian langkah selanjutnya adalah menghitung probabilitas nilai kelas yang akan dibandingkan yes atau no dengan menggunakan rumus: 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; }