เมื่อไหร่ฉันควรจะย้ายออกไปจากเพื่อนบ้านที่ใกล้ที่สุด k


9

สำหรับโครงการการเรียนรู้ของเครื่องหลายอย่างที่เราทำเราเริ่มต้นด้วยตัวแยกลักษณนามที่ใกล้เคียงที่สุด k นี่คือลักษณนามเริ่มต้นในอุดมคติเนื่องจากเรามักจะมีเวลาเพียงพอในการคำนวณระยะทางทั้งหมดและจำนวนพารามิเตอร์มี จำกัด (k, ระยะทางเมตริกและน้ำหนัก)

อย่างไรก็ตามนี่มักจะมีเอฟเฟกต์ที่เรายึดติดกับตัวจําแนก knn ในภายหลังในโครงการไม่มีที่ว่างสำหรับการสลับไปใช้ตัวจําแนกอื่น อะไรจะเป็นเหตุผลที่ดีในการลองตัวจําแนกใหม่ สิ่งที่ชัดเจนคือความจำและเวลาที่ จำกัด แต่มีกรณีที่ตัวจําแนกอื่นสามารถปรับปรุงความถูกต้องได้จริงหรือไม่?


นี่เป็นวิชาการล้วนๆหรือจะใช้ในอุตสาหกรรม?
Dr Rob Lang

1
แอปพลิเคชั่นส่วนใหญ่ของเราได้รับการปรับใช้ในอุตสาหกรรม (ดังนั้นรอยเท้าหน่วยความจำและเวลาในการคำนวณจึงเป็นปัญหา)

คำตอบ:


3

k-NN พูดคุยในแง่ที่ จำกัด มาก มันใช้ความเรียบเนียนของนักปราชญ์ (หรือสมมติฐานต่อเนื่อง) สมมติฐานนี้แสดงถึงว่ารูปแบบที่อยู่ใกล้กับพื้นที่คุณลักษณะส่วนใหญ่น่าจะเป็นของชั้นเดียวกัน ไม่มีความสม่ำเสมอในการใช้งานในการกระจายรูปแบบที่สามารถกู้คืนได้โดย k-NN

ดังนั้นจึงต้องใช้ตัวอย่างการฝึกอบรมตัวแทนซึ่งสามารถมีขนาดใหญ่มากโดยเฉพาะในกรณีของพื้นที่คุณลักษณะมิติสูง ยิ่งไปกว่านั้นตัวอย่างเหล่านี้ไม่สามารถใช้งานได้ ดังนั้นมันไม่สามารถเรียนรู้ค่าคงที่ได้ หากรูปแบบสามารถถูกเปลี่ยนรูปได้โดยไม่ต้องเปลี่ยนฉลากและตัวอย่างการฝึกอบรมไม่มีรูปแบบที่แปลงในรูปแบบที่ยอมรับได้ k-NN จะไม่จดจำรูปแบบการแปลงที่ไม่ได้นำเสนอในระหว่างการฝึกอบรม นี่เป็นเรื่องจริงเช่นสำหรับรูปภาพที่ถูกเลื่อนหรือหมุนถ้าไม่ได้แสดงในรูปแบบที่ไม่เปลี่ยนแปลงก่อนที่จะรัน k-NN k-NN ไม่สามารถสรุปได้แม้กระทั่งจากคุณสมบัติที่ไม่เกี่ยวข้อง

อีกตัวอย่างที่ค่อนข้างจะทำตามคือ ลองนึกภาพรูปแบบที่เป็นของคลาสที่แตกต่างกันกระจายเป็นระยะ (เช่นตามไซน์ - ถ้ามันน้อยกว่า 0, จากนั้นรูปแบบเป็นของคลาสหนึ่งและยิ่งใหญ่กว่านั้นรูปแบบนั้นเป็นคลาสอื่น) ชุดฝึกอบรมมีขอบเขต จำกัด ดังนั้นมันจะอยู่ในขอบเขตที่ จำกัด นอกข้อผิดพลาดการรู้จำภูมิภาคนี้จะเป็น 50% หนึ่งสามารถจินตนาการการถดถอยโลจิสติกกับฟังก์ชั่นพื้นฐานเป็นระยะที่จะทำงานได้ดีขึ้นมากในกรณีนี้ วิธีการอื่นจะสามารถเรียนรู้ระเบียบปฏิบัติอื่น ๆ ในการแจกแจงแบบแผนและคาดการณ์ได้ดี

ดังนั้นหากมีใครสงสัยว่าชุดข้อมูลที่มีอยู่ไม่ได้เป็นตัวแทนและความแปรปรวนของการแปลงรูปแบบบางอย่างควรจะประสบความสำเร็จนี่เป็นกรณีที่ควรเคลื่อนย้ายเกิน k-NN


ขอบคุณสำหรับคำตอบของคุณ (และขอขอบคุณ BartoszKP ที่พยายามปรับปรุงมัน) เป็นความจริงที่ knn ไม่สามารถค้นหารูปแบบที่ต้องการการแปลง (เว้นแต่คุณจะเริ่มใช้เมตริกระยะทางแปลก ๆ (และไม่ถูกต้อง)) นั่นเป็นเหตุผลที่ดีที่จะลองตัวจําแนกอื่นฉันเดา svm เป็นตัวเลือกที่ชัดเจนแล้ว ฉันไม่คุ้นเคยกับ svm เพียงพอที่จะพูด แต่มันไม่จำเป็นต้องมีความรู้เฉพาะเกี่ยวกับรูปแบบที่คุณกำลังมองหาเพื่อกำหนดเคอร์เนล?

