ฉันรู้ว่านี่เป็นคำถามเก่าที่มีคำตอบที่จัดตั้งขึ้น เหตุผลที่ฉันโพสต์คือคำตอบที่ยอมรับมีหลายองค์ประกอบของ k-NN ( k -neearest เพื่อนบ้าน) ซึ่งเป็นอัลกอริทึมที่แตกต่างกัน
k-NN และ NaiveBayes เป็นอัลกอริธึมการจำแนกประเภท ในเชิงแนวคิด k-NN ใช้แนวคิดของ "nearness" เพื่อจัดประเภทเอนทิตีใหม่ ใน k-NN 'nearness' ถูกจำลองด้วยแนวคิดเช่น Euclidean Distance หรือ Cosine Distance ในทางตรงกันข้ามใน NaiveBayes แนวคิดของ 'ความน่าจะเป็น' ถูกใช้เพื่อจัดประเภทเอนทิตีใหม่
เนื่องจากคำถามเกี่ยวกับ Naive Bayes นี่คือวิธีที่ฉันจะอธิบายความคิดและขั้นตอนสำหรับใครบางคน ฉันจะพยายามทำโดยใช้สมการไม่กี่คำและเป็นภาษาอังกฤษธรรมดาที่สุด
ประการแรกความน่าจะเป็นแบบมีเงื่อนไขและกฎของเบย์
ก่อนที่ใครบางคนสามารถเข้าใจและซาบซึ้งถึงความแตกต่างของ Naive Bayes พวกเขาจำเป็นต้องรู้แนวคิดที่เกี่ยวข้องสองอย่างก่อนคือแนวคิดเกี่ยวกับความน่าจะเป็นตามเงื่อนไขและกฎของเบย์ (หากคุณคุ้นเคยกับแนวคิดเหล่านี้ให้ข้ามไปที่หัวข้อการเดินทางไปยัง Naive Bayes ' )
ความน่าจะเป็นแบบมีเงื่อนไขในภาษาอังกฤษธรรมดา: ความน่าจะเป็นที่สิ่งใดจะเกิดขึ้นเนื่องจากมีสิ่งอื่นเกิดขึ้นแล้ว
สมมติว่ามีผลลัพธ์ O. และหลักฐาน E บางอย่างจากความน่าจะเป็นเหล่านี้: ความน่าจะเป็นที่มีทั้งผลลัพธ์ O และหลักฐาน E คือ: (ความน่าจะเป็นของ O เกิดขึ้น) คูณด้วย (Prob ของ E ที่ โอเกิดขึ้น)
ตัวอย่างหนึ่งที่จะเข้าใจความน่าจะเป็นที่มีเงื่อนไข:
สมมติว่าเรามีชุดของวุฒิสมาชิกสหรัฐ วุฒิสมาชิกอาจเป็นพรรคเดโมแครตหรือรีพับลิกัน พวกเขายังเป็นชายหรือหญิง
ถ้าเราเลือกสมาชิกวุฒิสภาหนึ่งคนโดยการสุ่มความน่าจะเป็นที่บุคคลนี้เป็นผู้หญิงประชาธิปไตย? ความน่าจะเป็นที่มีเงื่อนไขสามารถช่วยเราตอบได้
ความน่าจะเป็นของ (ประชาธิปัตย์และวุฒิสมาชิกหญิง) = Prob (วุฒิสมาชิกคือประชาธิปัตย์) คูณด้วยความน่าจะเป็นเงื่อนไขของการเป็นเพศหญิงเนื่องจากพวกเขาเป็นประชาธิปไตย
P(Democrat & Female) = P(Democrat) * P(Female | Democrat)
เราสามารถคำนวณสิ่งเดียวกันแน่นอนทางกลับกัน:
P(Democrat & Female) = P(Female) * P(Democrat | Female)
ทำความเข้าใจกับกฎของเบย์
แนวคิดนี้เป็นวิธีที่จะไปจาก P (Evidence | Known Outcome) ถึง P (Outcome | Known Evidence) บ่อยครั้งที่เรารู้ว่ามีการตรวจพบหลักฐานบางอย่างบ่อยเพียงใดโดยได้รับผลลัพธ์ที่ทราบ เราต้องใช้ความจริงที่รู้จักกันนี้ในการคำนวณการย้อนกลับเพื่อคำนวณโอกาสของผลลัพธ์ที่เกิดขึ้นตามหลักฐาน
P (ผลลัพธ์ระบุว่าเรารู้หลักฐาน) = P (หลักฐานระบุว่าเรารู้ผลลัพธ์) คูณ Prob (ผลลัพธ์) ปรับสัดส่วนโดย P (หลักฐาน)
ตัวอย่างคลาสสิกที่จะเข้าใจกฎของเบย์:
Probability of Disease D given Test-positive =
Prob(Test is positive|Disease) * P(Disease)
_______________________________________________________________
(scaled by) Prob(Testing Positive, with or without the disease)
ตอนนี้ทั้งหมดนี้เป็นเพียงคำนำเพื่อไปยัง Naive Bayes
การเดินทางไป Naive Bayes '
จนถึงตอนนี้เราได้พูดคุยเกี่ยวกับหลักฐานเพียงชิ้นเดียวเท่านั้น ในความเป็นจริงเราต้องทำนายผลลัพธ์ที่ได้จากหลักฐานหลายอย่าง ในกรณีนี้คณิตศาสตร์มีความซับซ้อนมาก เพื่อหลีกเลี่ยงภาวะแทรกซ้อนนั้นวิธีการหนึ่งก็คือการแยกหลักฐานหลายชิ้นและปฏิบัติต่อหลักฐานแต่ละชิ้นโดยอิสระ วิธีการนี้เป็นสาเหตุที่สิ่งนี้เรียกว่าซื่อๆเบย์
P(Outcome|Multiple Evidence) =
P(Evidence1|Outcome) * P(Evidence2|outcome) * ... * P(EvidenceN|outcome) * P(Outcome)
scaled by P(Multiple Evidence)
หลายคนเลือกที่จะจำสิ่งนี้เป็น:
P(Likelihood of Evidence) * Prior prob of outcome
P(outcome|evidence) = _________________________________________________
P(Evidence)
สังเกตบางสิ่งเกี่ยวกับสมการนี้:
- ถ้า Prob (หลักฐาน | ผลลัพธ์) เป็น 1 ดังนั้นเราจะคูณด้วย 1
- ถ้า Prob (หลักฐานเฉพาะ | ผล) เป็น 0 ดังนั้นโพรบทั้งหมด กลายเป็น 0 หากคุณเห็นหลักฐานที่ขัดแย้งกันเราสามารถแยกแยะผลลัพธ์นั้นออก
- เนื่องจากเราแบ่งทุกอย่างด้วย P (หลักฐาน) เราสามารถทำได้โดยไม่ต้องคำนวณ
- สัญชาตญาณที่อยู่เบื้องหลังการคูณด้วยก่อนหน้าคือเพื่อให้เรามีความน่าจะเป็นสูงต่อผลลัพธ์ทั่วไปและความน่าจะเป็นต่ำต่อผลลัพธ์ที่ไม่น่าจะเกิดขึ้น สิ่งเหล่านี้เรียกว่า
base rates
และพวกเขามีวิธีการที่จะไต่ความน่าจะเป็นที่คาดการณ์ของเรา
วิธีสมัคร NaiveBayes เพื่อทายผล
เพียงใช้สูตรด้านบนเพื่อผลลัพธ์ที่เป็นไปได้แต่ละรายการ เนื่องจากเราพยายามจัดประเภทผลลัพธ์แต่ละรายการจึงเรียกว่า a class
และมันมีclass label.
ของเราคือการดูหลักฐานเพื่อพิจารณาว่ามีแนวโน้มที่จะเป็นชั้นนี้หรือชั้นเรียนนั้นและกำหนดป้ายกำกับให้กับแต่ละหน่วยงาน อีกครั้งเราใช้วิธีที่ง่ายมาก: คลาสที่มีความน่าจะเป็นสูงสุดจะประกาศว่า "ผู้ชนะ" และฉลากระดับนั้นจะถูกกำหนดให้กับชุดค่าผสมของหลักฐานนั้น
ตัวอย่างผลไม้
ลองทำตัวอย่างเพื่อเพิ่มความเข้าใจของเรา: OP ขอตัวอย่างบัตรประจำตัว 'ผลไม้'
สมมติว่าเรามีข้อมูลเกี่ยวกับผลไม้ 1,000 ชิ้น พวกเขาเกิดขึ้นจะเป็นกล้วย , ส้มหรือผลไม้อื่น ๆ เรารู้ 3 ลักษณะเกี่ยวกับผลไม้แต่ละชนิด:
- ไม่ว่าจะเป็นแบบยาว
- ไม่ว่าจะเป็นขนมหวานและ
- ถ้าเป็นสีเหลือง
นี่คือ 'ชุดฝึกอบรม' ของเรา เราจะใช้สิ่งนี้เพื่อทำนายชนิดของผลไม้ใหม่ที่เราพบ
Type Long | Not Long || Sweet | Not Sweet || Yellow |Not Yellow|Total
___________________________________________________________________
Banana | 400 | 100 || 350 | 150 || 450 | 50 | 500
Orange | 0 | 300 || 150 | 150 || 300 | 0 | 300
Other Fruit | 100 | 100 || 150 | 50 || 50 | 150 | 200
____________________________________________________________________
Total | 500 | 500 || 650 | 350 || 800 | 200 | 1000
___________________________________________________________________
เราสามารถคำนวณสิ่งต่างๆมากมายเกี่ยวกับการเก็บผลไม้ของเราล่วงหน้า
ความน่าจะเป็นที่เรียกว่า "ก่อนหน้า" (ถ้าเราไม่รู้คุณสมบัติผลไม้ใด ๆ นี่จะเป็นการคาดเดาของเรา) นี่คือของเราbase rates.
P(Banana) = 0.5 (500/1000)
P(Orange) = 0.3
P(Other Fruit) = 0.2
ความน่าจะเป็นของ "หลักฐาน"
p(Long) = 0.5
P(Sweet) = 0.65
P(Yellow) = 0.8
ความน่าจะเป็นของ "โอกาส"
P(Long|Banana) = 0.8
P(Long|Orange) = 0 [Oranges are never long in all the fruit we have seen.]
....
P(Yellow|Other Fruit) = 50/200 = 0.25
P(Not Yellow|Other Fruit) = 0.75
ได้รับผลไม้วิธีการจำแนกมันได้อย่างไร
สมมติว่าเราได้รับคุณสมบัติของผลไม้ที่ไม่รู้จักและขอให้แบ่งมัน เราบอกว่าผลไม้นั้นยาวหวานและเหลือง มันเป็นกล้วยเหรอ? มันเป็นสีส้มหรือไม่? หรือมันเป็นผลไม้อื่น ๆ ?
เราสามารถเรียกใช้ตัวเลขสำหรับผลลัพธ์ 3 รายการแต่ละรายการทีละรายการ จากนั้นเราเลือกความน่าจะเป็นสูงสุดและ 'จำแนก' ผลไม้ที่เราไม่รู้จักว่าเป็นของชั้นเรียนที่มีความน่าจะเป็นสูงสุดตามหลักฐานก่อนหน้าของเรา (ชุดฝึกอบรมผลไม้ 1,000 ชุด):
P(Banana|Long, Sweet and Yellow)
P(Long|Banana) * P(Sweet|Banana) * P(Yellow|Banana) * P(banana)
= _______________________________________________________________
P(Long) * P(Sweet) * P(Yellow)
= 0.8 * 0.7 * 0.9 * 0.5 / P(evidence)
= 0.252 / P(evidence)
P(Orange|Long, Sweet and Yellow) = 0
P(Other Fruit|Long, Sweet and Yellow)
P(Long|Other fruit) * P(Sweet|Other fruit) * P(Yellow|Other fruit) * P(Other Fruit)
= ____________________________________________________________________________________
P(evidence)
= (100/200 * 150/200 * 50/200 * 200/1000) / P(evidence)
= 0.01875 / P(evidence)
ด้วยอัตรากำไรขั้นต้นที่ครอบงำ (0.252 >> 0.01875
) เราจัดผลไม้หวาน / ยาว / เหลืองนี้น่าจะเป็นกล้วย
เหตุใดตัวจําแนกเบย์จึงเป็นที่นิยม
ดูสิ่งที่มันลงมาในที่สุด เพียงแค่การนับและการคูณ เราสามารถคำนวณเงื่อนไขเหล่านี้ได้ล่วงหน้าและการจำแนกประเภทจึงกลายเป็นเรื่องง่ายรวดเร็วและมีประสิทธิภาพ
Let z = 1 / P(evidence).
ตอนนี้เราคำนวณปริมาณสามอย่างต่อไปนี้อย่างรวดเร็ว
P(Banana|evidence) = z * Prob(Banana) * Prob(Evidence1|Banana) * Prob(Evidence2|Banana) ...
P(Orange|Evidence) = z * Prob(Orange) * Prob(Evidence1|Orange) * Prob(Evidence2|Orange) ...
P(Other|Evidence) = z * Prob(Other) * Prob(Evidence1|Other) * Prob(Evidence2|Other) ...
กำหนดป้ายกำกับของชั้นเรียนว่าจำนวนใดสูงสุดและคุณทำเสร็จแล้ว
แม้จะมีชื่อ Naive Bayes ก็ยังยอดเยี่ยมในการใช้งานบางอย่าง การจำแนกข้อความเป็นพื้นที่หนึ่งที่มันส่องแสงจริงๆ
หวังว่าจะช่วยในการทำความเข้าใจแนวคิดที่อยู่เบื้องหลังอัลกอริทึมไร้เดียงสาเบย์