คุณต้องการที่จะรู้ว่าทำไมเราถึงต้องปรับให้เรียบในตัวจำแนก Naive Bayes (เมื่อเราสามารถละทิ้งคุณสมบัติที่ไม่รู้จักแทน)
คำตอบสำหรับคำถามของคุณคือ: ไม่จำเป็นต้องรู้ทุกคำในทุกชั้นเรียน
สมมติว่ามีคลาสMและNสองคลาสพร้อมคุณสมบัติA , BและCดังนี้
M: A = 3, B = 1, C = 0
(ในคลาสM , Aจะปรากฏขึ้น 3 ครั้งและBเพียงครั้งเดียว)
N: A = 0, B = 1, C = 3
(ในคลาสN , Cจะปรากฏขึ้น 3 ครั้งและBเพียงครั้งเดียว)
มาดูกันว่าจะเกิดอะไรขึ้นเมื่อคุณละทิ้งฟีเจอร์ที่ปรากฏเป็นศูนย์ครั้ง
A) ทิ้งคุณสมบัติที่ปรากฏเป็นศูนย์ในทุกคลาส
หากคุณทิ้งคุณสมบัติAและCเนื่องจากปรากฏเป็นศูนย์ในคลาสใด ๆคุณจะเหลือฟีเจอร์Bเพื่อจัดประเภทเอกสารด้วยเท่านั้น
และการสูญเสียข้อมูลนั้นเป็นสิ่งที่ไม่ดีอย่างที่คุณเห็นด้านล่าง!
หากคุณพบเอกสารทดสอบดังนี้:
B = 1, C = 3
(ประกอบด้วย B หนึ่งครั้งและ C สามครั้ง)
ตอนนี้เมื่อคุณได้ทิ้งมีและBคุณจะไม่สามารถที่จะบอกได้ว่าเอกสารดังกล่าวข้างต้นเป็นของชั้นMหรือระดับN
ดังนั้นการสูญเสียข้อมูลคุณลักษณะใด ๆ จึงเป็นสิ่งที่ไม่ดี!
B) ทิ้งคุณสมบัติที่ปรากฏเป็นศูนย์ในทุกคลาส
เป็นไปได้หรือไม่ที่จะแก้ไขปัญหานี้โดยการยกเลิกเฉพาะคุณสมบัติที่ปรากฏเป็นศูนย์ในทุกคลาส?
ไม่เพราะนั่นจะสร้างปัญหาของตัวเอง!
เอกสารทดสอบต่อไปนี้แสดงให้เห็นถึงสิ่งที่จะเกิดขึ้นหากเราทำเช่นนั้น:
A = 3, B = 1, C = 1
ความน่าจะเป็นของMและNจะกลายเป็นศูนย์ทั้งคู่(เพราะเราไม่ได้ละทิ้งความน่าจะเป็นศูนย์ของAในคลาสNและความน่าจะเป็นศูนย์ของCในคลาสM )
C) อย่าทิ้งอะไรไป - ใช้การปรับให้เรียบแทน
การปรับให้เรียบช่วยให้คุณจำแนกเอกสารทั้งสองข้างต้นได้อย่างถูกต้องเนื่องจาก:
- คุณจะไม่สูญเสียข้อมูลการนับในชั้นเรียนที่มีข้อมูลดังกล่าวและ
- คุณไม่ต้องโต้แย้งกับการนับศูนย์
ลักษณนามไร้เดียงสาในทางปฏิบัติ
ลักษณนาม Naive Bayes ใน NLTK เคยใช้ในการทิ้งคุณสมบัติที่มีค่าเป็นศูนย์ในชั้นเรียนใด ๆ
สิ่งนี้ใช้เพื่อให้ทำงานได้ไม่ดีเมื่อฝึกอบรมโดยใช้โพรซีเดอร์ EM อย่างหนัก (ซึ่งตัวจําแนกถูกบูสเตอร์ติดตั้งจากข้อมูลการฝึกอบรมเพียงเล็กน้อย)