אלגוריתם שכן קרוב

אלגוריתם

הקלט לשלב האימון של האלגוריתם הוא דוגמאות אימון, וקטורי תכונות במרחב רב ממדי כל אחד עם תווית סיווג (למשל  עבור וקטור תכונות של d ממדים ושתי מחלקות סיווג). שלב האימון מתבסס רק על אחסון תכונת הווקטור ותווית הסיווג של דוגמאות האימון במבנה נתונים שיאפשר בהמשך חיפוש מהיר בהם, כדוגמת עץ kd.
הקלט לשלב הסיווג הוא וקטור ללא תווית (למשל ). בשל הסיווג k מוגדר כקבוע, והמסווג קובע את תווית הסיווג על פי התווית השכיחה ביותר בקרב k דוגמאות האימון הקרובות לדוגמה הנבדקת.

מטריקת מרחק

מטריקה מקובלת למדידת מרחק בין משתנים רציפים היא מרחק אוקלידי. עבור משתנים בדידים, כגון בבעיית סיווג טקסט, ניתן להשתמש במטריקה אחרת, כגון מרחק המינג. לעיתים קרובות, דיוק הסיווג של k-NN ניתן לשיפור באופן משמעותי אם המטריקה שבשימוש נלמדת באמצעות אלגוריתמים מיוחדים כמו "Large margin nearest neighbor" או "Neighbourhood components analysis".

מחלקות לא מאוזנות

חיסרון משמעותי של סיווג כזה, לפי השכיח המקומי, הוא כאשר התפלגות המחלקות מוטה, כלומר: מספר דוגמאות האימון באחת המחלקות גדול בהרבה ממספר דוגמאות האימון במחלקות האחרות. במקרה כזה, רוב הדוגמאות החדשות יסווגו למחלקה זו, כי בשל מספרן הגדול, דוגמאות האימון ממחלקה זו נוטות להיות נפוצות בקרב k השכנים הקרובים לדוגמה החדשה. דרך אחת להתמודדות עם בעיה זו היא הקצאת משקל לסיווג, שייקבע לפי מרחק הדוגמה מ־k השכנים הקרובים. הסיווג (או הערך, במקרה של בעיית רגרסיה) של כל אחת מ־k הנקודות הקרובות יוכפל במשקל הפרופורציונלי להופכי של המרחק מנקודת האימון לנקודה הנוכחית. דרך אחרת כדי להתגבר על סטיות במדידה היא הפשטה בייצוג נתונים. לדוגמה, ברשת קוהונן, כל צומת מייצגת מרכז של קבוצת נקודות דומות, ללא קשר לצפיפותן בנתוני האימון המקוריים.

בחירת פרמטרים

הבחירה הטובה ביותר של k תלויה בנתונים; בדרך כלל, ערכים גבוהים יותר של k גורמים לצמצום ההשפעה של הרעש על סיווג, אבל גורמים לגבולות בין מחלקות להיות פחות מובהקים. k טוב יכול להיבחר באמצעות מספר שיטות. במקרה המיוחד בו נחזתה מראש סוג המחלקה כמחלקה הקרובה ביותר לנקודות האימון (כלומר כאשר k=1) נקרא אלגוריתם השכן הקרוב ביותר.
הדיוק של אלגוריתם k-NN יכול להיפגע קשות על ידי נוכחות של רעש או תכונות לא רלוונטיות, או אם סקלת התכונה אינה עקבית עם חשיבותה. מאמצי מחקר רבים הושקעו עבור בחירת תכונות או דירוג תכונות לשיפור סיווגם.
בסיווג בינארי (דו-ערכי; כאשר יש שתי מחלקות), כדאי לבחור את k להיות מספר אי-זוגי כדי להימנע ממצבי תיקו. דרך אחת פופולרית לבחירת k אופטימלי באופן אמפירי למצב זה היא באמצעות שיטת אתחול .

מאפיינים

k-NN הוא מקרה פרטי של הערכת צפיפות משתני קרנל, של הערכת רוחב פס משתנים ושל הערכת צפיפות קרנל "בלון" עם אחידות סטטיסטית בקרנל.
בצורתו הפשוטה של האלגוריתם הוא נדרש לחשב המרחקים בין הדוגמה לסיווג לכל דוגמאות האימון, אך גישה נאיבית כזו דורשת חישובים רבים כאשר יש דוגמאות אימון רבות. עם זאת שימוש באלגוריתם יעיל לחיפוש שכן קרוב מאפשר להשתמש ב־k-NN גם עבור דוגמאות רבות. במהלך השנים הוצעו מספר רב של אלגוריתמי חיפוש לשכן הקרוב; בכלל ניסו אלגוריתמים אלה לצמצם את מספר הערכות המרחק שמבוצעות בפועל.
כאשר מספר הדוגמאות שואף לאינסוף, לאלגוריתם מובטח שיעור שגיאה מרבי לא יותר מפעמיים שיעור השגיאה של בייס (השגיאה המינימלית הניתן להשגה בהתחשב בהתפלגות הנתונים).

