เหตุใดตัวจําแนกเบส์แบบไร้เดียงสาจึงทําได้ดี?


38

ตัวแยกประเภท Naive Bayes เป็นตัวเลือกยอดนิยมสำหรับปัญหาการจำแนกประเภท มีสาเหตุหลายประการรวมถึง:

  • "Zeitgeist" - การรับรู้อย่างกว้างขวางหลังจากความสำเร็จของตัวกรองสแปมเมื่อสิบปีที่แล้ว
  • ง่ายต่อการเขียน
  • รูปแบบลักษณนามนั้นรวดเร็วในการสร้าง
  • โมเดลสามารถแก้ไขได้ด้วยข้อมูลการฝึกอบรมใหม่โดยไม่ต้องสร้างโมเดลใหม่

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

มักจะไม่สามารถสันนิษฐานได้ว่าสมมติฐานความเป็นอิสระและในกรณีส่วนใหญ่ (ส่วนใหญ่) รวมถึงตัวอย่างตัวกรองสแปม

เหตุใดตัวจําแนก Naive Bayes จึงยังทํางานได้ดีมากในแอปพลิเคชันดังกล่าวแม้ว่าคุณสมบัติจะไม่แยกจากกันหรือไม่

คำตอบ:


23

บทความนี้ดูเหมือนจะพิสูจน์ (ฉันไม่สามารถทำตามคณิตศาสตร์ได้) ว่า Bayes นั้นดีไม่เพียง แต่เมื่อคุณสมบัติเป็นอิสระ แต่เมื่อการพึ่งพาคุณสมบัติจากกันและกันมีความคล้ายคลึงกันระหว่างคุณสมบัติ:

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


1
ในเชิงคุณภาพที่เหมาะสม คุณสมบัติที่ขึ้นอยู่กับจะส่งผลให้น้ำหนัก - ดังนั้นการกระจายที่สม่ำเสมอหรือการกระจายที่ยกเลิกจะยกเลิกการถ่วงน้ำหนักนี้ อย่างไรก็ตามการพึ่งพา "lop-sided" อาจจะยังคงทำงานได้ไม่ดี? ฉันเดาว่าเป็นตัวอย่างของสแปมเราควรคาดหวังว่าจะมีการพึ่งพามากสำหรับคุณลักษณะสแปม + แต่ไม่จำเป็นต้องมี - สแปมในกรณีทั่วไป อย่างไรก็ตามบุคคลหนึ่งอาจได้รับอีเมลที่ถูกต้องตามกฎหมายจำนวนมากในหัวข้อเฉพาะดังนั้นในกรณีนั้นจะมีคุณสมบัติที่ต้องพึ่งพาจำนวนมากซึ่งจะทำให้สมดุล + ฟีเจอร์สแปม
winwaed

3
ฉันยังแนะนำกระดาษนี้: cs.stanford.edu/people/ang/papers/…
Dov

25

ปัญหาการเรียนรู้ของเครื่องส่วนใหญ่นั้นง่ายมาก!

ดูตัวอย่างที่บล็อกจอห์นแลง สิ่งที่เขาพูดจริง ๆ คือ ML ทำให้ปัญหาง่ายขึ้นและนี่เป็นปัญหาสำหรับนักวิจัยในแง่ที่ว่าพวกเขาควรจะลองใช้วิธีการกับปัญหาง่าย ๆ หลากหลายหรือโจมตีปัญหาที่ยากขึ้น อย่างไรก็ตามผลพลอยได้คือว่าสำหรับปัญหามากมายข้อมูลจะแยกเชิงเส้น (หรืออย่างน้อยเกือบ) ซึ่งในกรณีใด ๆ ลักษณนามเชิงเส้นจะทำงานได้ดี! มันเกิดขึ้นเพียงว่าผู้เขียนกระดาษกรองจดหมายขยะดั้งเดิมเลือกที่จะใช้ Naive Bayes แต่ถ้าพวกเขาใช้ Perceptron, SVM, การวิเคราะห์จำแนกชาวฟิชเชอร์, การวิเคราะห์การแบ่งแยก, การถดถอยโลจิสติก, AdaBoost หรืออะไรอื่น ๆ

