Artikel ini menjelaskan algoritma Naive Bayes yang diimplementasikan di Java. Bagikan untuk referensi Anda, sebagai berikut:
Saya percaya bahwa para pemuda yang melakukan penambangan data dan sistem rekomendasi akrab dengan algoritma Bayes yang naif, jadi saya tidak akan berbicara tentang prinsip -prinsip algoritma. Saya terutama ingin mengimplementasikan algoritma Naive Bayes melalui kode Java, dan idenya adalah:
1. Gunakan Javabean +ArrayList untuk melatih penyimpanan data
2. Untuk pelatihan data sampel
Kode spesifiknya adalah sebagai berikut:
Paket nb;/** * Properti sampel pelatihan Javabean * */kelas publik Javabean {int usia; Pendapatan string; Siswa string; String credit_rating; String BUYS_COMPUTER; javabean publik () {} javabean publik (usia int, pendapatan string, siswa string, string credit_rating, string buy_computer) {this.age = usia; this.income = pendapatan; this.student = siswa; this.credit_rating = credit_rating; this.buys_computer = buys_computer;} public int getage () {return usia;} public void setage (int evence) {this.age = usia;} public string getIncome () {return pendapatan;} public setincom this.student = student;}public String getCredit_rating() { return credit_rating;}public void setCredit_rating(String credit_rating) { this.credit_rating = credit_rating;}public String getBuys_computer() { return buys_computer;}public void setBuys_computer(String buys_computer) { this.buys_computer = buys_computer;}@overridepublic string toString () {return "javabean [usia =" + usia + ", pendapatan =" + pendapatan + ", student =" + student + ", credit_rating =" + credit_rating + ", buys_computer =" + BUYS_COMPUPUPUPUTER = " + credit_rating +", buys_computer = " + BUYS_COMUPUPUPUPUTER +"Bagian Implementasi Algoritma:
package NB;import java.io.BufferedReader;import java.io.File;import java.io.FileReader;import java.util.ArrayList;public class TestNB { /**data_length * Thoughts of algorithm*/ public static ArrayList<JavaBean> list = new ArrayList<JavaBean>();; statis int data_length = 0; public static void main (string [] args) {// 1. Baca data dan letakkan di daftar file container daftar = file baru ("e: //test.txt"); txt2string (file); // Pengujian Uji Data TestData (25, "medium", "ya", "fair"); } // Baca data sampel public static void txt2string (file file) {coba {buferedReader br = new BufferedReader (filereader baru (file)); // buat kelas buferedReader untuk membaca file string s = null; while ((s = br.readline ())! = null) {// Gunakan metode readline untuk membaca satu baris pada waktu data_length ++; splitt (s); } br.close (); } catch (Exception e) {E.PrintStackTrace (); }} // simpan di arraylist public static void splitt (string str) {string strr = str.trim (); String [] abc = strr.split ("[// p {space}]+"); int usia = integer.parseint (ABC [0]); Javabean Bean = Javabean Baru (usia, ABC [1], ABC [2], ABC [3], ABC [4]); list.add (bean); } // sampel pelatihan, uji public static void testData (int usia, string A, string b, string c) {// sampel pelatihan int number_yes = 0; int bucket_no = 0; // jumlah kasus usia int num_age_yes = 0; int num_age_no = 0; // pendapatan int num_income_yes = 0; int num_income_no = 0; // siswa int num_student_yes = 0; int num_stdent_no = 0; // kredit int num_credit_yes = 0; int num_credit_no = 0; // daftar perjalanan untuk mendapatkan data untuk (int i = 0; i <list.size (); i ++) {javabean bb = list.get (i); if (bb.getbuys_computer (). Equals ("yes")) {// ya number_yes ++; if (bb.getincome (). Equals (a)) {// penghasilan num_income_yes ++; } if (bb.getStudent (). Equals (b)) {// siswa num_student_yes ++; } if (bb.getcredit_rating (). Equals (c)) {// kredit num_credit_yes ++; } if (bb.getage () == usia) {// usia num_age_yes ++; }} else {// no bumber_no ++; if (bb.getincome (). Equals (a)) {// penghasilan num_income_no ++; } if (bb.getStudent (). Equals (b)) {// siswa num_stdent_no ++; } if (bb.getcredit_rating (). Equals (c)) {// kredit num_credit_no ++; } if (bb.getage () == usia) {// usia num_age_no ++; }}} System.out.println ("Jumlah pembelian:"+number_yes); System.out.println ("Jumlah riwayat yang tidak dibeli:"+bumber_no); System.out.println ("Beli+Umur:"+num_age_yes); System.out.println ("Beli+Penghasilan:"+num_age_no); System.out.println ("Beli+Penghasilan:"+num_income_yes); System.out.println ("Beli+Penghasilan:"+num_income_yes); System.out.println ("Beli+Stundent:"+num_student_yes); System.out.println ("Beli+Siswa:"+num_stdent_no); System.out.println ("Beli+Stundent:"+num_stdent_no); System.out.println ("Beli+Kredit:"+num_credit_yes); System.out.println ("Beli+Kredit:"+num_credit_no); //// probabilitas penilaian ganda buy_yes = angka_yes*1.0/data_length; // probabilitas pembelian ganda buy_no = bumber_no*1.0/data_length; // probabilitas untuk tidak membeli system.out.println ("Beli probabilitas dalam data pelatihan:"+buy_yes); System.out.println ("Beli probabilitas dalam data pelatihan:"+buy_no); /// Pengguna yang tidak dikenal ganda NB_BUY_YES = (1.0*num_age_yes/number_yes)*(1.0*num_income_yes/number_yes)*(1.0*num_student_yes/number_yes)*(1.0*num_credit_yes/number_yes)*(1.0 ganda nb_buy_no = (1.0*num_age_no/bumber_no)*(1.0*num_income_no/bumber_no)*(1.0*num_stdent_no/bumber_no)*(1.0*num_credit_no/bumber_no)*buy_no; System.out.println ("Probabilitas pengguna baru untuk membeli:"+nb_buy_yes); System.out.println ("Probabilitas pengguna baru untuk tidak membeli:"+nb_buy_no); if (nb_buy_yes> nb_buy_no) {system.out.println ("Probabilitas pengguna baru untuk tidak membeli"); } else {System.out.println ("Probabilitas pengguna baru untuk tidak membeli"); }}}Untuk data sampel:
25 tinggi tidak adil no
25 tinggi tidak ada yang luar biasa
33 tinggi tidak adil ya
41 Medium tidak adil ya
41 rendah ya adil ya
41 Rendah ya sangat baik tidak
33 Rendah ya sangat baik ya
25 Sedang Tidak Adil Tidak
25 rendah ya adil ya
41 Medium ya adil ya
25 Medium ya sangat baik ya
33 Medium Tidak Luar Biasa Ya
33 tinggi ya adil ya
41 media tidak ada yang luar biasa
Hasil untuk data pengguna yang tidak dikenal:
Jumlah Pembelian: 9
Tidak ada sejarah tidak membeli: 5
Beli +Umur: 2
Jangan Beli +Umur: 3
Pembelian +Penghasilan: 4
Jangan Beli +Penghasilan: 2
Beli +Stundent: 6
Jangan Beli +Siswa: 1
Beli + Kredit: 6
Jangan Beli + Kredit: 2
Probabilitas Pembelian dalam Data Pelatihan: 0,6428571428571429
Probabilitas tidak membeli dalam data pelatihan: 0,35714285714285715
Probabilitas Pembelian Pengguna Baru: 0,028218694885361547
Probabilitas pengguna baru tidak membeli: 0,006857142857142858
Pengguna baru memiliki probabilitas pembelian yang tinggi
Untuk informasi lebih lanjut tentang algoritma java, pembaca yang tertarik dengan situs ini dapat melihat topik: "struktur data java dan tutorial algoritma", "ringkasan tips node dom java", "ringkasan file operasi java dan direktori" dan "ringkasan tip operasi java cache" tips java "tips java" Tips "Java Cache Tips"
Saya harap artikel ini akan membantu pemrograman Java semua orang.