הפחתת ממדים

עבור נתונים רב־ממדיים (לדוגמה, אם מספר ממדים גדול מ־10), הפחתת ממדים מבוצעת בדרך כלל לפני הפעלת k-NN על הנתונים, כדי למנוע את ההשפעות של קללת הממד (Curse of dimensionality).‏
משמעותה של קללת הממד, בהקשר של k-NN, היא שהמרחק האוקלידי אינו מדד יעיל למרחק במרחב מממד גבוה, כיוון שכל הווקטורים הם שווי מרחק ביחס לווקטור הנבדק (דמיינו מספר נקודות מונחות פחות או יותר על עיגול שלם עם נקודת שאילתה במרכז; המרחק בין נקודות השאילתה לכל נקודות המידע הוא כמעט זהה).
ניתן לשלב בפעולה אחת חילוץ תכונות והורדת ממד באמצעות שיטות ניתוח גורמים ראשיים (PCA), ניתוח הבחנה ליניארי (LDA) או ניתוח מתאם קנוני (CCA) כשלב טרום עיבודי, ולאחר מכן יצירת אשכולות על ידי k-NN בשיכון במרחב בממד נמוך יותר (embedding). הורדת ממד יכולה להיעשות גם באמצעות הורדת ממד אקראית.

גבול ההחלטה

כללי השכן הקרוב ביותר למעשה מחשבים במרומז את גבול ההחלטה. כמו כן ניתן לחשב את גבול ההחלטה באופן מפורש, כדי לעשות זאת באופן יעיל כך שמורכבות החישוביות היא פונקציה של מורכבות הגבול.

יחס הגבול

לשם שיפור יעילות הסריקה של CNN, נגדיר את יחס הגבול לדוגמת אימון x:
כאשר ||x-y|| הוא המרחק הקרוב ביותר לדוגמה y בעלת תווית שונה מאשר x, והמרחק ||x'-y|| הוא המרחק בין y לדוגמה הקרובה ביותר אליה 'x, המסווגת כמו x.יחס הגבול הוא בין 0 ל־1, היות שערכו של ||x'-y|| לעולם אינו גדול יותר מערכו של ||x-y||. סדר זה מעניק עדיפות לגבולות המחלקות לשם הכללתם בקבוצת אבות-הטיפוס U. נקודה בעלת תווית שונה מאשר x נקראת נקודה חיצונית ל־x. חישוב יחס הגבול מודגם באיור משמאל. הנתונים מסומנים בצבעים: נקודת הפתיחה היא x, והיא מסומנת באדום. הנקודות החיצוניות הן כחולות וירוקות. הנקודה החיצונית הקרובה ביותר ל־x היא הנקודה y. הנקודה האדומה הקרובה ביותר ל־y היא הנקודה 'x. יחס הגבול a(X)‎ הוא תכונה של נקודת הפתיחה x.
בעזרת יחס הגבול, ניתן לייעל את סריקת דגימות האימון ב-CNN, אם הסריקה מבוצעת בסדר יורד של a(x)‎‏.

דוגמה

להלן המחשה של CNN על קבוצת דוגמאות אימון המחולקות לשלוש מחלקות: אדום, ירוק וכחול. איור 1 מראה את המצב ההתחלתי, שבו יש 60 נקודות בכל מחלקה. איור 2 מציג את מפת הסיווג 1NN: כל פיקסל מסווג על ידי 1NN באמצעות כל הנתונים. איור 3 מציג את מפת הסיווג 5NN. אזורים לבנים תואמים את האזורים הלא מסווגים, שבהם היה תיקו בין מחלקות (למשל, אם יש שתי נקודות ירוקות, שתי נקודות אדומות ונקודה אחת כחולה מקרב חמשת השכנים הקרובים ביותר). איור 4 מציג את מקבץ הדוגמאות המצומצם. ה-x-ים הם Class-outliers שנבחרו על ידי כלל ‎(3,2)NN‏ (כל שלושת השכנים הקרובים ביותר של מקרים אלה שייכים למחלקות אחרות); הריבועים הם אבות־הטיפוס, והעיגולים הריקים הם הנקודות הבלועות. בצד שמאל למטה מוצגים מספרי ה־class-outlier, אבות־הטיפוס והנקודות הבלועות לכל אחת משלוש המחלקות. מספר אבות־הטיפוס נע בין 15% ל־20% עבור מחלקות שונות בדוגמה זו. איור 5 מראה שמפת הסיווג 1NN עם אבות־הטיפוס דומה מאוד למפה עם הנתונים הראשוניים. האיורים נוצרו בעזרת היישומון של מירקס.