Naive Bayes อธิบาย: ฟังก์ชั่น, ข้อดี & ข้อเสีย, การใช้งานในปี 2022

เผยแพร่แล้ว: 2021-01-05

Naive Bayes เป็นอัลกอริธึมการเรียนรู้ของเครื่องที่เราใช้เพื่อแก้ปัญหาการจำแนกประเภท มันขึ้นอยู่กับทฤษฎีบทเบย์ มันเป็นหนึ่งในอัลกอริธึม ML ที่เรียบง่ายแต่ทรงพลังในการใช้งานและค้นหาแอพพลิเคชั่นในหลายอุตสาหกรรม

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

ในบทความนี้ เราจะพูดถึงอัลกอริทึมนี้โดยละเอียดและศึกษาวิธีการทำงาน นอกจากนี้เรายังจะหารือเกี่ยวกับข้อดีและข้อเสียของมันพร้อมกับการใช้งานจริงเพื่อทำความเข้าใจว่าอัลกอริทึมนี้มีความสำคัญเพียงใด

เข้าร่วม Deep Learning Course ออนไลน์จากมหาวิทยาลัยชั้นนำของโลก – ปริญญาโท, Executive Post Graduate Programme และ Advanced Certificate Program ใน ML & AI เพื่อติดตามอาชีพของคุณอย่างรวดเร็ว

มาเริ่มกันเลย:

สารบัญ

Naive Bayes อธิบาย

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

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

การสร้างแบบจำลอง Naive Bayes นั้นค่อนข้างง่ายและช่วยคุณในการทำงานกับชุดข้อมูลจำนวนมาก นอกจากนี้ สมการนี้ได้รับความนิยมในการเอาชนะเทคนิคการจำแนกขั้นสูงในด้านประสิทธิภาพ

นี่คือสมการของ Naive Bayes:

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

P(c|x) = P(x1 | c) x P(x2 | c) x … P(xn | c) x P(c)

โดยที่ P (c|x) คือความน่าจะเป็นภายหลังตามตัวทำนาย (x) สำหรับชั้นเรียน (c) P(c) คือความน่าจะเป็นก่อนหน้าของคลาส P(x) คือความน่าจะเป็นก่อนหน้าของตัวทำนาย และ P(x|c) คือความน่าจะเป็นของตัวทำนายสำหรับคลาสเฉพาะ (c)

นอกเหนือจากการพิจารณาความเป็นอิสระของทุกฟีเจอร์แล้ว Naive Bayes ยังถือว่าพวกเขามีส่วนร่วมอย่างเท่าเทียมกัน นี่เป็นจุดสำคัญที่ต้องจำ

Naive Bayes ทำงานอย่างไร

เพื่อให้เข้าใจว่า Naive Bayes ทำงานอย่างไร เราควรพูดถึงตัวอย่าง

สมมติว่าเราต้องการค้นหารถที่ถูกขโมยและมีชุดข้อมูลต่อไปนี้:

หมายเลขซีเรียล สี พิมพ์ ต้นทาง มันถูกขโมย?
1 สีแดง กีฬา ภายในประเทศ ใช่
2 สีแดง กีฬา ภายในประเทศ ไม่
3 สีแดง กีฬา ภายในประเทศ ใช่
4 เหลือง กีฬา ภายในประเทศ ไม่
5 เหลือง กีฬา นำเข้า ใช่
6 เหลือง SUV นำเข้า ไม่
7 เหลือง SUV นำเข้า ใช่
8 เหลือง SUV ภายในประเทศ ไม่
9 สีแดง SUV นำเข้า ไม่
10 สีแดง กีฬา นำเข้า ใช่

ตามชุดข้อมูลของเรา เราสามารถเข้าใจได้ว่าอัลกอริทึมของเราตั้งสมมติฐานดังต่อไปนี้:

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

ตอนนี้ ด้วยชุดข้อมูลของเรา เราต้องจัดประเภทว่าโจรขโมยรถตามคุณลักษณะของมันหรือไม่ แต่ละแถวมีรายการแต่ละรายการ และคอลัมน์แสดงถึงคุณลักษณะของรถทุกคัน ในแถวแรก เรามีรถสปอร์ตสีแดงที่ถูกขโมยซึ่งมีแหล่งกำเนิดในประเทศ เราจะหาคำตอบว่าคนร้ายจะขโมยรถ SUV สีแดงในประเทศหรือไม่ (ชุดข้อมูลของเราไม่มีรายการสำหรับ Red Domestic SUV)

เราสามารถเขียนทฤษฎีบทเบย์ใหม่เป็นตัวอย่างของเราได้ดังนี้:

P(y | X) = [P(X | y) P(y)P(X)]/P(X)

ในที่นี้ y หมายถึงตัวแปรระดับ (Was it Stolen?) เพื่อแสดงว่าโจรขโมยรถไม่เป็นไปตามเงื่อนไขหรือไม่ X ย่อมาจากคุณสมบัติ

X = x1, x2, x3, …., xn)

ที่นี่ x1, x2,…, xn ย่อมาจากคุณสมบัติ เราสามารถแมปพวกมันเป็น Type, Origin และ Color ตอนนี้ เราจะแทนที่ X และขยายกฎลูกโซ่เพื่อรับสิ่งต่อไปนี้:

P(y | x1, …, xn) = [P(x1 | y) P(x2 | y) … P(xn | y) P(y)]/[P(x1) P (x2) … P(xn) )]

คุณสามารถรับค่าของแต่ละรายการโดยใช้ชุดข้อมูลและใส่ค่าลงในสมการ ตัวส่วนจะยังคงคงที่สำหรับทุกรายการในชุดข้อมูลเพื่อลบออกและฉีดสัดส่วน

