วันพฤหัสบดีที่ 2 กุมภาพันธ์ พ.ศ. 2560

K-nearest neighbors

     หลังจากที่พูดเรื่อง K Mean Algorithm ไปแล้วคราวนี้เราจะมาพูดถึง K Nearest Neighbors Algorithm ที่มีจุดประสงค์เพื่อแก้ปัญหาในการจัดกลุ่ม แต่การแก้ปัญหาในการจัดกลุ่มของ K Nearest Neighbors นั้นจะไม่เหมือนกับการแก้ปัญหาการจัดกลุ่ม ของ K Mean Algorithm

ภาพแสดง การแก้ปัญหาของ 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 ก็คร่าวๆประมาณนี้ครับ


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

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