Naive Bayes อธิบาย: ฟังก์ชั่น, ข้อดี & ข้อเสีย, การใช้งานในปี 2022
เผยแพร่แล้ว: 2021-01-05Naive 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 ใช้การกรองการทำงานร่วมกันเพื่อสร้างระบบผู้แนะนำที่ซับซ้อนซึ่งสามารถคาดการณ์ได้ว่าผู้ใช้จะเพลิดเพลินกับผลิตภัณฑ์ (หรือทรัพยากร) ที่กำหนดหรือไม่