בעבור מדגם נתון D={x(i)}i=1N של N וקטורים באורך D נגדיר את הגדלים הבאים:
מטריצת הדגימות:
X=⎝⎜⎜⎜⎜⎛−−−(x(1)−μ)⊤(x(2)−μ)⊤⋮(x(N)−μ)⊤−−−⎠⎟⎟⎟⎟⎞נתייחס לפירוק (ליכסון) הבא: P=UΛU⊤
T הינה מטריצה המכילה את k העמודות הראשונות של U
הפעולה שאותה מבצעת הטרנספורמציה הינה:
נסתכל על זוג טרנספורמציות אפיניות כלליות:
הטרנצפורמציות שימזערו את שגיאת השיחזור הריבועית הינן:
z=TT(x−μ)x~=Tz+μIk - אוסף האינדקסים של האשכול ה-k
בהינתן מדגם, K-Means מנסה למצוא את החלוקה לאשכולות ש:
נגדיר את מרכז המסה של כל אשכול כממוצע של כל הוקטורים באשכול:
μk=∣Ik∣1i∈Ik∑x(i)ניתן להראות כי בעיית האופטימיזציה המקורית, שקולה לבעיה של מיזעור המרחק הממוצע של הדגימות ממרכז המסה של האשכול:
{Ij}k=1KargminN1k=1∑Ki∈Ik∑∥x(i)−μk∥22בכל צעד t מבצעים את שתי הפעולות הבאות:
מעדכנים מחדש את החלוקה לאשכולות {Ik}k=1K כך שכל דגימה משוייכת למרכז המסה הקרוב אליה ביותר:
k=k∈[1,K]argmin∥x−μk∥22(אם שני מרכזים במרחק זהה נבחר בבעל האינדקס הנמוך יותר).
עדכון של מרכזי המסה על פי:
μk=∣Ik∣1i∈Ik∑x(i)(אם ∣Ik∣=0 אז משאירים אותו ללא שינוי)
לא מובטח כי האלגוריתם יתכנס לפתרון האופטימאלי!
עבור מדגם נתון של וקטורים ב R2 חושבו וקטור הממוצע ומטריצת הקוואריאנס הבאים:
xˉ=(00) P=(3226)1) איזה מהוקטורים הבאים מייצג את הכיוון הראשון u1 במטריצת ההטלה של PCA?
51(−21),21(11),51(12),2) חשבו את שני ה principal componnents של x=(1,0)⊤.
נשתמש בעובדה ש u1 צריך להיות וקטור עצמי של P ולכן מקיים Pu1=λ1u1. נבדוק איזה וקטור מקיים זאת:
Pu1=51(3226)(−21)=51(−42)=2u1 Pu1=21(3226)(11)=21(58)=αu1 Pu1=51(3226)(12)=51(714)=7u1הרכיב העיקרי (principal component) הראשון יהיה נתון על ידי:
z1=u1⊤(x−μ)=51(12)(10)=51והרכיב השני יהיה:
z2=u2⊤(x−μ)=51(−21)(10)=5−2בעבור PCA עם k=2 נקבל:
z=51(1,−2)⊤נתונות (1+3α)n נקודות שונות:
1) מאתחלים את המרכזים על ידי בחירה אקראית של 3 מתוך ארבעת הנקודות A,B,C,D. לאילו חלוקות יתכנס האלגוריתם בעבור כל אחת מארבעת האתחולים האפשריים?
2) מהו האשכול האופטימאלי (הממזער של פונקציית המטרה)? רשמו את הפתרון כתלות בפרמטר α. (ניתן להניח כי בפתרון האופטימאלי כל הנקודות שנמצאות באותו המקום משוייכות לאותו האשכול)
3) האם קיים אתחול שעבורו האלגוריתם לא יתכנס לפתרון האופטימאלי שמצאתם בסעיף הקודם? הדגימו.
נחשב את תוצאת האלגוריתם בעבור כל אחת מארבעת האתחולים:
מרכזים ב A,B ו C:
מרכזים ב A,B ו D:
מרכזים ב A,C ו D:
מרכזים ב B,C ו D:
השלב הבא של עידכון האשכולות תלוי במיקום של המרכז החדש.
מקרה 1: הנקודות ב-B קרובות יותר למרכז החדש מאשר למרכז שב-C ולכן האלגוריתם מסתיים.
מקרה 2, המרכז החדש רחוק יותר לנקודה B מאשר הנקודה C, אזי הנקודות בB יהיו מושייכות כעת למרכז בנקודה C, והמשך האלגוריתם יהיה:
על מנת שיתרחש עדכון, על המרחק בין המרכז החדש לנקודה B להיות גדול מ-2:
∥∥∥∥∥(6x^1+6x^2)−(α+1α−16x^1+6x^2)∥∥∥∥∥>2⇔6−α+1α−16>2⇔α+1α−16<4⇔α<5אנו מעוניינים למצוא את האשכול אשר מביא למינימום את הפונקציית המטרה הבאה:
k=1∑K2∣Ik∣1i,j∈Ik∑∥x(j)−x(i)∥22לכן הפתרון האופטימאלי חייב להיות אחד מששת האישכולים הבאים:
נחשב את הערך של פונקצייות המטרה בעבור כל אחד מששת האשכולים:
Clusters | Objective |
---|---|
(A,B), (C), (D) | 144α+1αn |
(A,C), (B), (D) | 193α+1αn |
(A,D), (B), (C) | 196α+1αn |
(B,C), (A), (D) | 2αn |
(B,D), (A), (C) | 30.5αn |
(C,D), (A), (B) | 42.5αn |
לכן:
נסכם כי עבור אתחול המרכזים בנקודות B,C ו-D נקבל:
נבדוק בעבור האתחולים מהסעיף הקודם, מהם המקרים שבהם האלגוריתם אינו מתכנס לפתרון האופטימאלי:
3) האם קיים אתחול אשר בעבורו האלגוריתם לא יתכנס לפתרון האופטימאלי שמצאתם בסעיף הקודם? הדגימו.
כל מקרים שצויינו בסעיף הקודם. בנוסף,ניתן לדוגמא לאתחל שניים מתוך שלושת המרכזים בנקודות מאד רחוקות, ואז כל הנקודות ישוייכו למרכז השלישי.
נחזור למדגם של נסיעות מונית בניו-יורק בו השתמשנו בתרגולים הראשונים לחיזוי זמן הנסיעה. נציג את 10 הדגימות הראשונות במדגם (סה"כ במדגם זה 100,000 נסיעות).
passenger count | trip distance | payment type | fare amount | tip amount | pickup easting | pickup northing | dropoff easting | dropoff northing | duration | day of week | day of month | time of day | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | 2 | 2.76806 | 2 | 9.5 | 0 | 586.997 | 4512.98 | 588.155 | 4515.18 | 11.5167 | 3 | 13 | 12.8019 |
1 | 1 | 3.21868 | 2 | 10 | 0 | 587.152 | 4512.92 | 584.85 | 4512.63 | 12.6667 | 6 | 16 | 20.9614 |
2 | 1 | 2.57494 | 1 | 7 | 2.49 | 587.005 | 4513.36 | 585.434 | 4513.17 | 5.51667 | 0 | 31 | 20.4128 |
3 | 1 | 0.965604 | 1 | 7.5 | 1.65 | 586.649 | 4511.73 | 586.672 | 4512.55 | 9.88333 | 1 | 25 | 13.0314 |
4 | 1 | 2.46229 | 1 | 7.5 | 1.66 | 586.967 | 4511.89 | 585.262 | 4511.76 | 8.68333 | 2 | 5 | 7.70333 |
5 | 5 | 1.56106 | 1 | 7.5 | 2.2 | 585.926 | 4512.88 | 585.169 | 4511.54 | 9.43333 | 3 | 20 | 20.6672 |
6 | 1 | 2.57494 | 1 | 8 | 1 | 586.731 | 4515.08 | 588.71 | 4514.21 | 7.95 | 5 | 8 | 23.8419 |
7 | 1 | 0.80467 | 2 | 5 | 0 | 585.345 | 4509.71 | 585.844 | 4509.55 | 4.95 | 5 | 29 | 15.8314 |
8 | 1 | 3.6532 | 1 | 10 | 1.1 | 585.422 | 4509.48 | 583.671 | 4507.74 | 11.0667 | 5 | 8 | 2.09833 |
9 | 6 | 1.62543 | 1 | 5.5 | 1.36 | 587.875 | 4514.93 | 587.701 | 4513.71 | 4.21667 | 3 | 13 | 21.7831 |
הפעם נתמקד בשתי השדות הבאים מהמדגם:
(הקואורדינאטות נתונות בUTM-WGS84, היחידות הן בקירוב קילומטר).
נשתמש בסימונים הבאים:
המטרה: למצוא את מיקומי החניונים האופטימאליים אשר ממזערים את הגודל הבא
{ck}k=1K∗={ck}k=1KargminE[kmin∥x−ck∥2]מכיוון שהפילוג האמיתי של x לא ידוע ננסה למזער את התוחלת האמפירית:
{ck}k=1K∗={ck}k=1KargminN1i∑kmin∥x(i)−ck∥2נשתמש באלגוריתם K-means על מנת לבחור את המיקום של 10 מגרשי חניה.
מרחק הנסיעה הממוצע המתקבל הינו:
N1k=1∑Ki∈Ik∑∥x(i)−ck∥2=700mחשוב לציין שהפתרון הזה הוא לא בהכרח הפתרון האופטימאלי משתי סיבות:
K-Means לא מבטיח התכנסות למינימום הגלובלי.
הערה הנקודה אשר ממזערת את המרחק האוקלידי (בלי הריבוע) בינה לבין כל הנקודות באשכול נקראת החציון הגיאומטרי The Geometric Median (wiki). ניתן למצוא נקודה זו על ידי שימוש באלגוריתם המוכונה Weiszfeld's algorithm.
נניח כי:
נרשום תחת הנחות אלו את העלות החודשית של אחזקת החניונים והנסיעה אליהם:
10⋅K+100⋅3⋅E[kmin∥x−ck∥2]והמקבילה האמפירית:
10⋅K+100⋅3⋅N1k=1∑Ki∈Ik∑∥x(i)−ck∥2נריץ את אלגוריתם ה K-Means בעבור כל ערך של K∈[1,25], נשרטט את עלות הנסיעה, עלות אחזקת החניונים והעלות הכוללת:
נקבל כי: