วิธีจัดการกับปัจจัยศูนย์ในการคำนวณลักษณนาม Naive Bayes?


14

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

ตัวอย่าง:

P(x|spam=yes)=P(TimeZone=US|spam=yes)P(GeoLocation=EU|spam=yes) ... =0.004

P(x|spam=no)=P(TimeZone=US|spam=no)P(GeoLocation=EU|spam=no) ... =0

ผลิตภัณฑ์ทั้งหมดกลายเป็นเพราะในข้อมูลการฝึกอบรมแอตทริบิวต์ TimeZone US จะเป็น Yes เสมอในชุดข้อมูลการฝึกอบรมขนาดเล็กของเรา ฉันจะจัดการสิ่งนี้ได้อย่างไร ฉันควรใช้ชุดข้อมูลการฝึกอบรมที่ใหญ่กว่านี้หรือมีความเป็นไปได้อื่นที่จะเอาชนะปัญหานี้ได้หรือไม่?0


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

ทำไมเราเพิ่ม 1 ใน 0 ความถี่ปัญหาอะไรคือตรรกะที่อยู่เบื้องหลังทำไมเราไม่เพิ่มหมายเลขอีก
Aftab Hussaiin

คำตอบ:


13

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

Spam=yesSpam=noTimeZone=US105TimeZone=EU00

P(TimeZone=US|Spam=yes)=1010=1

P(TimeZone=EU|Spam=yes)=010=0

จากนั้นคุณควรเพิ่มหนึ่งค่าทุกค่าในตารางนี้เมื่อคุณใช้เพื่อคำนวณความน่าจะเป็น:

Spam=yesSpam=noTimeZone=US116TimeZone=EU11

P(TimeZone=US|Spam=yes)=1112

P(TimeZone=EU|Spam=yes)=112


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