สวัสดีครับวันนี้จะมาแชร์เรื่อง Naive Bayes classification
"แล้ว Naive Bayes classification คืออะไร"
Naive Bayes classification เป็น Model หนึ่งในการแบ่งกลุ่มที่เราต้องการโดยใช้ความน่าจะเป็นที่ชื่อว่า Naive bayes ยกตัวอย่างเช่น เราต้องการแบ่งกลุ่มว่าคนไข้ที่เข้ามานั้นเป็นไข้หวัดใหญ่หรือไม่ ซึ่งเราจะต้องถามอาการคนไข้มาให้ได้มากที่สุดว่าอาการเป็นอย่างไร แล้วเราถึงจะคาดคะเนจากข้อมูลอาการที่ได้ว่ามีความน่าจะเป็น ไข้หวัดใหญ่เท่าไหร่ เช่นความน่าจะเป็น 95% เป็นต้น ซึ่งความน่าจะเป็นดังกล่าว เราจะใช้ Naive Bayes ในการหาค่าความน่าจะเป็นนั่นเอง
"พื้นฐานความน่าจะเป็น"
ก่อนที่จะคำนวณโดยใช้ Naive Bayes ขออธิบายพื้นฐานความน่าจะเป็น(Probability) ซะหน่อยครับ
สมมุติโจทย์เราคือ ต้องการหาความน่าจะเป็นของการโยนเหรีญหนึ่งครั้งแล้วโอกาสที่จะเป็นหัวมีความน่าจะเป็นเท่าไหร่ เราสามารถรู้ได้ว่ามีโอกาสเกิดได้ 50 เปอร์เซ็นดังนี้ครับ
P(coin land on H) = p(H) = P(H) = Prob(H) = 1/2 = 0.5
แล้วถ้าสมมุติโจทย์เราคือต้องการหาความน่าจะเป็นของการทอยลูกเต๋าหนึ่งลูกแล้วโอกาสที่จะได้เลขจำนวนคู่มีความน่าจะเป็นเท่าไหร่ เราสามารถรู้ได้ว่ามีโอกาสเกิดได้ 50 เปอร์เซ็นดังนี้ครับ
P(dice lands on an even number) = 3/6 = 1/2 = 0.5
จากสมการข้างบนเรารู้อยู่แล้วว่าลูกเต๋า 1 ลูกมีค่าทั้งหมด 6 ค่าคือ 1,2,3,4,5,6 ซึ่งเป็นเลขคู่คือเลข 2,4,6 ซึ่งมีทั้งหมด 3 ค่า ดังนั้นความน่าจะเป็นที่ออกได้เลขคู่จึงเกิดจาก 3/6=1/2=0.5 นั่นเองครับ
จากที่ได้ลองคำนวณที่ผ่านมาเราจึงสรุปเป็นสูตรความน่าจะเป็นได้ดังนี้ครับ
โดยที่ค่าของความน่าจะเป็นมีค่าตั้งแต่ 0 ถึง 1 โดยที่
- 0 หมายถึงไม่สามารถเกิดเหตุการณ์ที่สนใจได้
- 1 หมายถึง สามารถเกิดเหตุการณ์ที่สนใจได้แน่นอน 100 เปอร์เซ็น และค่ายิ่งเข้าใกล้เลข 1 เท่าไหร่แสดงว่ามีโอกาสเกิดเหตุการณ์ที่สนใจได้มากขึ้น
Complement of an Event
ในการหาความน่าจะเป็นที่ตรงข้ามกับเหตุการณ์ที่เราสนใจเราจะเรียกว่า Complement of an Event
ตัวอย่างเช่น
เราต้องการหาความน่าจะเป็นของการโยนเหรีญหนึ่งครั้งแล้วโอกาสที่จะเป็นหัว
ดังนั้น ถ้าเราต้องการหา Complement of an Event เราจะเขียนใหม่ได้ว่า
ต้องการหาความน่าจะเป็นของการโยนเหรีญหนึ่งครั้งแล้วโอกาสที่จะ
ไม่เป็นหัว
อีกตัวอย่าง
เราต้องการหาความน่าจะเป็นของการทอยลูกเต๋าหนึ่งลูกแล้วโอกาสที่จะได้เลขจำนวนคู่
ดังนั้น ถ้าเราต้องการหา Complement of an Event เราจะเขียนใหม่ได้ว่า
เราต้องการหาความน่าจะเป็นของการทอยลูกเต๋าหนึ่งลูกแล้วโอกาสที่จะ
ไม่ได้เลขจำนวนคู่
เราสามารถเขียน Complement of an Event เป็นสมการคณิตศาสตร์ได้ดังนี้ครับ
ยกตัวอย่างต้องการหาความน่าจะเป็นของการทอยลูกเต๋าหนึ่งลูกแล้วไม่ได้ค่า 1
ถ้าเราคิดปกติคือลูกเต๋าหนึ่งลูกมีทั้งหมด 6 ค่าคือ 1,2,3,4,5,6 และค่าที่ไม่เท่ากับ 1 มี 5 ค่าคือ 2,3,4,5,6
ดังนั้นความน่าจะเป็นของการทอยลูกเต๋าหนึ่งลูกแล้วไม่ได้ค่า 1 คือ 5/6
p(dice is not 1) = 5/6
หรือคำนวณโดยใช้สูตร Complement ได้ดังนี้
p(dice is not 1) = 1 - (p dice is 1)
= 1 - 1/6
= 5/6
Independent event
Independent event คือเหตุการณ์ที่สนใจทั้งหมดไม่เกี่ยวข้องซึ่งกันและกัน หรืออาจกล่าวได้ว่าเหตุการณ์ใดเหตุการณ์หนึ่งไม่ส่งผลกระทบซึ่งกันและกัน
ยกตัวอย่างเช่น เราต้องการหาความน่าจะเป็นเมื่อโยนเหรียญ 2 ครั้งแล้วได้ หัว 2 ครั้ง จะสังเกตุว่าถ้าโยนเหรียญครั้งแรกแล้วผลที่ได้จะไม่ทำให้การโยนเหรียญครั้งที่ 2 เปลี่ยนแปลงไปคือ โยนเหรียญครั้งแรกความน่าจะเป็นที่ออกหัวคือ 1/2 = 0.5 หลังจากโยนครั้งแรกเสร็จโยนครั้งที่ 2 โอกาสที่เหรียญจะออกหัวก็มีความน่าจะเป็น 1/2 = 0.5 เหมือนเดิม เราจึงเรียกเหตุการ์ดังกล่าวว่าเป็นเหตุการที่ Independent ต่อกัน ซึ่งเราสามารถเขียนสมการดังกล่าวได้ดังนี้ครับ
p(A and B) = p(A,B) = p(A) × p(B)
Example
p(H and H) = p(H,H) = p(H) × p(H) = 1/2 × 1/2 = 1/4
Dependent Event
Dependent Event คือ เหตุการที่สนใจทั้งหมดเกี่ยวข้องซึ่งกันและกัน หรืออาจกล่าวได้ว่าเหตุการณ์ใดเหตุการณ์หนึ่งจะส่งผลกระทบซึ่งกันและกัน
ยกตัวอย่างเช่น เรามีถุงอยู่หนึ่งถุงซึ่งในถุงประกอบไปด้วยลูกบอล 7 ลูกโดยมีลูกสีฟ้า 4 ลูก และลูกสีแดง 3 ลูกดังรูปด้านล่าง
เราต้องการหาความน่าจะเป็นที่ล้วงเข้าไปหยิบแต่ละครั้งแล้วได้สีฟ้า 2 ลูก โดยในการหยิบแต่ละครั้งจะไม่นำลูกบอลคืนกลับเข้าไปในถุง
จากเงื่อนไขดังกล่าว ความน่าจะเป็นที่จะหยิบได้ลูกสีฟ้าครั้งแรกจะมีโอกาสเป็น 4/7 แต่พอครั้งต่อไปต้องการหาความน่าจะเป็นที่หยิบได้ลูกสีฟ้าอีกครั้งจะมีโอกาสเหลือเพียง 3/6 เนื่องจากถ้าครั้งแรกได้ลูกสีฟ้าแล้วในถุงจะเหลือบอลอยู่ 6 ลูกคือ สีฟ้า 3 ลูก และ สีแดง 3 ลูกนั่นเอง จะเห็นว่าเหตุการ์แรกส่งผลกระทบต่อความน่าจะเป็นต่อเหตุการ์ที่2 เราจึงเรียกเหตุการร์นี้ว่าเป็นเหตุการณ์ที่ Dependent ต่อกัน
เราสามารถหาเหตุกรณ์ที่จะเกิดขึ้นทั้งหมดได้ดังนี้
สามารถเขียนสมการได้เป็น
จากสมการเราจะเรียก
P(A,B) ว่า join
P(A) ว่า prior
P(B|A) ว่า conditional
เพื่อความเข้าใจมากขึ้นเราสามานำสมการด้านบนมาเขียนได้เป็นรูปด้านล่าง
ทฤษฎีความน่าจะเป็นเบย์ (Bayes Theorem)
ทฤษฎีความน่าจะเป็นเบย์เป็น ทฤษฎีที่เกี่ยวกับ ความน่าจะเป็นที่เกิดเหตุการณ์หนึ่ง ก็ต่อเมื่อเหตุการนึงได้เกิดไปแล้ว
ยกตัวอย่างเช่น
ในประชากรทั้งหมดจะมีคนที่เป็นภูมิแพ้อยู่ 1% นักวิทยาศาสตร์จึงได้สร้างเครื่องมือในการตรวจสอบว่าคนไข้ที่มาตรวจนั้นเป็นภูมิแพ้หรือไม่
ซึ่งจากการทดสอบเครื่องมือดังกล่าวจะให้ผลดังนี้
- ถ้าคนไข้ที่เป็นโรคภูมิแพ้มาตรวจเครื่องมือดังกล่าวจะมีโอกาสแสดงค่าจำนวนเต็มบวก 99%
- ถ้าคนไข้ไม่เป็นภูมิแพ้ เครื่องมือดังกล่าวจะมีโอกาสแสดงค่าจำนวนเต็มลบ 99%
อยากถามว่าหากนำเครื่องมือดังกล่าวเป็นใช้จริง โดยการตรวจคนไข้ที่ไม่รู้ว่าเป็นโรคภูมิแพ้หรือไม่ แต่เครื่องมือดังกล่าวแสดงค่าจำนวนเต็มบวก แสดงว่าคนไข้นั้นมีโอกาสเป็นโรคภูมิแพ้กี่เปอร์เซ็น
บางคนอาจจะคิดว่าก็น่าจะเป็น 99% แต่คำตอบจริงแล้วคือมีโอกาสเกิดภูมิแพ้เพียง 50% เท่านั้นโดยการใช้ทฤษฎีความน่าจะเป็นเบย์เข้ามาคิดโดยมีสมการดังนี้
จากสมการเราจะเรียก
p(A|B) ว่า posterior
p(B|A) ว่า likelihood
p(A) ว่า prior
p(B) ว่า marginal หรือ evidence
จากตัวอย่างที่ผ่านมาสามารถสรุปได้ดังนี้
- ในประชากรทั้งหมดจะมีคนที่เป็นภูมิแพ้อยู่ 1% คือ P(A) = 0.01
- ถ้าคนไข้ที่เป็นโรคภูมิแพ้มาตรวจเครื่องมือดังกล่าวจะมีโอกาสแสดงค่าจำนวนเต็มบวก 99% คือ P(+|A) = 0.99
- ถ้าคนไข้ไม่เป็นภูมิแพ้ เครื่องมือดังกล่าวจะมีโอกาสแสดงค่าจำนวนเต็มลบ 99% คือ P(-|A') = 0.99
- อยากถามว่าหากนำเครื่องมือดังกล่าวเป็นใช้จริง โดยการตรวจคนไข้ที่ไม่รู้ว่าเป็นโรคภูมิแพ้หรือไม่ แต่เครื่องมือดังกล่าวแสดงค่าจำนวนเต็ม แสดงว่าคนไข้นั้นมีโอกาสเป็นโรคภูมิแพ้กี่เปอร์เซ็น คือให้หา P(A|+) = ?
เราสามารถนำทฤษฎีความน่าจะเป็นเบย์มาคำนวณได้ดังนี้
reference
http://dataminingtrend.com/2014/naive-bayes/