อัลกอริทึม Naive Bayes ในการเรียนรู้ของเครื่อง
⚡ สรุปอย่างชาญฉลาด
Naive Bayes เป็นอัลกอริธึมการจำแนกประเภทแบบมีผู้กำกับดูแลและใช้หลักความน่าจะเป็น โดยสร้างขึ้นบนทฤษฎีบทของ Bayes โดยสมมติว่าคุณลักษณะแต่ละอย่างมีส่วนร่วมอย่างอิสระ ทฤษฎีของมันคือเวิร์คช็อปที่ดำเนินการแล้วping ตัวอย่างเช่น รูปแบบทั้งสามแบบ ข้อดี ข้อจำกัด และการประยุกต์ใช้ในโลกแห่งความเป็นจริง จะกล่าวถึงไว้ด้านล่าง
อัลกอริทึมลักษณนาม Naive Bayes
ตัวจำแนกประเภท (Classifier) คืออัลกอริธึมการเรียนรู้ของเครื่อง (Machine Learning) ที่จัดเรียงข้อมูลออกเป็นหนึ่งหรือมากกว่าหนึ่งชุด "ประเภท" ตัวอย่างที่คุ้นเคยอย่างหนึ่งคือ ตัวจำแนกอีเมล ซึ่งจะสแกนข้อความขาเข้าทุกข้อความและติดป้ายกำกับประเภทเป็น สแปม หรือ ไม่ใช่สแปม
ตัวจำแนกแบบ Naive Bayes ในการเรียนรู้ของเครื่องจักรคือ การเรียนรู้ภายใต้การดูแล อัลกอริทึมที่ใช้สำหรับงานจำแนกประเภท
แผนภาพด้านล่างแสดงให้เห็นถึงกระบวนการไหลดังกล่าว
Naive Bayes ใช้สำหรับแก้ไขปัญหาการจำแนกประเภท มันทำนายบนพื้นฐานของความน่าจะเป็นของวัตถุ Naive Bayes ขึ้นอยู่กับทฤษฎีบทของ Bayes และส่วนใหญ่จะใช้ในการจำแนกข้อความ Naive Bayes เป็นอัลกอริธึมการจำแนกความน่าจะเป็นที่ใช้งานง่ายและฝึกอบรมได้รวดเร็ว
เนื่องจากตัวจำแนกแบบ Naive Bayes นั้นอิงตามทฤษฎีบทของ Bayes จึงเรียกอีกอย่างว่าตัวจำแนกตามความน่าจะเป็น โดยจะทำนายผลโดยพิจารณาจากความน่าจะเป็นของแต่ละรายการ
ทำไมถึงเรียกว่า Naive Bayes?
ชื่อ Naive Bayes ประกอบด้วยสองส่วน คือ Naive และ Bayes ทำไมถึงเรียกว่า Naive? เพราะอัลกอริทึมนี้ไม่สนใจลำดับการปรากฏของคุณลักษณะ ดังนั้น “You are” และ “Are you” จึงดูเหมือนกัน นอกจากนี้ยังถือว่าไม่มีคุณลักษณะใดส่งผลต่อคุณลักษณะอื่น ตัวอย่างเช่น ในการจำแนกผลไม้ เช่น แอปเปิล คุณใช้สีแดง รูปร่างทรงกลม และรสหวาน และอัลกอริทึมจะถือว่าแต่ละเบาะแสเหล่านั้นเป็นหลักฐานที่แยกจากกันและเป็นอิสระต่อกัน
- ตัวจำแนกแบบ Naive Bayes สมมติว่าคุณลักษณะต่างๆ เป็นอิสระต่อกัน ซึ่งเนื่องจากในข้อมูลจริงนั้นเป็นไปได้ยาก จึงเรียกตัวจำแนกนี้ว่า Naive Bayes
- อัลกอริทึมการจำแนกประเภทนี้มีพื้นฐานมาจากทฤษฎีบทของเบย์ส ดังนั้นจึงเรียกว่า ตัวจำแนกประเภทแบบเบย์สแบบง่าย (Naive Bayes Classifier)
ทฤษฎีบทเบย์สแบบง่าย
ทฤษฎีบทของเบย์สใช้ในการหาความน่าจะเป็นของสมมติฐานโดยใช้ความน่าจะเป็นแบบมีเงื่อนไขซึ่งขึ้นอยู่กับความรู้ที่มีอยู่ก่อนหน้า ทฤษฎีบทนี้ตั้งชื่อตามโทมัส เบย์ส ตัวจำแนกแบบเบย์สแบบง่าย (Naive Bayes classifier) ทำงานบนหลักการของความน่าจะเป็นแบบมีเงื่อนไขตามที่กำหนดโดยทฤษฎีบทของเบย์ส
เพื่อทำความเข้าใจทฤษฎีบทของเบย์ส เรามาดูตัวอย่างการจำแนกแบบเบย์สอย่างง่ายๆ โดยการโยนเหรียญสองเหรียญกัน เราจะได้ปริภูมิเหตุการณ์เหล่านี้จากการโยนเหรียญสองเหรียญ: {HH, HT, TH, TT} ดังนั้น ความน่าจะเป็นของเหตุการณ์เหล่านี้จะเป็น:
- ได้สองหัว = 1/4
- อย่างน้อยหนึ่งหาง = 3/4
- เหรียญที่สองเป็นหัวให้เหรียญแรกมีหาง = 1/2
- ได้สองหัวเมื่อได้เหรียญแรกคือหัว = 1/2
ทฤษฎีบทของเบย์สคำนวณความน่าจะเป็นของการเกิดเหตุการณ์หนึ่งโดยอาศัยความน่าจะเป็นของเหตุการณ์อื่นที่เกิดขึ้นแล้ว สูตรของทฤษฎีบทของเบย์สมีดังนี้:
P(A|B) = (P(B|A) * P(A)) / P(B)
P(A|B) คือความน่าจะเป็นของเหตุการณ์ A เมื่อเหตุการณ์ B เกิดขึ้นแล้ว ความน่าจะเป็น P(B) ต้องไม่เป็นศูนย์
- คุณต้องค้นหาความน่าจะเป็นของเหตุการณ์ A ซึ่งจะได้รับเมื่อเหตุการณ์ B (หลักฐาน) เป็นจริง
- P(A) คือความน่าจะเป็นก่อนหน้าของ A ซึ่งก็คือความน่าจะเป็นของเหตุการณ์ก่อนที่จะมีการสังเกตหลักฐานใดๆ โดยที่เหตุการณ์ B คือค่าของกรณีที่ไม่ทราบค่า
- P(A|B) คือความน่าจะเป็นภายหลังของเหตุการณ์ A ซึ่งก็คือความน่าจะเป็นของ A หลังจากพิจารณาหลักฐาน B แล้ว
ตัวอย่างการใช้งานตัวจำแนกแบบ Naive Bayes
วิธีที่เร็วที่สุดที่จะเห็นว่าสูตรนี้ทำงานอย่างไร คือลองคำนวณด้วยมือเอง
ลองยกตัวอย่างร้านค้าดูping เพื่อทำความเข้าใจการทำงานของ Bayes Naive Classifier ในชุดข้อมูลนี้ มีชุดข้อมูลตัวอย่างขนาดเล็กจำนวน 30 แถวสำหรับใช้เป็นตัวอย่าง
ชุด
ปัญหาคือการคาดเดาว่าบุคคลจะซื้อผลิตภัณฑ์โดยใช้วัน ส่วนลด และการจัดส่งฟรีโดยใช้ทฤษฎีบท Naive Bayes หรือไม่
ขั้นตอน 1) เราจะสร้างตารางความถี่สำหรับแต่ละแอตทริบิวต์โดยใช้ประเภทอินพุตที่กล่าวถึงในชุดข้อมูล เช่น วัน ส่วนลด และการจัดส่งฟรี
ให้เหตุการณ์ 'ซื้อ' แทนด้วย 'A' และตัวแปรอิสระ ได้แก่ 'ส่วนลด' 'จัดส่งฟรี' และ 'วัน' แทนด้วย 'B' เราจะใช้เหตุการณ์และตัวแปรเหล่านี้เพื่อประยุกต์ใช้ทฤษฎีบทของเบย์ส
ขั้นตอน 2) ตอนนี้ให้เราคำนวณตารางความน่าจะเป็นทีละรายการ
1 ตัวอย่าง:
จากตารางความน่าจะเป็นนี้ เราจะคำนวณความน่าจะเป็นแบบมีเงื่อนไขดังต่อไปนี้
P(A) = P(No Buy) = 6/30 = 0.2 P(B) = P(Weekday) = 11/30 = 0.37 P(B/A) = P(Weekday / No Buy) = 2/6 = 0.33
และหา P(A/B) โดยใช้ทฤษฎีบทเบย์
P(A/B) = P(No Buy / Weekday) = P(Weekday / No Buy) * P(No Buy) / P(Weekday) = (2/6 * 6/30) / (11/30) = 0.1818
ในทำนองเดียวกัน ถ้า A คือซื้อ
= P(Buy / Weekday) = P(Weekday / Buy) * P(Buy) / P(Weekday) = (9/24 * 24/30) / (11/30) = 0.8181
หมายเหตุ เนื่องจาก P(Buy | Weekday) มากกว่า P(No Buy | Weekday) เราจึงสามารถสรุปได้ว่าลูกค้ามีแนวโน้มที่จะซื้อสินค้าในวันธรรมดามากที่สุด
ขั้นตอน 3) ในทำนองเดียวกัน เราสามารถคำนวณความน่าจะเป็นที่เหตุการณ์จะเกิดขึ้นโดยพิจารณาจากตัวแปรทั้งสามตัว ตอนนี้เราจะคำนวณตารางความน่าจะเป็นสำหรับตัวแปรทั้งสามโดยใช้ตารางความถี่ข้างต้น
2 ตัวอย่าง:
ตอนนี้ เมื่อใช้ตารางความเป็นไปได้ทั้งสามตารางนี้ เราจะคำนวณว่าลูกค้ามีแนวโน้มที่จะซื้อสินค้าโดยพิจารณาจากชุดค่าผสมของ 'วัน' 'ส่วนลด' และ 'การจัดส่งฟรี' ที่เฉพาะเจาะจงหรือไม่
ให้เรานำปัจจัยเหล่านี้มารวมกัน:
- วัน = วันหยุด
- ส่วนลด = ใช่
- ส่งฟรี = ใช่
เมื่อ A = ซื้อ
คำนวณความน่าจะเป็นแบบมีเงื่อนไขของการซื้อจากการรวมกันของวัน ส่วนลด และการจัดส่งฟรีต่อไปนี้
โดยที่ B อยู่:
- วัน = วันหยุด
- ส่วนลด = ใช่
- ส่งฟรี = ใช่
และ A = ซื้อ
ดังนั้น
= P(A/B) = P(Buy / Discount=Yes, Day=Holiday, Free Delivery=Yes) = ( P(Discount=(Yes/Buy)) * P(Free Delivery=(Yes/Buy)) * P(Day=(Holiday/Buy)) * P(Buy) ) / ( P(Discount=Yes) * P(Free Delivery=Yes) * P(Day=Holiday) ) = (19/24 * 21/24 * 8/24 * 24/30) / (20/30 * 23/30 * 11/30) = 0.986
เมื่อ A = ไม่มีการซื้อ
ในทำนองเดียวกัน ให้คำนวณความน่าจะเป็นแบบมีเงื่อนไขของการซื้อในชุดค่าผสมของวัน ส่วนลด และการจัดส่งฟรีต่อไปนี้
โดยที่ B อยู่:
- วัน = วันหยุด
- ส่วนลด = ใช่
- ส่งฟรี = ใช่
และ A = ไม่มีการซื้อ
ดังนั้น
= P(A/B) = P(No Buy / Discount=Yes, Day=Holiday, Free Delivery=Yes) = ( P(Discount=(Yes/No Buy)) * P(Free Delivery=(Yes/No Buy)) * P(Day=(Holiday/No Buy)) * P(No Buy) ) / ( P(Discount=Yes) * P(Free Delivery=Yes) * P(Day=Holiday) ) = (1/6 * 2/6 * 3/6 * 6/30) / (20/30 * 23/30 * 11/30) = 0.027
ขั้นตอน 4) ดังนั้น
ความน่าจะเป็นในการซื้อ = 0.986
ความน่าจะเป็นของการไม่ซื้อ = 0.027
สุดท้ายนี้ เรามีความน่าจะเป็นแบบมีเงื่อนไขที่จะซื้อในวันนี้ ให้เราสรุปความน่าจะเป็นเหล่านี้เพื่อให้ได้ความน่าจะเป็นของเหตุการณ์
- ผลรวมของความน่าจะเป็น = 0.986 + 0.027 = 1.013
- โอกาสในการซื้อ = 0.986 / 1.013 = 97.33 %
- ความเป็นไปได้ที่จะไม่มีการซื้อ = 0.027 / 1.013 = 2.67 %
คะแนนทั้งสองรวมกันได้ 1.013 แทนที่จะเป็น 1 เนื่องจากสมมติฐานความเป็นอิสระทำให้ค่าประมาณแต่ละค่าเป็นเพียงค่าประมาณ ดังนั้นการหารด้วยผลรวมจึงปรับขนาดให้เป็นเปอร์เซ็นต์
โปรดทราบว่าเนื่องจาก 97.33% มากกว่า 2.67% เราสามารถสรุปได้ว่าลูกค้าโดยเฉลี่ยจะซื้อในช่วงวันหยุดพร้อมส่วนลดและการจัดส่งฟรี
ประเภทของแบบจำลอง Naive Bayes
ตัวแยกประเภท Naive Bayes มีหลายประเภท ที่นี่เราได้กล่าวถึงตัวแยกประเภท Multinomial, Bernoulli และ Gaussian Naive Bayes
| ตัวแปร | ประเภทคุณสมบัติ | การใช้งานทั่วไป |
|---|---|---|
| พหุนาม | การนับคำ | การจำแนกประเภทหัวข้อและเอกสาร |
| เบอร์นูลลี | แฟล็กแสดงสถานะแบบไบนารี (มีหรือไม่มี) | ข้อความสั้นและการกรองสแปม |
| เสียน | ค่าตัวเลขต่อเนื่อง | การอ่านค่าและการวัดจากเซ็นเซอร์ |
1. พหุนาม Naive Bayes
โมเดล Naive Bayes ประเภทนี้ใช้สำหรับปัญหาการจำแนกประเภทเอกสาร ใช้งานได้กับฟีเจอร์ที่แสดงความถี่ของคำในเอกสาร ตัวแยกประเภทจะพิจารณาการเกิดและจำนวนคำเพื่อกำหนดความน่าจะเป็นของเอกสารที่อยู่ในหมวดหมู่เฉพาะ เช่น กีฬา การเมือง หรือเทคโนโลยี
2. แบร์นูลลี นาอิฟ เบเยส
ซึ่งคล้ายกับ Naive Bayes แบบพหุนาม ตัวแยกประเภท Bernoulli Naive Bayes ใช้สำหรับงานจำแนกประเภทเอกสาร อย่างไรก็ตาม มันใช้ตัวทำนายบูลีน โดยจะแสดงว่ามีคำอยู่หรือไม่ และรับเฉพาะค่าใช่หรือไม่ใช่เท่านั้น ตัวแยกประเภทจะคำนวณความน่าจะเป็นโดยพิจารณาว่าคำนั้นปรากฏในข้อความหรือไม่
3. Gaussian ไร้เดียงสา Bayes
ตัวแยกประเภทนี้ใช้ในกรณีของค่าต่อเนื่องแต่ไม่ใช่ค่าที่ไม่ต่อเนื่อง ตัวแยกประเภทนี้จะคำนวณความน่าจะเป็นโดยใช้พารามิเตอร์ของ เสียน การกระจาย เช่น ค่าเฉลี่ยและความแปรปรวน
สูตรสำหรับความน่าจะเป็นแบบมีเงื่อนไขเปลี่ยนเป็น
การขอ scikit เรียนรู้ ไลบรารีนี้เพิ่มตัวเลือกเพิ่มเติมอีกสองแบบ ได้แก่ Complement Naive Bayes สำหรับข้อความที่ไม่สมดุล และ Categorical Naive Bayes สำหรับหมวดหมู่ที่ไม่ต่อเนื่อง
ประโยชน์และข้อจำกัดของตัวแยกประเภท Naive Bayes
มีข้อดีและข้อเสียมากมายของอัลกอริทึม Naive Bayes ในการเรียนรู้ของเครื่อง
ประโยชน์ของตัวแยกประเภท Naive Bayes
- ความเรียบง่ายและมีประสิทธิภาพ: Naive Bayes นั้นเรียบง่ายและง่ายต่อการฝึกฝนและนำไปใช้ มีประสิทธิภาพเนื่องจากมีต้นทุนการคำนวณต่ำ สามารถจัดการชุดข้อมูลขนาดใหญ่ได้อย่างมีประสิทธิภาพ
- การฝึกอบรมและการทำนายอย่างรวดเร็ว: แบบจำลอง Naive Bayes ไม่ต้องการข้อมูลฝึกฝนมากนัก เนื่องจากคุณลักษณะต่างๆ เป็นอิสระต่อกัน และสามารถทำนายได้อย่างรวดเร็วเมื่อฝึกฝนแบบจำลองเสร็จแล้ว
- scalability: Naive Bayes สามารถจัดการชุดข้อมูลมิติสูงพร้อมคุณสมบัติจำนวนมากได้ มันทำงานได้ดีแม้ว่าจำนวนฟีเจอร์จะมากกว่าจำนวนตัวอย่างการฝึกก็ตาม โดยจะปรับขนาดตามจำนวนจุดข้อมูลและตัวทำนาย จัดการทั้งข้อมูลที่ต่อเนื่องและไม่ต่อเนื่อง
- ความทนทานต่อคุณสมบัติที่ไม่เกี่ยวข้อง: ไม่ไวต่อคุณสมบัติที่ไม่เกี่ยวข้อง
- ทำงานได้ดีกับชุดฝึกซ้อมขนาดเล็ก: Naive Bayes สามารถให้ผลลัพธ์ที่สมเหตุสมผลได้แม้จะมีข้อมูลฝึกฝนจำกัด และสามารถจัดการกับสถานการณ์ที่จำนวนข้อมูลฝึกฝนมีน้อยได้
ข้อจำกัดของตัวแยกประเภท Naive Bayes
ไร้เดียงสา เบย์ส เข้ามา เรียนรู้เครื่อง ถือว่าคุณสมบัติทั้งหมดเป็นอิสระจากกัน ดังนั้นจึงไม่สามารถเรียนรู้ความสัมพันธ์ระหว่างคุณลักษณะต่างๆ ในข้อมูลได้ โดยจะปฏิบัติต่อแต่ละคุณลักษณะราวกับว่าไม่มีความเกี่ยวข้องกับคุณลักษณะอื่นๆ
ข้อควรระวังประการที่สอง: ค่าความน่าจะเป็นของแต่ละกลุ่มที่รายงานนั้นไม่ได้มีการปรับเทียบอย่างแม่นยำ ดังนั้นตัวเลขความเชื่อมั่นที่แนบมากับการคาดการณ์จึงไม่ใช่ค่าความน่าจะเป็นที่เชื่อถือได้
เพื่อเอาชนะปัญหานี้คุณสามารถใช้ ต้นไม้แห่งการตัดสินใจ, Random Forests, Support Vector Machines (SVM) โครงข่ายประสาทเทียม เป็นต้น อัลกอริทึมเหล่านี้มีความสามารถในการเรียนรู้ความสัมพันธ์และการพึ่งพาที่ซับซ้อนระหว่างคุณลักษณะต่างๆ ในข้อมูล ดังนั้นจึงสามารถทำนายผลลัพธ์ได้แม่นยำยิ่งขึ้น
การประยุกต์ใช้ตัวแยกประเภท Naive Bayes
เนื่องจากอัลกอริทึมนี้รวดเร็วและมีประสิทธิภาพ คุณจึงสามารถใช้เพื่อคาดการณ์แบบเรียลไทม์ได้
การตรวจจับสแปม
บริการอีเมล (เช่น Gmail(ใช้อัลกอริธึมนี้เพื่อตรวจสอบว่าอีเมลเป็นสแปมหรือไม่ อัลกอริธึมนี้เหมาะอย่างยิ่งสำหรับการกรองสแปม)
การวิเคราะห์ความเชื่อมั่น
สามารถจัดประเภทข้อความเป็นบวก ลบ หรือเป็นกลาง โดยพิจารณาจากคุณลักษณะต่างๆ เช่น การเลือกคำ โครงสร้างประโยค และบริบท ค้นหาแอปพลิเคชันในการติดตามโซเชียลมีเดีย บทวิจารณ์ของลูกค้า และการวิจัยตลาด
การจัดประเภทเอกสาร
สามารถจัดหมวดหมู่เอกสารเป็นหมวดหมู่ เช่น กีฬา การเมือง เทคโนโลยี หรือการเงิน ตามความถี่หรือการมีอยู่ของคำหรือลักษณะเฉพาะภายในเอกสาร
ระบบผู้แนะนำ
สามารถวิเคราะห์การตั้งค่าของผู้ใช้ ข้อมูลประวัติ และฟีเจอร์รายการ เพื่อคาดการณ์ความสนใจหรือความชอบของผู้ใช้สำหรับการแนะนำผลิตภัณฑ์ ภาพยนตร์ หรือบทความ
อัลกอริทึมจำแนกประเภทนี้ยังถูกนำไปใช้ในการจดจำใบหน้า การพยากรณ์อากาศ การวินิจฉัยทางการแพทย์ และร้านค้าออนไลน์ด้วยpingเช่น การจัดประเภทข่าว เป็นต้น คุณสามารถนำ Naive Bayes มาใช้ใน... Pythonโดยโมดูล sklearn.naive_bayes จะมีทุกรูปแบบที่อธิบายไว้ข้างต้น








