วันอาทิตย์ที่ 18 สิงหาคม พ.ศ. 2562

Naive Bayes classification #2


   สวัสดีครับหลังจากบทความที่แล้ว(https://cakeknowledgeblogs.blogspot.com/2019/08/naive-bayes-classification-1.html) ได้แชร์ พื้นฐานความน่าจะเป็นและทฤษฎี Bayes กันไปแล้ววันนี้จะมาเข้าหัวข้อเรื่อง Naive Bayes classification กัน

" Naive Bayes Classification ทำงานยังไง? "
Naive Bayes Classsification นั้นจะใช้ทฤษฎีของ Bayes มาคำนวณโดยมีเงื่อนไขว่าข้อมูลที่ใช้ในการคำนวณนั้นต้องเป็นแบบ Independence จึงได้รูปแบบสมการใหม่ด้านล่างดังนี้

สม Bayes' theorem

เนืองจาก Naive Bayes Classsification มีเงื่อนไขว่าข้อมูลที่มาคำนวณต้องเป็น Independence ต่อกัน
จากสมการ Independence

p(A and B) = p(A,B) = p(A)p(B)

เราจึงแปลงสมการ Bayes ได้ดังนี้ครับ


ในการหาค่า y ที่ต่างกันใช้ค่า p(x1,x2,x3,...,xn) เหมือนกันเราจึงสามารถตัดออกไปได้เนื่องจากเป็นค่าที่ไม่เปลี่ยนแปลงอะไร


จัดรูปแบบสมการ

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

เพื่อความเข้าใจมากขึ้นเราจะลองมาคำนวณจริงกันครับ
โดยเราจะมีข้อมูลดังนี้ครับ

ข้อมูลดังตารางด้านบนเป็นการบอกว่าสภาพแวดล้อมข้างนอกนั้นเหมาะแก่การเล่นกอร์ฟหรือไม่โดยสภาพแวดล้อมนั้นเราจะดูจาก สภาพอากาศ(Outlook), อุณหภูมิ(Temperature), ลมแรง(Windy)

ทำการจัดรูปแบบตารางให้เป็นบอกความถี่ของข้อมูลแล้วคำนวณหาความน่าจะเป็นได้ดังนี้

จากตารางด้านบนเราได้คำนวณหา p(xi|yi) สำหรับแต่ละ xi ในเงื่อนไข yi ดังตารางที่ 1-4
ยกตัวอย่างเช่น หาความน่าจะเป็นที่เหมาะแก่การเล่นกอร์ฟ (y = yes )แล้วอุณหภูมิข้างนอกหนาว(x = Cool) เราสามารถหาความน่าจะเป็นได้เป็น P(x = cool|y=yes) = 3/9

เราต้องหาค่าความน่าจะเป็น p(y) ซึ่งถูกคำนวณในตารางที่ 5 ยกตัวอย่างเช่น p(y=yes) = 9/14

ตอนนี้เราได้เตรียมตารางสำหรับในการคำนวณ Naiv ฺBayes เรียบร้อบแล้วครับงั้นเรามาลองทดสอบกันครับ

สมมุติให้สภาพอากาศปัจจุบัน แดดจ้า(Outlook = Sunny) อุณหภูมิร้อน(Temperature = Hot) ความชื้นปกติ (Huminity = Normal) และไม่มีลม (Windy = False)
today = (Sunny, Hot, Normal, False)

ดังนั้นในการหาว่าปัจจุบันเหมาะแก่การเล่นกอร์ฟหรือไม่เราจะคำนวณดังนี้ครับ
 หาค่าความน่าจะเป็นที่เหมาะแก่การเล่นกอร์ฟของวันนี้

 หาค่าความน่าจะเป็นที่ไม่เหมาะแก่การเล่นกอร์ฟ

p(today) ทั้งสองสมการเป็นค่าที่เหมือนกัน ดังนั้นเราสามารถไม่สนใจ p(today) จึงได้เป็นสมการดังนี้
และ

ดังนั้นเราสามารถคำนวณค่าความน่าจะเป็นที่เหมาะแก่การเล่นกอร์ฟของวันนี้ได้เป็น

เราสามารถคำนวณค่าความน่าจะเป็นที่ไม่เหมาะแก่การเล่นกอร์ฟของวันนี้ได้เป็น


จะเห็นว่าความน่าจะเป็นที่วันนี้เหมาะแก่การเล่นกอร์ฟมากกว่าไม่เหมาะแก่การเล่นกอร์ฟ



ดังนั้นเราจึงสรุปได้ว่าวันนี้เหมาะแก่การเล่นกอร์ฟ
สุดท้ายนี้ผมหวังว่าผู้อ่านจะได้ประโยชน์จากบทความนี้ครับ

reference
http://dataminingtrend.com/2014/naive-bayes/
https://www.geeksforgeeks.org/naive-bayes-classifiers/
https://www.analyticsvidhya.com/blog/2017/09/naive-bayes-explained/

ไม่มีความคิดเห็น:

แสดงความคิดเห็น