ใช่. ตัวเลือกของเคอร์เนลจะขึ้นอยู่กับรูปแบบ เคอร์เนลแบบเกาส์จะมีคุณสมบัติคล้ายกับวิธี k-NN เมล็ดมาตรฐานอื่น ๆ อาจดูเหมือนว่าไม่เหมาะสมเช่นกัน อย่างไรก็ตามอย่างน้อยหนึ่งสามารถลองใช้พวกเขา

โดยนัยโดย @ Necro0x0Der การปรับปรุงใด ๆ ตามบรรทัดเหล่านี้จะขึ้นอยู่กับรูปแบบ (ในตัวอย่างไซน์, ช่วงเวลา) เป็นธรรมชาติสำหรับการพาราเมทริก นั่นคือ parametrization (ตัวเลือกเคอร์เนล) กำหนดโครงสร้าง (ประสิทธิภาพตัวชี้วัด) ของพื้นที่การเป็นตัวแทน หากคุณสามารถกำหนด (โดยการศึกษาเดา) โครงสร้างที่เหมาะสมโดยวิธีการบางอย่างแล้วลอง parametrize รูปแบบตาม โปรดทราบว่าในท้ายที่สุดการทำเช่นนี้เป็นการอนุญาตให้ตัวแยกประเภทของคุณพร้อมค้นหาคุณลักษณะบางอย่างที่เกี่ยวข้อง

3

หากคุณถูก จำกัด ด้วยความซับซ้อนของการคำนวณต้นไม้ตัดสินใจ(Quinal, 1986)นั้นยากที่จะเอาชนะ (โดยเฉพาะเมื่อกรอบเสนอการแปลงโดยตรงของโมเดล DT เป็นifข้อความจำนวนมากเช่นAccord.NET )

สำหรับข้อมูลมิติสูงความคิดเกี่ยวกับระยะทางซึ่งเป็นพื้นฐานของ k-NN กลายเป็นไร้ค่า(Kriegel, Kröger, Zimek, 2009) (เช่น: บทความ Wikipedia ) ตัวแยกประเภทอื่น ๆ เช่น SVM (Corter, Vapnik, 1995)หรือ Random Forests (Breiman, 2001)อาจทำงานได้ดีขึ้น

อ้างอิง:


มิติที่สูงไม่ใช่ข้อ จำกัด แน่นอนในกรณีส่วนใหญ่คุณสมบัติของเรามีความหมายเพียงพอที่ระยะทางใช้ได้ แน่นอนว่านี่อาจเป็นจุดสำคัญ บางทีฉันควรจะชี้แจงด้วยตัวอย่าง สมมติว่าเรามีตัวจําแนกที่มีความแม่นยำ 93% ซึ่งเป็นที่ยอมรับ แต่ตอนนี้เราสามารถพยายามปรับปรุงตัวจําแนกหรือค้นหาคุณสมบัติใหม่ ทุกอย่างขึ้นอยู่กับคุณสมบัติใหม่ที่เป็นไปได้และข้อมูล แต่ฉันกำลังมองหาแนวทางในการตัดสินใจครั้งนี้

@ มือดูเหมือนกับฉันว่ามันเป็นการตัดสินใจระดับการบริหารโครงการ หากวิธีการแก้ปัญหาปัจจุบันเป็นที่ยอมรับทำไมคนจรจัดด้วยหรือไม่ มันเสียเวลา หากไม่เป็นที่ยอมรับให้กำหนดสิ่งที่คุณต้องการปรับปรุงให้ชัดเจนยิ่งขึ้น (ความเร็วความแม่นยำ ฯลฯ )
BartoszKP

ไม่ใช่แค่การบริหารโครงการเท่านั้นคำถามคือทำอย่างไรถึงจะมีความแม่นยำสูงสุด (นี่คือคำถามของฉัน) และทิศทางที่ดีที่สุด คุณแนะนำ svm และฟอเรสต์แบบสุ่มเพราะมิติอาจสูงเกินไปนั่นเป็นความเป็นไปได้อย่างหนึ่งที่ฉันสามารถทดสอบเพื่อดูว่าความแม่นยำดีขึ้นหรือไม่และนั่นคือคำตอบที่ฉันต้องการ

ในทางกลับกันนี่เป็นคำถามที่กว้างมาก ไม่มีกฎทั่วไปที่ตัวแยกประเภท X นั้นดีกว่า Y คุณควรลองตัวแยกประเภทจำนวนหนึ่งแล้วทำการตรวจสอบความถูกต้องไขว้กันเพื่อเลือกรูปแบบตัวอย่าง
BartoszKP

3

kNN มีประโยชน์สำหรับตัวอย่างข้อมูลขนาดใหญ่

อย่างไรก็ตามข้อเสียของมันคือ:

  1. เอนเอียงโดยค่า k
  2. ความซับซ้อนในการคำนวณ
  3. ข้อ จำกัด ของหน่วยความจำ
  4. เป็นอัลกอริทึมการเรียนรู้แบบขี้เกียจภายใต้การดูแล
  5. หลอกได้อย่างง่ายดายด้วยคุณสมบัติที่ไม่เกี่ยวข้อง
  6. ความแม่นยำในการทำนายสามารถลดลงอย่างรวดเร็วเมื่อจำนวนแอตทริบิวต์เพิ่มขึ้น

โดยปกติจะมีผลก็ต่อเมื่อข้อมูลการฝึกอบรมมีขนาดใหญ่และการฝึกอบรมนั้นรวดเร็วมาก


ฉันไม่ได้ดูการจัดกลุ่ม แต่อยู่ที่การจัดประเภท

@ ไปที่นี่เราไปขอบคุณสำหรับบันทึก iliasfl
Iancovici
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.