บทความนี้อธิบายอัลกอริทึมที่ไร้เดียงสาของ Bayes ที่ใช้ใน Java แบ่งปันสำหรับการอ้างอิงของคุณดังนี้:
ฉันเชื่อว่าชายหนุ่มที่ทำข้อมูลการทำเหมืองข้อมูลและคำแนะนำนั้นคุ้นเคยกับอัลกอริทึมไร้เดียงสาเบย์ดังนั้นฉันจะไม่พูดถึงหลักการอัลกอริทึม ฉันต้องการใช้อัลกอริทึมไร้เดียงสาเป็นหลักผ่านรหัส Java และแนวคิดคือ:
1. ใช้ Javabean +ArrayList สำหรับการจัดเก็บข้อมูลการฝึกอบรม
2. สำหรับการฝึกอบรมข้อมูลตัวอย่าง
รหัสเฉพาะมีดังนี้:
แพ็คเกจ nb;/** * คุณสมบัติของตัวอย่างการฝึกอบรม javabean * */คลาสสาธารณะ javabean {อายุ int; รายได้สตริง; String Student; String credit_rating; สตริง buys_computer; สาธารณะ javabean () {} javabean สาธารณะ (อายุ int, รายได้สตริง, String Student, String credit_rating, String buys_computer) {this.age = Age; this.income = รายได้; this.student = นักเรียน; this.credit_rating = credit_rating; this.buys_computer = buys_computer;} public int getage () {return Age;} public void setage (อายุ int) {this.age = age;} public String getincome () {รายได้กลับ; this.student = Student;} Public String getCredit_Rating () {return credit_rating;} โมฆะสาธารณะ setCredit_Rating (String credit_Rating) {this.credit_rating = credit_rating;} public String getBuys_Computer this.buys_computer = buys_computer;}@overridepublic String toString () {return "javabean [age =" + อายุ + ", รายได้ =" + รายได้ + ", นักเรียน =" + นักเรียน + ", credit_rating ="ส่วนการใช้งานอัลกอริทึม:
แพ็คเกจ nb; นำเข้า java.io.bufferedreader; นำเข้า java.io.file; นำเข้า java.io.filereader; นำเข้า java.util.arraylist; ชั้นเรียนสาธารณะ testnb { / ** data_length*ความคิดของอัลกอริธึม* / int int data_length = 0; โมฆะคงที่สาธารณะหลัก (สตริง [] args) {// 1. อ่านข้อมูลและใส่ไว้ในไฟล์รายการไฟล์คอนเทนเนอร์ = ไฟล์ใหม่ ("e: //test.txt"); txt2string (ไฟล์); // ตัวอย่างการทดสอบข้อมูล testData (25, "ปานกลาง", "ใช่", "ยุติธรรม"); } // อ่านตัวอย่างข้อมูลสาธารณะเป็นโมฆะ txt2string (ไฟล์ไฟล์) {ลอง {bufferedreader br = new bufferedreader (filereader ใหม่ (ไฟล์)); // สร้างคลาส bufferedreader เพื่ออ่านสตริงไฟล์ s = null; ในขณะที่ ((s = br.readline ())! = null) {// ใช้วิธี readline เพื่ออ่านหนึ่งบรรทัดในเวลา data_length ++; Splitt (s); } br.close (); } catch (exception e) {e.printstacktrace (); }} // บันทึกใน arraylist public static void splitt (string str) {string strr = str.trim (); String [] abc = strr.split ("[// p {space}]+"); อายุ int = integer.parseint (abc [0]); Javabean Bean = New Javabean (อายุ, ABC [1], ABC [2], ABC [3], ABC [4]); list.add (ถั่ว); } // ตัวอย่างการฝึกอบรม, ทดสอบโมฆะแบบคงที่สาธารณะ testData (อายุ int, String A, String B, String C) {// ตัวอย่างการฝึกอบรม int number_yes = 0; int bucket_no = 0; // จำนวนผู้ป่วยอายุ int num_age_yes = 0; int num_age_no = 0; // รายได้ int num_income_yes = 0; int num_income_no = 0; // นักเรียน int num_student_yes = 0; int num_stdent_no = 0; // เครดิต int num_credit_yes = 0; int num_credit_no = 0; // รายการเดินทางเพื่อรับข้อมูลสำหรับ (int i = 0; i <list.size (); i ++) {javabean bb = list.get (i); if (bb.getBuys_computer (). เท่ากับ ("ใช่")) {// ใช่ number_yes ++; if (bb.getincome (). เท่ากับ (a)) {// รายได้ num_income_yes ++; } if (bb.getStudent (). เท่ากับ (b)) {// student num_student_yes ++; } if (bb.getcredit_rating (). เท่ากับ (c)) {// credit num_credit_yes ++; } if (bb.getage () == อายุ) {// age num_age_yes ++; }} else {// ไม่มี bumber_no ++; if (bb.getincome (). เท่ากับ (a)) {// รายได้ num_income_no ++; } if (bb.getStudent (). เท่ากับ (b)) {// นักเรียน num_stdent_no ++; } if (bb.getcredit_rating (). เท่ากับ (c)) {// credit num_credit_no ++; } if (bb.getage () == อายุ) {// age num_age_no ++; }}} system.out.println ("จำนวนการซื้อ:"+number_yes); System.out.println ("จำนวนประวัติที่ไม่ซื้อ:"+bumber_no); System.out.println ("ซื้อ+อายุ:"+num_age_yes); System.out.println ("ซื้อ+รายได้:"+num_age_no); System.out.println ("ซื้อ+รายได้:"+num_income_yes); System.out.println ("ซื้อ+รายได้:"+num_income_yes); System.out.println ("ซื้อ+stundent:"+num_student_yes); System.out.println ("ซื้อ+นักเรียน:"+num_stdent_no); System.out.println ("ซื้อ+stundent:"+num_stdent_no); System.out.println ("ซื้อ+เครดิต:"+num_credit_yes); System.out.println ("ซื้อ+เครดิต:"+num_credit_no); ///////-ware Judgement Double Buy_yes = number_yes*1.0/data_length; // ความน่าจะเป็นซื้อ double buy_no = bumber_no*1.0/data_length; // ความน่าจะเป็นที่จะไม่ซื้อ System.out.println ("ซื้อความน่าจะเป็นในข้อมูลการฝึกอบรม:"+buy_yes); System.out.println ("ซื้อความน่าจะเป็นในข้อมูลการฝึกอบรม:"+buy_no); /// ผู้ใช้ที่ไม่รู้จัก double 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/numing_yes) double 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)*ซื้อ; System.out.println ("ความน่าจะเป็นของผู้ใช้ใหม่ที่จะซื้อ:"+nb_buy_yes); System.out.println ("ความน่าจะเป็นของผู้ใช้ใหม่ที่จะไม่ซื้อ:"+nb_buy_no); if (nb_buy_yes> nb_buy_no) {system.out.println ("ความน่าจะเป็นของผู้ใช้ใหม่ที่จะไม่ซื้อ"); } else {system.out.println ("ความน่าจะเป็นของผู้ใช้ใหม่ที่จะไม่ซื้อ"); -สำหรับข้อมูลตัวอย่าง:
25 สูงไม่มียุติธรรมไม่
25 สูงไม่มียอดเยี่ยมไม่
33 สูงไม่ยุติธรรมใช่
41 Medium No Fair ใช่
41 Low Yes Fair ใช่
41 ต่ำใช่ดีเยี่ยมไม่ใช่
33 ต่ำใช่ดีเยี่ยมใช่
25 สื่อไม่มีความยุติธรรมไม่มี
25 ต่ำใช่ยุติธรรมใช่
41 Medium Yes Fair ใช่
25 สื่อใช่ดีเยี่ยมใช่
33 สื่อไม่ดีเยี่ยมใช่
33 High High Yes Fair ใช่
41 สื่อไม่มียอดเยี่ยมไม่
ผลลัพธ์สำหรับข้อมูลผู้ใช้ที่ไม่รู้จัก:
จำนวนการซื้อ: 9
ไม่มีประวัติของการไม่ซื้อ: 5
ซื้อ +อายุ: 2
อย่าซื้อ +อายุ: 3
ซื้อ +รายได้: 4
อย่าซื้อ +รายได้: 2
ซื้อ +Stundent: 6
อย่าซื้อ +นักเรียน: 1
ซื้อ + เครดิต: 6
อย่าซื้อ + เครดิต: 2
ความน่าจะเป็นในการซื้อข้อมูลการฝึกอบรม: 0.6428571428571429
ความน่าจะเป็นที่จะไม่ซื้อข้อมูลการฝึกอบรม: 0.35714285714285715
ความน่าจะเป็นของผู้ใช้ใหม่ที่ซื้อ: 0.028218694885361547
ความน่าจะเป็นของผู้ใช้ใหม่ที่ไม่ได้ซื้อ: 0.006857142857142858
ผู้ใช้ใหม่มีความเป็นไปได้สูงที่จะซื้อ
สำหรับข้อมูลเพิ่มเติมเกี่ยวกับอัลกอริทึม Java ผู้อ่านที่มีความสนใจในเว็บไซต์นี้สามารถดูหัวข้อ: "โครงสร้างข้อมูล Java และการสอนอัลกอริทึม", "บทสรุปของเคล็ดลับการดำเนินงาน Java Dom", "บทสรุปของไฟล์ Java และเคล็ดลับการดำเนินการไดเรกทอรี" และ "สรุป
ฉันหวังว่าบทความนี้จะเป็นประโยชน์กับการเขียนโปรแกรม Java ของทุกคน