ภาพแสดง การแก้ปัญหาของ K Nearest Neighbor |
K Nearest Neighbor จะใช้สำหรับแก้ปัญหาที่เรารู้จำนวนกลุ่มที่แน่นอนอยู่แล้ว แต่มีบางข้อมูลเท่านั้นที่เราไม่สามารถบอกได้ว่าข้อมูลนั้นอยู่กลุ่มใด ถ้าจะให้ยกตัวอย่างเพื่อความเข้าใจง่าย
ลองจินตนาการว่าในโลกนี้มีแผ่นดินหนึ่งที่มีเชื้อชาติอยู่แค่สองเชื้อชาติเท่านั้นคือ เชื้อชาติสีเขียว และ เชื้อชาติสีฟ้า ซึ่งทั้ง 2 เชื้อชาตินี้จะมีวัฒนธรรมที่ต่างกันคือเชื้อชาติสีเขียวจะนับถือเฉพาะสิ่งของที่เป็นสีเขียวดังนั้น บ้าน เสื้อผ้า และ สิ่งของต่างๆ ของคนชาตินี้จึงมีแต่สีเขียว ส่วนชนชาติสีฟ้าจะนับถือเฉพาะสีฟ้าเท่านั้น ด้วยการนับถือสีที่ต่างกันจึงทำให้สองชาตินี้ไม่ถูกกัน บังเอิญอยู่ดีๆคุณมาอยู่สถานที่แห่งนี้คุณต้องการอยู่รอดจากสถานที่แห่งนี้ดังนั้นคุณต้องใส่ชุดไม่สีเขียวก็สีฟ้า คุณจะใส่เสื้อสีอะไร
ภาพแสดง เชื้อชาติสีเขียว กับเชื้อชาติสีฟ้า |
คำตอบ แล้วแต่บริเวณที่คุณอยู่ ว่าคนเชื้อชาติบริเวณที่คุณอยู่ เชื้อชาติใดมีจำนวนคนมากกว่า
ถ้าบริเวณแถวๆนั้นมีคนเชื้อชาติสีเขียวเยอะกว่าเชื้อชาติสีฟ้า คุณจำเป็นที่จะต้องใส่เสื้อสีเขียว
ถ้าบริเวณแถวๆนั้นมีคนเชื้อชาติสีฟ้าเยอะกว่าเชื้อชาติสีเขียว คุณจำเป็นที่จะต้องใส่เสื้อสีฟ้า
หลักการทำงานของ K Nearest Neighbor Algorithm
หลักการทำงาน K Nearest Neighbor นั้นก็จะคล้ายๆ กับคำตอบการเลือกใส่เสื้อสีเขียวหรือ เสื้อสีฟ้า ที่จะดูจำนวนข้อมูลบริเวณรอบๆ(Nearest Neighbor) ว่ามีกลุ่มใหนจำนวนเยอะกว่ากัน แล้วจึงเลือกกลุ่มที่มีจำนวนเยอะกว่า
ตัวอย่างการทำงาน K Nearest Neighbor Algorithm
สมมุติเรามีกลุ่ม 2 กลุ่ม และให้ค่า K = 3 (K คือค่าที่ไว้ดูจำนวนข้อมูลที่ใกล้เราที่สุดว่าจะดูกี่จำนวนในการตัดสินเลือกกลุ่ม)
รูปภาพแสดง ข้อมูลแบ่งเป็น 2 กลุ่ม |
เรามีข้อมูลใหม่เข้ามา ต้องการทราบว่าข้อมูลที่เข้ามาใหม่ควรอยู่กลุ่มใหน
รูปภาพ แสดงมีข้อมูลเข้ามาใหม่ |
จึงดูรอบๆ ที่ใกล้ตัวมากที่สุด(Nearest Neighbor) 3 ข้อมูล ( K=3)
รูปภาพ แสดงการหา 3 Nearest Neighbor |
พบว่าข้อมูล 3 ข้อมูลที่ใกล้คือ มีกลุ่มสีเขียว 1 ข้อมูล มีกลุ่มสีฟ้า 2 ข้อมูลเราจึงจัดให้ข้อมูลใหม่อยู่ในกลุ่มสีฟ้า
รูปภาพ แสดงการจัดกลุ่ม |
รูปภาพ แสดงการจัดกลุ่ม |
ข้อควรระวังการใช้ K Nearest Neighbor
- ค่า K ควรมีค่าเป็นเลขคี่สำหรับกลุ่มที่มีจำนวน คู่ กลุ่ม เนื่องจากถ้า K เป็นเลขคู่บางสถานะการจะไม่สามารถเลือกกลุ่มได้
ภาพแสดง ปัญหาเมื่อ K เป็นเลขคู่ สำหรับกลุ่มที่จำนวนคู่ |
- ค่า K ต้องไม่มีค่าเท่ากับค่าผลคูณของจำนวนกลุ่ม
ภาพแสดง ปัญหาเมื่อมีจำนวนกลุ่ม 3 กลุ่ม แต่มี ค่า K=6 ซึ่งเป็นค่าผลคูณของจำนวนกลุ่มคูณด้วย 2 (3*2) |
- จะเกิดความลำบากเมื่อมีจำนวนข้อมูลมหาศาลเนื่องจากจำเป็นต้องค้นหาข้อมูลที่ใกล้ที่สุดจากทุกจำนวน
การทำงานของ K Nearest Neighbor ก็คร่าวๆประมาณนี้ครับ
ไม่มีความคิดเห็น:
แสดงความคิดเห็น