Naive Bayes Classifier: ข้อดี & ข้อเสีย การใช้งาน & ประเภทอธิบาย

เผยแพร่แล้ว: 2020-12-11

เมื่อคุณต้องการอัลกอริธึมการแก้ปัญหาที่รวดเร็ว คุณจะไปที่ใด คุณไปที่ลักษณนาม Naive Bayes เป็นอัลกอริธึมที่ง่ายและรวดเร็วที่สามารถแก้ปัญหาการจำแนกประเภทได้ ในบทความนี้ เราจะมาทำความเข้าใจว่าอัลกอริธึมนี้คืออะไร ทำงานอย่างไร และมีคุณสมบัติอย่างไร มาเริ่มกันเลย.

สารบัญ

ลักษณนาม Naive Bayes คืออะไร?

ตัวแยกประเภท Naive Bayes แยกข้อมูลออกเป็นคลาสต่างๆ ตามทฤษฎีบทของ Bayes พร้อมกับสมมติฐานว่าตัวทำนายทั้งหมดไม่ขึ้นกับอีกกลุ่มหนึ่ง โดยถือว่าคุณลักษณะเฉพาะในคลาสไม่เกี่ยวข้องกับการมีอยู่ของคุณลักษณะอื่นๆ

ตัวอย่างเช่น คุณสามารถถือว่าผลไม้เป็นแตงโมได้หากมีสีเขียว กลม และมีเส้นผ่านศูนย์กลาง 10 นิ้ว คุณลักษณะเหล่านี้สามารถพึ่งพาอาศัยกันเพื่อการดำรงอยู่ แต่แต่ละคุณลักษณะมีส่วนทำให้เกิดความน่าจะเป็นที่ผลไม้ที่อยู่ในการพิจารณาจะเป็นแตงโมอย่างอิสระ นั่นเป็นสาเหตุที่ลักษณนามนี้มีคำว่า 'ไร้เดียงสา' อยู่ในชื่อ

อัลกอริธึมนี้ค่อนข้างเป็นที่นิยมเพราะสามารถทำงานได้ดีกว่าเทคนิคการจำแนกขั้นสูง ยิ่งไปกว่านั้น มันค่อนข้างง่ายและคุณสามารถสร้างมันได้อย่างรวดเร็ว

นี่คือทฤษฎีบท Bayes ซึ่งเป็นพื้นฐานสำหรับอัลกอริทึมนี้:

P(c | x) = P(x | c) P(c)/ P(x)

ในสมการนี้ 'c' หมายถึงคลาส และ 'x' หมายถึงแอตทริบิวต์ P(c/x) ย่อมาจากความน่าจะเป็นหลังของคลาสตามตัวทำนาย P(x) คือความน่าจะเป็นก่อนหน้าของตัวทำนาย และ P(c) คือความน่าจะเป็นก่อนหน้าของคลาส P(x/c) แสดงความน่าจะเป็นของตัวทำนายตามคลาส

อ่าน: Naive Bayes อธิบาย

ข้อดีของ Naive Bayes

  • อัลกอริธึมนี้ทำงานเร็วมากและสามารถทำนายคลาสของชุดข้อมูลทดสอบได้อย่างง่ายดาย
  • คุณสามารถใช้มันเพื่อแก้ปัญหาการทำนายแบบหลายคลาสได้ เนื่องจากมันค่อนข้างมีประโยชน์กับมัน
  • ตัวแยกประเภท Naive Bayes ทำงานได้ดีกว่ารุ่นอื่นๆ ที่มีข้อมูลการฝึกอบรมน้อยกว่า หากมีการสันนิษฐานถึงความเป็นอิสระของคุณลักษณะ
  • หากคุณมีตัวแปรอินพุตตามหมวดหมู่ อัลกอริธึม Naive Bayes จะทำงานได้ดีเป็นพิเศษเมื่อเปรียบเทียบกับตัวแปรตัวเลข

