K-Nearest Neighbour Algorithm
Introduction K-Nearest Neighbour คือ วิธีการในการจัดแบ่งคลาส เทคนิคนี้จะ ตัดสินใจ ว่าคลาสใดที่จะแทนเงื่อนไขหรือกรณีใหม่ๆ ได้บ้าง โดยการ ตรวจสอบจำนวนบางจำนวน (“K” ใน K-nearest neighbor) ของ กรณีหรือเงื่อนไขที่เหมือนกันหรือใกล้เคียงกันมากที่สุด โดยจะหาผลรวม (Count Up)ของจำนวนเงื่อนไข หรือกรณีต่างๆสำหรับแต่ละคลาส และ กำหนดเงื่อนไขใหม่ๆ ให้คลาสที่เหมือนกันกับคลาสที่ใกล้เคียงกันมากที่สุด
Introduction(2) ในการนำเทคนิคของ K-NN ไปใช้ในนั้นเป็นการหาวิธีการวัด ระยะห่างระหว่างแต่ละAttributeในข้อมูลให้ได้ และจากนั้นคำนวณค่า ออกมา ซึ่งวิธีนี้จะเหมาะสำหรับข้อมูลแบบตัวเลข แต่ตัวแปรที่เป็นค่าแบบไม่ ต่อเนื่องนั้นก็สามารถทำได้ เพียงแต่ต้องการการจัดการแบบพิเศษเพิ่มขึ้น อย่างเช่น ถ้าเป็นเรื่องของสี เราจะใช้อะไรวัดความแตกต่างระหว่างสีน้ำเงิน กับสีเขียว ต่อจากนั้นเราต้องมีวิธีในการรวมค่าระยะห่างของ Attribute ทุกค่าที่วัดมาได้ เมื่อเราสามารถคำนวณระยะห่างระหว่างเงื่อนไขหรือกรณี ต่างๆ ได้จากนั้นเราเลือกชุดของเงื่อนไข ที่ใช้จัดคลาสมาเป็นฐานสำหรับการ จัดคลาสในเงื่อนไขใหม่ๆ ได้แล้วเราจะตัดสินได้ว่าขอบเขตของจุดข้างเคียงที่ ควรเป็นนั้น ควรมีขนาดใหญ่เท่าไร และอาจตัดสินใจได้ด้วยว่าจะนับจำนวน จุดข้างเคียงตัวมันได้อย่างไร
TWO MAIN OPERATION Distance Function เป็นการคำนวณค่าระยะห่างระหว่างสองเรคคอร์ด เพื่อที่จะมาวัด ความคล้ายคลึงกันของข้อมูล Combination Function เป็นการรวมกันของผลลัพธ์ที่ได้จากการคำนวณค่าDistance โดยทำ การเรียงลำดับค่าDistanceจากน้อยไปมาก หลังจากนั้นดูจากค่า “K” ว่ากำหนดเป็นเท่าไร แล้วนำลำดับที่เรียงได้มาเทียบกับคลาสข้อมูลที่ เรียงแล้วนำมาตอบ
คุณสมบัติของDISTANCE FUNCTION ค่าระยะทาง(ความห่าง)ที่คำนวณได้ต้องไม่ติดลบ ถ้าตำแหน่งเดียวกันฟังก์ชันต้องเป็นศูนย์(ค่าเหมือนกัน) การคำนวณวัดระยะทางไปกลับต้องเท่ากัน
การคำนวณค่า DISTANCE FUNCTION ใส่ค่าสัมบูรณ์(Absolute)ให้กับค่าDistance: |A-B| ยกกำลังสองให้กับค่าDistance: (A-B)2 ทำการNormalized Absolute Value: |A-B|/(maximum difference) ทำการปรับให้เป็นค่ามาตรฐาน: |(A-mean)/(SD)-(B-mean)/(SD)|
การรวมค่า DISTANCE ใน Record Manhattan distance or summation: เป็นการนำค่าที่คำนวณได้ในหนึ่งRecordมารวมกัน Normalized summation: เป็นการนำค่าที่ได้จากข้อแรกมาหารด้วยค่าMaxของAttribute Euclidean distance: เป็นการหารากที่สอง(Square Root)ในแต่ละAttributeแล้วนำมา รวมกัน แล้วนำค่าที่คำนวณได้ในหนึ่งRecordมารวมกัน
Case Study No. Gender Age Salary inactive 1 F 27 19,000 No 2 M 51 64,000 Yes 3 52 105,000 4 33 55,000 5 45 45,000 new 100,000 ???
Case Study(2) Identical Gender |A-B| Age Salary Distance dsum d(1,n) 18 81,000 81018 d(2,n) 1 6 36,000 36007 d(3,n) 7 5,000 5008 d(4,n) 12 45,000 45012 d(5,n) 55,000 55001 >>> เรียงdsumจากน้อยไปหามากจะได้เป็น 3 2 4 5 1
Case Study(3) Identical Gender |A-B| Age Salary Distance dnormal 18 81,000 1 d(2,n) 6 36,000 0.444432102 d(3,n) 7 5,000 0.061813424 d(4,n) 12 45,000 0.555580241 d(5,n) 55,000 0.678873831 >>> เรียงdsumจากน้อยไปหามากจะได้เป็น 3 2 4 5 1
Case Study(4) Identical Gender |A-B| Age |A-B| Salary Distance deuclid d(1,n) 18 81,000 6,561,000,324 d(2,n) 1 6 36,000 1,296,000,037 d(3,n) 7 5,000 25,000,050 d(4,n) 12 45,000 2,025,000,144 d(5,n) 55,000 3,025,000,001 >>> เรียงdsumจากน้อยไปหามากจะได้เป็น 3 2 4 5 1
Case Study(5) Neigh-bour Neighbour Attribute K=1 K=2 K=3 K=4 K=5 dsum 3,2,4,5,1 Y,Y,Y,N,N Yes dnormal Deu-clid
การวัดค่าPerformance สมมติข้อมูลค่าTrainingคือ No. Gender Age Salary inactive 1 F 27 19,000 No 2 M 51 64,000 Yes 3 52 105,000 4 33 55,000 5 45 45,000 new_1 100,000 new_2 35 55,500 new_3 48
การวัดค่าPerformance(2) New_1 New_2 New_3 Performance K=1 Y N 2/3x100 = 66.67% K=2 ??? 1/3x100 = 33.33% K=3 3/3x100 = 100% ควรจะเลือก K = 3 เนื่องจากมีค่าPerformanceมากที่สุด
ข้อดี-ข้อเสียของ KNN ข้อเสีย ข้อดี หากเงื่อนไขการตัดสินใจมีความซับซ้อนวิธีนี้สามารถสร้างโมเดล ที่มีประสิทธิภาพได้ ข้อเสีย ใช้ระยะเวลาในการคำนวณนาน ถ้าAttributeมีจำนวนมากจะเกิดปัญหาในการคำนวณค่า