Machine Learning(EP.5) —การคำนวณเพื่อนบ้านใกล้สุด (K-nearest Neighbors)
K-Nearest Neighbors (K-NN) เป็นวิธีการแบ่งคลาสสำหรับใช้จัดหมวดหมู่ข้อมูล (Classification)ใช้หลักการเปรียบเทียบข้อมูลที่สนใจกับข้อมูลอื่นว่ามีความคล้ายคลึงมากน้อยเพียงใด หากข้อมูลที่กำลังสนใจนั้นอยู่ใกล้ข้อมูลใดมากที่สุด ระบบจะให้คำตอบเป็นเหมือนคำตอบของข้อมูลที่อยู่ใกล้ที่สุดนั้นลักษณะการทำงานแบบไม่ได้ใช้ข้อมูลชุดเรียนรู้ (training data) ในการสร้างแบบจำลองแต่จะใช้ข้อมูลนี้มาเป็นตัวแบบจำลองเลย
- เทคนิคนี้จะตัดสินใจว่าข้อมูลมีความคล้ายคลึงหรือใกล้เคียงกับคลาสใด โดยการตรวจจสอบข้อมูลบางจำนวน (K)
- เหมาะสำหรับข้อมูลแบบตัวเลขเพื่อหาวิธีการวัดระยะห่างของแต่ละ Attribute ในข้อมูลให้ได้
ลักษณะการทำงาน
**ขอเปลี่ยนชื่อ Class ในแผนภาพเพื่ออธิบายการทำงาน
Class 1 = Class A (สี่เหลี่ยม)
Class 2= Class B(สามเหลี่ยม)
1.ทำการเปรียบเทียบจุดใหม่วงกลมสีเขียว (New Point) กับจุดทั้งหมด (Point)ใน Training Set เพื่อหาจุดใกล้เคียงกับจุดใหม่
2.กำหนดจำนวนจุดใกล้เคียงกับจุดใหม่จำนวน K จุด
3.หาก K=1 แสดงว่าให้นำจุดที่ใกล้เคียงกับจุดใหม่ 1 จุดมาพิจารณานั่นคือ Class A มากำหนดค่า Class ให้จุดใหม่เป็น Class A เหมือนกัน
3.หาก K=3 แสดงว่าให้นำจุดที่ใกล้เคียงกับจุดใหม่ 3 จุดมาพิจารณานั่นคือ Class A 1 จุด กับ Class B อีก 2 จุดมาคำนวณผลรวมค่าที่ใกล้เคียง ผลปรากฎว่า Class B มี 2 จุดค่าผลรวมความใกล้เคียงมากกว่า Class A ดังนั้นจุดใหม่จะถูกกำหนดให้เป็น Class B
Operation
- Distance Function เป็นการคำนวณระยะห่างเพื่อวัดความคล้ายคลึงของข้อมูล
- Combination Function เป็นการรวมผลลัพธ์ที่ได้จากค่า Distance โดยเรียงลำดับจากน้อยไปมาก หลังจากนั้นดูค่า K ว่ากำหนดเป็นเท่าใด แล้วนำลำดับที่เรียงได้มาเทียบกับ Class ข้อมูลที่เรียงแล้วนำมาตอบ
ข้อดีของ KNN
1.หากเงื่อนไขในการตัดสินใจมีความซับซ้อนวิธีนี้สามารถนำไปสร้างโมเดลที่มีประสิทธิภาพได้
ข้อเสียของ KNN
1.ใช้เวลาคำนวณนาน
2.ถ้า Attribute มีจำนวนมากจะเกิดข้อผิดพลาดในการคำนวณค่า
3.คำนวณค่าได้เฉพาะข้อมูลประเภท Nominal เช่น ข้อมูลเพศชาย-หญิง อาชีพ
บทความที่เกี่ยวข้อง
EP.1 — ชุดข้อมูล (DataSet)
EP.2 — รู้จักกับข้อมูลชุดเรียนรู้และข้อมูลชุดทดสอบ
EP.3 — Linear Regression
EP.4 — Binary Classifier
EP.5 — K-nearest Neighbors
EP.6 — Naive Bayes
EP.7 — การวิเคราะห์องค์ประกอบหลัก (PCA)
EP.8 — การจัดกลุ่มด้วย K-Means(K-Means Clustering)
EP.9 — การจดจำใบหน้า (Face Recognition)
EP.10 — การจดจำตัวอักษร (Character Recognition)