ความจริงที่ว่ามันค่อนข้างง่ายในการเขียนโค้ดอัลกอริทึมช่วย ตัวอย่างเช่นการเขียนโค้ด SVM คุณต้องมีตัวแก้ไขQPหรือคุณต้องเขียนโค้ดอัลกอริทึม SMOซึ่งไม่ใช่งานที่ไม่สำคัญ แน่นอนคุณสามารถดาวน์โหลดlibsvm ได้แต่ในวันแรก ๆ ที่ไม่มีตัวเลือก อย่างไรก็ตามยังมีอัลกอริธึมง่ายๆอื่น ๆ อีกมากมาย (รวมถึง Perceptron ที่กล่าวถึงข้างต้น) ซึ่งง่ายต่อการเขียนโค้ด (และอนุญาตการอัปเดตที่เพิ่มขึ้นตามคำถามที่กล่าวถึง)

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


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

1
ใช่มันเป็นญาติและยังมีจำนวนมากที่มีปัญหาเพื่อให้ยังคงมีความอุดมสมบูรณ์ของคนยากออกมี! และฉันคิดว่าขอบเขตระหว่าง ML และการเรียนรู้ของมนุษย์นั้นพร่ามัวอยู่เสมอ ... หากคุณกำลังสร้างแบบจำลองความน่าจะเป็นที่น่าอัศจรรย์ที่คุณกำลังทำสิ่งเดียวกัน NFLT แบบเก่าที่ดีบอกเราว่าวิธีหนึ่งไม่สามารถแก้ปัญหาทั้งหมดได้อย่างไรก็ตามวิธีการที่ซับซ้อนนั้นคือดังนั้นเราจะต้องให้มนุษย์ออกแบบแบบจำลอง / เมล็ด / อัลกอริทึมหรืออะไรก็ตามที่ต้องการเพื่อให้ได้ประโยชน์จากข้อมูลของคุณมากขึ้น
tdc

จริง - เส้นที่พร่ามัวอย่างแน่นอน!
winwaed

1
ทำไมต้องลงคะแนน สนใจที่จะแสดงความคิดเห็น?
tdc

7

จากการใช้ Naive Bayesian Classifiers อย่างกว้างขวางในเครื่องมือจำแนกประเภทเซกเมนต์ประสบการณ์ของฉันสอดคล้องกับเอกสารที่ตีพิมพ์แสดงให้เห็นว่าเอ็นบีซีสามารถเปรียบเทียบได้อย่างแม่นยำในการจำแนกเชิงเส้นและ CART / CHAID เมื่อตัวแปรตัวทำนายทั้งหมดพร้อมใช้งาน

(โดยความแม่นยำทั้ง "อัตราการเข้าชม" ในการทำนายโซลูชันที่ถูกต้องเป็นวิธีที่น่าจะเป็นไปได้มากที่สุดเช่นเดียวกับการสอบเทียบหมายถึง a, การประมาณการสมาชิก 75% นั้นถูกต้องใน 70% -80% ของคดี)

สองเซ็นต์ของฉันคือ NBC ทำงานได้ดีเพราะ:

  • ความสัมพันธ์ระหว่างตัวแปรทำนายไม่แข็งแรงอย่างที่ใคร ๆ คิด (คะแนนข้อมูลร่วมกันระหว่าง 0.05 ถึง 0.15 เป็นเรื่องปกติ)
  • เอ็นบีซีสามารถจัดการกับตัวแปรโพลีโทไมด์ที่แยกกันได้ดีโดยไม่ต้องการให้เราแบ่งขั้วพวกนั้นออกอย่างหยาบ ๆ หรือจัดการกับตัวแปรอันดับที่สำคัญ
  • NBC ใช้ตัวแปรทั้งหมดพร้อมกันในขณะที่ CART / CHAID ใช้เพียงไม่กี่ตัว

และนั่นคือเมื่อสังเกตตัวแปรทั้งหมด สิ่งที่ทำให้เอ็นบีซีดึงออกจากแพ็คจริงๆคือมันลดระดับลงอย่างงดงามเมื่อตัวแปรตัวทำนายหนึ่งตัวหรือมากกว่าหายไปหรือไม่ได้สังเกต CART / CHAID และการวิเคราะห์จำแนกเชิงเส้นหยุดนิ่งในกรณีนั้น

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.