2 ก.พ. 2022 เวลา 08:00 • การศึกษา
Machine Hee-hee 101 EP8
K-Nearest Neighbor EP 1
สวัสดีครับผู้อ่านทุกท่าน ขอโทษที่หายไปนานครับ
เกิดเหตุขัดข้องนิดหน่อย ผมได้ทำ Lecture ที่ผมเขียนไว้เป็น Demo หาย เลยรู้สึก Fail แต่ตอนนี้ดีขึ้นแล้วครับ พร้อมกลับมาทำใหม่แล้ว
คราวก่อนผมจบกันไปในเรื่อง Decision Tree และ แน่นอนไม่ได้มีแค่ Algorithm เดียว
วันนี้ผมจะมาเสนอ Algorithm อีกอัน คือ KNN
KNN คืออะไร ?
KNN หรือ K-Nearest Neighbor มีความหมายว่า "เพื่อนบ้านที่ใกล้ที่สุด K ตัว"
ความสุดยอดของมันคือ มันจะไปอยู่ ณ ตำแหน่งท่ามกลางช้อมูล และ ทำนายตามข้อมูลที่อยู่ใกล้ที่สุด K ตัว ( K คือ จำนวนที่เราเลือกจะมานำมาเปรียบเทียบ )
เพื่อความเข้าใจ ผมขอแสดงภาพให้เห็นนะครับ
ดาวคือ ตำแหน่งของ Test Data ที่เรา Input
จากภาพเราจะเห็นได้ว่าจะมี สี่เหลี่ยม และ วงกลม ซึ่งพวกนี้เป็น Class/Label โดยตำแหน่งจะมาจาก Feature ( ที่ภาพเป็น 2 Feature เพื่อความเข้าใจง่าย
แต่ความเป็นจริง Feature จะมีมากกว่านั้นและต้องใช้โปรแกรมในการ Plot Graph)
ขั้นตอนการทำงาน KNN ในขี่นตอนฝึก(Train) จะเป็นแค่การอ่านข้อมูลไปเก็บใน Database เท่านั้น เราเรียกการทำงานแบบนี้ว่า "Lazy Learning"
การทำงานของมันจะเริ่มเมื่อมีการ Input ข้อมูล Test data หรือ ชุดข้อมูลทดสอบ
ดังนั้นสิ่งสำคัญที่สุดในการจำแนกคือ ระยะทางระหว่าง Train-Test Data จากในภาพ
ถ้าเราเลือก K = 1 หมายความว่าเราจะหาระยที่ใกล้ที่สุดระหว่าง Train - Test 1 ตัวอย่าง
ถ้าเราเลือก K = 3 หมายความว่าเราจะหาระยะที่ใกล้ที่สุดระหว่าง Train - Test 3 ตัวอย่าง
ถ้า K = 1 Class ที่อยู่ใกล้ที่สุดจะเป็นวงกลม
แต่ถ้า K เป็น 3 Class ที่ใกล้ที่สุดจะได้เป็น วงกลม 1 สี่เหลี่ยม 2 ซึ่งการทำนายจะขึ้นอยู่กับฟังก์ชันที่เลือก แต่โดยเริ่มต้นเราจะใช้ Majority Vote ก็คือเสียงข้างมาก ดังนั้น ถ้าเราอิงตามฟังก์ชันเริ่มต้น ผลลัพธ์จะเป็น สี่เหลี่ยม
NOTE การเลือก K ควรจะเป็นเลขคี่
จากการที่ KNN ต้องการผลเฉลย ดังนั้น KNN จึงจัดเป็น Supervised Learning และนอกจากนั้น KNN สามารถทำนายปัญหาประเภท Classification และ Regression ได้
จากตัวอย่างนี้ Keyword ที่สำคัญของการทำงานคือ "ระยะทาง" ดังนั้น เราจะพูดถึงการหาระยะทาง แต่ก่อนที่เราจะพูดถึง เราจะต้องมาแบ่งปัญหาตาม Feature กันก่อน
อย่างที่เราทราบกันดีว่า Feature จะมี 2 ประเภท คือ ประเภทตัวเลข และ ประเภทจัดหมวดหมู่ (Nominal)
ดังนั้นเราสามารถสรุปวิธีการหาระยะทางตามประเภทของ Feature ได้ดังนี้
Feature ตัวเลข -> Normalization -> Euclidean, Manhattan, Minkowski
Feature จัดหมวดหมู่ -> Hamming, VDM
Note: ตัวเลขต้องมีการทำ Normalization
Normalization คืออะไร ?
Normalization คือ การทำให้ข้อมูลอยู่ในช่วงระหว่าง 0-1 เนื่องจากข้อมูลประเภทตัวเลขนั้นสามารถมีค่าได้ตั้งแต่ - Infinity ถึง +Infinity ซึ่งจะทำให้ระยะตำแหน่งของข้อมูลไม่จัดเป็นกลุ่ม (ค่ากระจาย) ส่งผลต่อการ Predict
โดยสูตร Normalization คือ
  • Xi คือค่าในปัจจุบันของ Feature นั้น ๆ
  • min(X) คือ ค่าที่น้อยที่สุดใน Feature นั้น ๆ
  • Max(X) คือ ค่าที่มากสุดใน Feature นั้น ๆ
ครั้งหน้าเราจะมาพูดถึง สูตรในการหาระยะทาง, วิธีใช้ และ วิธีการหาผลลัพธ์ที่นอกจากการใช้ Majority Vote
เป็นไงกันบ้างครับ สำหรับใครที่ยังไม่เข้าใจก็ไม่ต้องห่วงครับ ผมจะมีตัวอย่าง เพื่อให้ทุกคนเห็นภาพง่ายขึ้น
ในบทความนี้ผมอยากให้ทุกคนเห็นภาพว่า KNN นั้นใช้วิธีการนำ Class ที่อยู่ใกล้ที่สุดมาเป็นตัวอ้างอิงในการทำนาย เท่านั้นเองครับ
สำหรับคนที่สงสัย หรือ อยากให้ข้อมูลเพิ่มเติมสามารถพิมพ์ใน คอมเม้น หรือ ทักใน Inbox ได้นะครับ สำหรับวันนี้สวัสดีครับ
โฆษณา