ข้อเสียของ Naive Bayes

  • หากชุดข้อมูลทดสอบของคุณมีตัวแปรตามหมวดหมู่ของหมวดหมู่ที่ไม่มีอยู่ในชุดข้อมูลการฝึก โมเดล Naive Bayes จะกำหนดความน่าจะเป็นเป็นศูนย์และจะไม่สามารถคาดการณ์ได้ในเรื่องนี้ ปรากฏการณ์นี้เรียกว่า 'ความถี่เป็นศูนย์' และคุณจะต้องใช้เทคนิคการปรับให้เรียบเพื่อแก้ปัญหานี้
  • อัลกอริธึมนี้ยังเป็นที่รู้จักในฐานะตัวประมาณที่มีหมัด ดังนั้น คุณไม่ควรใช้ผลลัพธ์ความน่าจะเป็นของ 'predict_proba' อย่างจริงจังเกินไป
  • ถือว่าคุณสมบัติทั้งหมดเป็นอิสระ แม้ว่าในทางทฤษฎีอาจฟังดูดี แต่ในชีวิตจริง คุณแทบจะไม่พบชุดคุณลักษณะที่เป็นอิสระเลย

การประยุกต์ใช้อัลกอริทึม Naive Bayes

อย่างที่คุณคงสังเกตเห็นแล้วว่า อัลกอริธึมนี้มีข้อดีมากมายสำหรับผู้ใช้ จึงมีแอพพลิเคชั่นมากมายในภาคส่วนต่างๆ ด้วย นี่คือแอปพลิเคชันบางส่วนของอัลกอริทึม Naive Bayes:

  • เนื่องจากอัลกอริธึมนี้รวดเร็วและมีประสิทธิภาพ คุณจึงใช้อัลกอริทึมนี้ในการคาดคะเนแบบเรียลไทม์ได้
  • อัลกอริทึมนี้เป็นที่นิยมสำหรับการทำนายแบบหลายคลาส คุณสามารถค้นหาความน่าจะเป็นของคลาสเป้าหมายหลายคลาสได้อย่างง่ายดายโดยใช้อัลกอริธึมนี้
  • บริการอีเมล (เช่น Gmail) ใช้อัลกอริทึมนี้เพื่อค้นหาว่าอีเมลเป็นสแปมหรือไม่ อัลกอริทึมนี้ยอดเยี่ยมสำหรับการกรองสแปม
  • สมมติฐานเกี่ยวกับความเป็นอิสระของคุณลักษณะ และประสิทธิภาพในการแก้ปัญหาแบบหลายชั้น ทำให้เหมาะสำหรับการวิเคราะห์ความคิดเห็น การวิเคราะห์ความรู้สึกหมายถึงการระบุความรู้สึกเชิงบวกหรือเชิงลบของกลุ่มเป้าหมาย (ลูกค้า ผู้ชม ฯลฯ)
  • Collaborative Filtering และอัลกอริทึม Naive Bayes ทำงานร่วมกันเพื่อสร้างระบบการแนะนำ ระบบเหล่านี้ใช้การขุดข้อมูลและการเรียนรู้ของเครื่องเพื่อคาดการณ์ว่าผู้ใช้ต้องการทรัพยากรเฉพาะหรือไม่

อ่านเพิ่มเติม: อธิบายแบบจำลองการเรียนรู้ของเครื่อง

ประเภทของลักษณนามไร้เดียงสา

อัลกอริทึมนี้มีหลายประเภท นี่คือรายการหลัก:

Bernoulli Naive Bayes

ที่นี่ ตัวทำนายเป็นตัวแปรบูลีน ดังนั้น ค่าเดียวที่คุณมีคือ 'จริง' และ 'เท็จ' (คุณสามารถมี 'ใช่' หรือ 'ไม่ใช่' ได้ด้วย) เราใช้เมื่อข้อมูลเป็นไปตามการกระจายเบอร์นูลลีหลายตัวแปร

Multinomial Naive Bayes

ผู้คนใช้อัลกอริทึมนี้เพื่อแก้ปัญหาการจัดประเภทเอกสาร ตัวอย่างเช่น ถ้าคุณต้องการระบุว่าเอกสารอยู่ในหมวดหมู่ 'กฎหมาย' หรือ 'ทรัพยากรบุคคล' คุณจะต้องใช้อัลกอริทึมนี้เพื่อจัดเรียง ใช้ความถี่ของคำปัจจุบันเป็นคุณลักษณะ

Gaussian Naive Bayes

หากตัวทำนายไม่ต่อเนื่องแต่มีค่าต่อเนื่อง เราจะถือว่าพวกมันคือตัวอย่างจากการแจกแจงแบบเกาส์เซียน

บทสรุป

