เมื่อทำ kNN คุณจำเป็นต้องคำนึงถึงสิ่งหนึ่งนั่นคือมันไม่ใช่อัลกอริธึมที่ได้รับมาอย่างเคร่งครัด แต่เป็นตัวจําแนก / รีจีสเตอร์แบบง่ายโดยใช้สัญชาตญาณเดียว - ฟังก์ชันพื้นฐานไม่เปลี่ยนแปลงมากนักเมื่ออาร์กิวเมนต์ไม่เปลี่ยนแปลง มาก. หรือในคำอื่น ๆ ฟังก์ชั่นพื้นฐานคือในท้องถิ่นใกล้คง ด้วยสมมติฐานนี้คุณสามารถประเมินค่าของฟังก์ชันพื้นฐานในจุดใด ๆ ที่กำหนดโดยค่าเฉลี่ย (อาจถ่วงน้ำหนัก) ของค่าของคะแนน k ที่ใกล้ที่สุด
เมื่อคำนึงถึงเรื่องนี้คุณสามารถตระหนักได้ว่าไม่มีความจำเป็นอย่างชัดเจนว่าจะต้องทำอย่างไรเมื่อไม่มีผู้ชนะที่ชัดเจนในการลงคะแนนเสียงข้างมาก คุณสามารถใช้เลขคี่หรือใช้น้ำหนักแบบฉีดก็ได้
ในกรณีที่ประเทศเพื่อนบ้าน 3 ถึง 5 อยู่ในระยะห่างจากจุดสนใจคุณสามารถใช้เพียงสองหรือใช้ทั้งหมด 5 อีกครั้งโปรดทราบว่า kNN ไม่ใช่อัลกอริทึมที่ได้มาจากการวิเคราะห์ทางคณิตศาสตร์ที่ซับซ้อน แต่เพียง สัญชาตญาณง่าย ขึ้นอยู่กับคุณว่าคุณต้องการจัดการกับกรณีพิเศษเหล่านั้นอย่างไร
1| | x-y| |2
นอกจากนี้ยังมีบทความดี ๆ จาก Samory Kpotufe และ Abdeslam Boularias ในปีนี้เมื่อ NIPS ได้สัมผัสถึงปัญหาในการหาน้ำหนักที่เหมาะสม สัญชาตญาณทั่วไปของพวกเขาคือว่าฟังก์ชั่นพื้นฐานแตกต่างกันไปในทิศทางที่แตกต่างกัน (เช่นอนุพันธ์บางส่วนที่แตกต่างกันมีขนาดแตกต่างกัน) ดังนั้นจึงควรที่จะเปลี่ยนการวัด / น้ำหนักตามสัญชาตญาณ พวกเขาอ้างว่าเคล็ดลับนี้ช่วยปรับปรุงประสิทธิภาพของ kNN และการถดถอยของเคอร์เนลและฉันคิดว่าพวกเขามีผลลัพธ์ทางทฤษฎีบางอย่างในการสำรองข้อมูลการอ้างสิทธิ์นี้ (แม้ว่าฉันไม่แน่ใจว่าผลลัพธ์ทางทฤษฎีเหล่านั้นอ้างจริง ๆ แล้วฉันไม่มีเวลาไป ผ่านกระดาษทั้งหมด) สามารถดาวน์โหลดกระดาษได้ฟรีจากเว็บไซต์ของพวกเขาหรือหลังจาก "น้ำหนักการไล่ระดับสีของ Google ช่วยแก้ปัญหา Nonparametric Regressors" ของ Google
ตอนนี้คุณอาจต้องการทราบว่าคุณสามารถหา k, เมตริก, น้ำหนัก, แอ็คชั่นที่จะดำเนินการได้อย่างไรเมื่อมีการจับฉลากและอื่น ๆ สิ่งที่น่าเศร้าก็คือโดยทั่วไปมันยากที่จะไปถึงพารามิเตอร์ที่เหมาะสมหลังจากที่คุณคิดอย่างลึกซึ้งคุณอาจจะต้องทดสอบไฮเปอร์พารามิเตอร์ต่าง ๆ และดูว่าอันไหนใช้ได้ดีในชุดการตรวจสอบความถูกต้องบางอย่าง หากคุณมีทรัพยากรการคำนวณและต้องการมาถึงพารามิเตอร์ที่ถูกต้องโดยอัตโนมัติที่ชุดของพารามิเตอร์ที่ดีมีความคิดล่าสุด (ที่ฉันชอบมาก) เพื่อใช้กระบวนการ Gaussian สำหรับการเพิ่มประสิทธิภาพปราศจากอนุพันธ์ในการตั้งค่านั้น
ให้ฉันทำอย่างละเอียด - การหาชุดของพารามิเตอร์หลายมิติ (เช่นที่ลดข้อผิดพลาดในข้อมูลการตรวจสอบ) สามารถดูได้ว่าเป็นปัญหาการเพิ่มประสิทธิภาพ น่าเสียดายที่ในการตั้งค่านี้เราไม่สามารถไล่ระดับสีของฟังก์ชั่นที่เราพยายามปรับให้เหมาะสม (ซึ่งเป็นสิ่งที่เรามักจะต้องการที่จะทำเพื่อดำเนินการลาดลงทางลาดชันหรือวิธีการขั้นสูงบางอย่าง) กระบวนการแบบเกาส์สามารถนำมาใช้ในการตั้งค่านี้สำหรับการค้นหาชุดพารามิเตอร์หลายมิติที่มีโอกาสมากที่จะทำงานได้ดีกว่าสิ่งที่ดีที่สุดที่เราพบจนถึงจุด ดังนั้นคุณสามารถเรียกใช้อัลกอริทึมซ้ำกับชุดของพารามิเตอร์บางส่วนจากนั้นถามกระบวนการแบบเกาส์ว่าอันไหนดีที่สุดที่จะลองทำต่อไปลองอันนั้นและอื่น ๆ
ดูรายละเอียดได้จากบทความ "การเพิ่มประสิทธิภาพเบย์เซียนเชิงปฏิบัติของอัลกอริธึมการเรียนรู้ด้วยเครื่อง" โดย Jasper Snoek, Hugo Larochelle และ Ryan P Adams (สามารถพบได้ทั้งในเว็บไซต์หรือผ่านทาง Google)