P(y | x1, …, xn) ∝ P(y) i = 1nP(xi | y)

ในตัวอย่างของเรา y มีเพียงสองผลลัพธ์ ใช่หรือไม่ใช่

y = argmaxyP(y) ผม = 1nP(xi | y)

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

ตารางสีความถี่:

สี มันถูกขโมยหรือไม่ (ใช่) มันถูกขโมยหรือไม่ (ไม่มี)
สีแดง 3 2
เหลือง 2 3

ตารางความน่าจะเป็นของสี:

สี มันถูกขโมยไปหรือเปล่า [P(ใช่)] ถูกขโมยไปหรือเปล่า [P(No)]
สีแดง 3/5 2/5
เหลือง 2/5 3/5

ตารางความถี่ประเภท:

พิมพ์ มันถูกขโมยหรือไม่ (ใช่) มันถูกขโมยหรือไม่ (ไม่มี)
กีฬา 4 2
SUV 1 3

ตารางความเป็นไปได้ของประเภท:

พิมพ์ มันถูกขโมยไปหรือเปล่า [P(ใช่)] ถูกขโมยไปหรือเปล่า [P(No)]
กีฬา 4/5 2/5
SUV 1/5 3/5

ตารางความถี่แหล่งกำเนิดสินค้า:

ต้นทาง มันถูกขโมยหรือไม่ (ใช่) มันถูกขโมยหรือไม่ (ไม่มี)
ภายในประเทศ 2 3
นำเข้า 3 2

ตารางความเป็นไปได้ของแหล่งกำเนิดสินค้า:

ต้นทาง มันถูกขโมยไปหรือเปล่า [P(ใช่)] ถูกขโมยไปหรือเปล่า [P(No)]
ภายในประเทศ 2/5 3/5
นำเข้า 3/5 2/5

ปัญหาของเรามีตัวทำนาย 3 ตัวสำหรับ X ดังนั้นตามสมการที่เราเห็นก่อนหน้านี้ ความน่าจะเป็นหลัง P(ใช่ | X) จะเป็นดังนี้:

P(ใช่ | X) = P(สีแดง | ใช่) * P(SUV | ใช่) * P(ในประเทศ | ใช่) * P(ใช่)

= ⅗ x ⅕ x ⅖ x 1

= 0.048

P(No | X) จะเป็น:

P(No | X) = P(สีแดง | ไม่ใช่) * P(SUV | ไม่ใช่) * P(ในประเทศ | ไม่ใช่) * P(No)

= ⅖ x ⅗ x ⅗ x 1

= 0.144

ดังนั้น เนื่องจากความน่าจะเป็นหลัง P(No | X) มากกว่าความน่าจะเป็นหลัง P(ใช่ | X) รถ SUV ในประเทศ Red ของเราจะมี 'ไม่' ใน 'มันถูกขโมยหรือไม่' ส่วน.

ตัวอย่างควรแสดงให้คุณเห็นว่า Naive Bayes Classifier ทำงานอย่างไร เพื่อให้ได้ภาพที่ดีขึ้นของ Naive Bayes ที่อธิบาย ตอนนี้เราควรพูดถึงข้อดีและข้อเสียของมัน:

ข้อดีและข้อเสียของ Naive Bayes

ข้อดี

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

ข้อเสีย

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

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

การใช้งานของ Naive Bayes อธิบาย

ต่อไปนี้คือบางพื้นที่ที่อัลกอริทึมนี้พบแอปพลิเคชัน:

การจัดประเภทข้อความ

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

การวิเคราะห์ความเชื่อมั่น

หนึ่งในพื้นที่ที่โดดเด่นที่สุดของแมชชีนเลิร์นนิงคือการวิเคราะห์ความรู้สึก และอัลกอริทึมนี้ก็มีประโยชน์มากเช่นกัน การวิเคราะห์ความเชื่อมั่นมุ่งเน้นไปที่การระบุว่าลูกค้าคิดในเชิงบวกหรือเชิงลบเกี่ยวกับหัวข้อใดหัวข้อหนึ่ง (ผลิตภัณฑ์หรือบริการ)

ระบบผู้แนะนำ

ด้วยความช่วยเหลือของการกรองการทำงานร่วมกัน Naive Bayes Classifier สร้างระบบผู้แนะนำที่มีประสิทธิภาพเพื่อคาดการณ์ว่าผู้ใช้ต้องการผลิตภัณฑ์เฉพาะ (หรือทรัพยากร) หรือไม่ Amazon, Netflix และ Flipkart เป็นบริษัทชั้นนำที่ใช้ระบบผู้แนะนำเพื่อแนะนำผลิตภัณฑ์ให้กับลูกค้า

เรียนรู้เพิ่มเติม อัลกอริธึมการเรียนรู้ของเครื่อง

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

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

อัลกอริทึมของ naive bayes คืออะไร?

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

ข้อดีและข้อเสียของอ่าวไร้เดียงสามีอะไรบ้าง?

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

ใน Naive Bayes ตัวทำนาย (หรือลักษณะ) ทั้งหมดจะถือว่าเป็นอิสระ ซึ่งไม่ค่อยเกิดขึ้นในชีวิตจริง ซึ่งจะจำกัดความสามารถในการใช้งานของอัลกอริทึมในสถานการณ์จริง คุณไม่ควรใช้ความน่าจะเป็นอย่างจริงจังเพราะการประมาณค่าอาจผิดพลาดได้ในบางกรณี

แอปพลิเคชั่นของ naive bayes ในโลกแห่งความเป็นจริงมีอะไรบ้าง?

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