เราหวังว่าคุณจะพบว่าบทความนี้มีประโยชน์ หากคุณมีคำถามใด ๆ เกี่ยวกับอัลกอริทึม Naive Bayes โปรดแบ่งปันในส่วนความคิดเห็น เราชอบที่จะได้ยินจากคุณ

หากคุณสนใจที่จะเรียนรู้เพิ่มเติมเกี่ยวกับ AI, แมชชีนเลิร์นนิง โปรดดูที่ IIIT-B & upGrad's PG Diploma in Machine Learning & AI ซึ่งออกแบบมาสำหรับมืออาชีพที่ทำงานและมีการฝึกอบรมที่เข้มงวดมากกว่า 450 ชั่วโมง กรณีศึกษาและการมอบหมายมากกว่า 30 รายการ สถานะศิษย์เก่า IIIT-B โครงการหลัก 5 โครงการและความช่วยเหลือด้านงานกับบริษัทชั้นนำ

ข้อจำกัดของ Naive Bayes คืออะไร?

ตัวแยกประเภท Bayes ไร้เดียงสาเป็นอัลกอริทึมที่ใช้ในการจัดประเภทอินสแตนซ์ข้อมูลใหม่โดยใช้ชุดข้อมูลการฝึกอบรมที่รู้จัก เป็นอัลกอริธึมที่ดีสำหรับการจำแนกประเภท อย่างไรก็ตาม จำนวนคุณลักษณะต้องเท่ากับจำนวนคุณลักษณะในข้อมูล การคำนวณมีราคาแพงเมื่อใช้เพื่อจำแนกรายการจำนวนมาก ไม่เหมาะกับข้อมูลที่เป็นตัวเลข ทำงานได้ก็ต่อเมื่อคุณลักษณะต่างๆ เป็นอิสระจากกัน ไม่เหมาะเมื่อค่าคุณลักษณะเป็นเพียงค่าเล็กน้อย กำหนดให้คุณลักษณะ-ค่าต้องไม่เกิดร่วมกัน ต้องการให้ความถี่ของค่าคุณลักษณะเป็นสัดส่วนกับความน่าจะเป็นที่ถูกต้อง

ข้อดีและข้อเสียที่ใหญ่ที่สุดของตัวแยกประเภท Naive Bayes คืออะไร?

ข้อได้เปรียบที่ใหญ่ที่สุดของ Naive Bayes คือสามารถทำงานกับชุดข้อมูลขนาดเล็กมากได้ เป็นหนึ่งในอัลกอริธึมยอดนิยมสำหรับการกรองสแปม นอกจากนี้ยังค่อนข้างง่ายที่จะนำไปใช้ มักใช้เป็นตัวจำแนกประเภท หากไม่มีชุดข้อมูล ก็ยังสามารถใช้เป็นอัลกอริธึมการจัดหมวดหมู่ได้ อัลกอริทึมนี้ใช้ในการกรองอีเมลสแปม และยังใช้โดย Google เพื่อจัดประเภทหน้าเว็บ อย่างไรก็ตาม อาจไม่ได้ผลในปัญหาการจำแนกประเภทที่ซับซ้อนมากขึ้น ทำงานได้ก็ต่อเมื่อคุณลักษณะต่างๆ เป็นอิสระจากกัน

ฉันจะหยุด Overfitting ใน Naive Bayes ได้อย่างไร

เหตุผลหนึ่งที่ทำให้เกินกำลังคือการมีข้อมูลการฝึกที่ไม่ถูกต้อง หากคุณมีชุดข้อมูลการฝึกที่มีสัญญาณรบกวนมาก และคุณมีตัวอย่างการฝึกจำนวนมาก ตัวแยกประเภทจะพิจารณาเสียงรบกวนในข้อมูลการฝึก ไม่ใช่รูปแบบพื้นฐานที่คุณพยายามสร้างแบบจำลอง อีกเหตุผลหนึ่งก็คือโมเดลของคุณซับซ้อนเกินไป หากคุณมีโมเดลที่อินพุตเปลี่ยนแปลงเพียงเล็กน้อยอาจทำให้เอาต์พุตเปลี่ยนแปลงไปมาก คุณก็อาจต้องใส่มากเกินไป อีกวิธีหนึ่งคือการใช้การทำให้เป็นมาตรฐาน การทำให้เป็นมาตรฐานจะย่อกิ่งก้านยาวในแบบจำลองของคุณ ทำให้โมเดลของคุณเรียบขึ้นและป้องกันการใส่มากเกินไป