יותר

מהו אלגוריתם יעיל לשרטט קו ישר מנקודות?


יש לי כמה נתוני סקר רוחבי, שהם כך:

XYZ pt_dt 2970969.635 359725.0088 83.4242 1-x 2,970,968.278 359,722.2182 83.2591 1-x 2,970,941.771 359670.127 83.0655 1-x 2,970,961.369 359,708.6424 83.4785 1-x 2,970,950.888 359688.048 85.2994 1-x 2,970,955.084 359,696.2922 83.6479 1-x 2,970,953.47 359,693.1165 84.9628 1-x 2,970,948.813 359683.977 83.1451 1-x 2970931.904 359650.7413 83.1042 1-x

כשאני משתמש ב- X & Y כדי ליצור נקודות, אני יכול לראות את הנקודות במפה כך:

מה שאני צריך לעשות עכשיו, הוא לקבל את הנקודות בסדר ליניארי (כלומר משמאל לימין, או מימין לשמאל), כך שאוכל ליצור קו תלת ממדי, שיכול לשמש כפרופיל חתך רוחב.

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

אלגוריתם זה הוא O (n2); כל הנתונים שלי מורכבים מכ -5,000 סקרים כאלה, כך שכל מורכבות שאוכל לצמצם תועיל.

אז האם יש דרך יעילה יותר, או אלגוריתם לעשות זאת?


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

X, Y, Z, pt_dt 2970969.635,359725.0088,83.4242,1-x 2970968.278,359722.2182,83.2591,1-x 2970941.771,359670.127,83.0655,1-x 2970961.369,359708.6424,83.4785,1-x,85850.88 -x 2970955.084,359696.2922,83.6479,1-x 2970953.47,359693.1165,84.9628,1-x 2970948.813,359683.977,83.1451,1-x 2970931.904,359650.7413,83.1042,1-x

ייבא csv ייבא מטומטם כ- np נסה: מאת osgeo ייבא ogr, osr למעט ImportError: ייבא ogr, osr SHP_FILENAME = "output.shp" CSV_FILENAME = "exp_data.csv" r = csv.reader (פתוח (CSV_FILENAME, 'r') מפריד = ",", quotechar = אין) כותרת = dict (((str, i) עבור i, str בספירה (r.next ()))) כותרת הדפסה # טען שורות נתונים לשורות זיכרון = [שורה לשורה ב- r] # מיין לפי x אם גדול מ- y. אחרת מיין לפי y np_rows = np.array (שורות) np_rows = np.delete (np_rows, כותרת ['pt_dt'], ציר = 1) np_rows = np_rows.astype (np.float) row.sort (מפתח = lambda x: x [0] אם np_rows.ptp (axis = 0) [0]> np_rows.ptp (axis = 0) [1] אחר x [1]) # צור קובץ shapefile חדשr.UseExceptions () sr = osr.SpatialReference () sr.ImportFromEPSG (900913) ds = ogr.GetDriverByName ('ESRI Shapefile'). CreateDataSource (SHP_FILENAME) שכבה = ds.CreateLayer ("data", sr, ogr.wkbLineString25D) # צור קו גיאומטריה של קו חדש = ogr.Geometry type = ogr.wkbLineString25D) line.SetCoordinateDimension (3) # הוסף נקודות GPS לשורה lon_idx, lat_idx, Z_idx = כותרת ['X'], כותרת ['Y'], כותרת ['Z'] לשורה בשורות: שורה .AdPoint (float (שורה [lon_idx]), float (שורה [lat_idx]), float (שורה [Z_idx])) # הוסף שורה כתכונה חדשה לתכונה shapefile = ogr.Feature (feature_def = layer.GetLayerDefn () ) feature.SetGeometryDirectly (line) layer.CreateFeature (feature) # ניקוי תכונה. הרס () ds.Destroy ()

זירוז אלגוריתמים על ידי כיווץ נתונים

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

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

במאמר החדש החוקרים מיישמים את הטכניקה שלהם על נתוני מיקום דו מימדיים שנוצרים על ידי מקלטים GPS, יישום טבעי מאוד המדגים היטב כיצד הטכניקה עובדת. כפי שמסבירה דניאלה רוס, פרופסור למדעי המחשב והנדסה ומנהלת המעבדה למדעי המחשב והבינה המלאכותית של MIT, מקבלי GPS לוקחים קריאות עמדה כל עשר שניות, מה שמצטבר לג'יגה של נתונים בכל יום. מערכת מחשוב המנסה לעבד נתוני GPS מעשרות אלפי מכוניות על מנת להסיק דפוסי תנועה עלולה להיות מוצפת במהירות.

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

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

מצייר את הקו

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

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

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

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

שביעות רצון מובטחת

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

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

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

לדברי אלכסנדר ביין, פרופסור חבר להנדסת מערכות באוניברסיטת קליפורניה בברקלי, העיתון החדש של חוקרי ה- MIT "חלוץ התחום" של "חילוץ דפוסים חוזרים מאות GPS ושימוש בנתונים אלה לייצור מפות להזרמת GPS. נתונים."

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


תוכן

אלגוריתם הקווים של Bresenham נקרא על שמו של ג'ק אלטון Bresenham שפיתח אותו בשנת 1962 ב- IBM. בשנת 2001 כתב Bresenham: [1]

עבדתי במעבדת החישוב במעבדת הפיתוח של IBM בסן חוזה. מתווה Calcomp הוצמד ל- IBM 1401 באמצעות קונסולת מכונות הכתיבה 1407. [האלגוריתם] היה בשימוש בייצור עד קיץ 1962, אולי כחודש קודם לכן. התוכניות באותם הימים הוחלפו באופן חופשי בין תאגידים, כך שלקלקומפ (ג'ים ניולנד וקלווין הפט) היו עותקים. כשחזרתי לסטנפורד בסתיו 1962, שמתי עותק בספריית מרכז המחשבים בסטנפורד. תיאור של שגרת ציור הקווים התקבל להצגה בכנס הלאומי ACM בשנת 1963 בדנבר, קולורדו. זו הייתה שנה בה לא פורסמו הליכים, רק סדר היום של הדוברים ונושאים בגיליון תקשורת של ACM. אדם מכתב העת IBM Systems שאל אותי לאחר שהצגתי אם הם יכולים לפרסם את העיתון. הסכמתי בשמחה, והם הדפיסו את זה בשנת 1965.

האלגוריתם של Bresenham הורחב לייצור עיגולים, אליפסות, עקומות bezier ריבועיות, כמו גם גרסאות מקומיות נגד alias של אלה. [2]

המוסכמות הבאות ישמשו:

  • השמאלי העליון הוא (0,0) כך שקואורדינטות הפיקסלים גדלות בכיוונים הימניים ולמטה (למשל שהפיקסל ב- (7,4) נמצא ישירות מעל הפיקסל ב- (7,5)),
  • במרכזי הפיקסלים יש קואורדינטות שלמות.

האלגוריתם של Bresenham בוחר את המספר השלם y המתאים למרכז הפיקסלים הקרוב ביותר לאידיאלי (חלקי) y לאותו דבר איקס על עמודות עוקבות y יכול להישאר זהה או להגדיל ב- 1. המשוואה הכללית של הקו דרך נקודות הקצה ניתנת על ידי:

מכיוון שאנחנו מכירים את הטור, איקס, שורת הפיקסלים, y, ניתן על ידי עיגול כמות זו למספר השלם הקרוב ביותר:

בפועל, האלגוריתם אינו עוקב אחר הקואורדינטה y, שעולה ב M = ∆y / ∆x בכל פעם איקס מגדילה באחת היא שומרת על שגיאה כבולה בכל שלב, המייצגת את השלילי של המרחק מ- (א) הנקודה בה הקו יוצא מהפיקסל ל (b) הקצה העליון של הפיקסל. ערך זה מוגדר תחילה ל- y 0 - 0.5 < displaystyle y_ <0> -0.5> (עקב שימוש בקואורדינטות המרכז של הפיקסל), והוא מוגדל על ידי M בכל פעם איקס קואורדינטות מתווספות על ידי אחת. אם השגיאה נעשית גדולה מ- 0.5, אנו יודעים שהקו עבר פיקסל אחד כלפי מעלה, וכי עלינו להגדיל את הקו שלנו y לתאם ולהתאים מחדש את השגיאה כדי לייצג את המרחק מלמעלה של הפיקסל החדש - שנעשה על ידי חיסור אחד משגיאה. [3]

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

משוואת קו עריכה

צורת יירוט השיפוע של שורה נכתבת כ-

כאשר m הוא השיפוע ו- b הוא יירוט ה- y. זו פונקציה של x בלבד וזה יהיה שימושי להפוך את המשוואה הזו לכתובה כפונקציה של x ו- y. שימוש במניפולציה אלגברית והכרה בכך שהשיפוע הוא "עלייה בריצה" או Δ y / Δ x < displaystyle Delta y / Delta x> ואז

לתת למשוואה האחרונה הזו להיות פונקציה של x ו- y ואז ניתן לכתוב אותה כ-

f (2, 2) = x - 2 y + 2 = (2) - 2 (2) + 2 = 2 - 4 + 2 = 0

והנקודה (2,3) אינה על הקו

f (2, 3) = (2) - 2 (3) + 2 = 2 - 6 + 2 = - 2

וגם לא הנקודה (2,1)

f (2, 1) = (2) - 2 (1) + 2 = 2 - 2 + 2 = 2

שימו לב שהנקודות (2,1) ו- (2,3) נמצאות משני צידי הקו ו- f (x, y) מוערך לחיובי או לשלילי. קו מחלק מישור לחצאים ואת חצי המישור שיש לו f (x, y) יכול להיקרא חצי מישור שלילי, ואת החצי השני אפשר לקרוא חצי מישור חיובי. התבוננות זו חשובה מאוד בשארית הגזירה.

עריכת אלגוריתם

ברור שנקודת ההתחלה היא על הקו

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

התמונה הסמוכה מציגה את הנקודה הכחולה (2,2) שנבחרה להיות על הקו עם שתי נקודות מועמד בירוק (3,2) ו- (3,3). הנקודה השחורה (3, 2.5) היא נקודת האמצע בין שתי נקודות המועמד.

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

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

לקבלת ההחלטה הראשונה, ניסוח זה שווה ערך לשיטת נקודת האמצע שכן f (x 0, y 0) = 0 < displaystyle f (x_ <0>, y_ <0>) = 0> בנקודת ההתחלה. פשט ביטוי זה מניב:

כל הגזירה לאלגוריתם נעשית. סוגיית ביצוע אחת היא גורם ה- 1/2 בערך ההתחלתי של D. מכיוון שכל זה הוא בערך סימן ההפרש המצטבר, אז ניתן להכפיל הכל ב -2 ללא שום תוצאה.

התוצאה היא אלגוריתם המשתמש בחשבון מספר שלם בלבד.

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

כל המקרים ערוך

עם זאת, כאמור לעיל זה נועד רק לאפס אוקטנט, כלומר קווים שמתחילים במקור עם שיפוע בין 0 ל -1 כאשר x עולה בדיוק 1 לאיטרציה ו- y גדל ב- 0 או 1.

ניתן להרחיב את האלגוריתם כדי לכסות שיפועים בין 0 ל -1 על ידי בדיקה אם y צריך להגדיל או להקטין (כלומר dy & lt 0)

על ידי החלפת ציר x ו- y ניתן לכתוב יישום עבור שיפועים תלולים חיוביים או שליליים כ-

פתרון שלם יצטרך לזהות אם x1 & gt x0 או y1 & gt y0 ולהפוך את קואורדינטות הקלט לפני הציור, ובכך

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

גרסאות מסוימות משתמשות בעקרונות של Bresenham של שגיאה מצטברת במספר שלם כדי לבצע את כל שרטוטי הקו המתומנים, תוך איזון בין השגיאה החיובית והשלילית בין הקואורדינטות x ו- y. [2] שימו לב שההזמנה אינה בהכרח מובטחת במילים אחרות, ניתן לצייר את הקו מ (x0, y0) ל- (x1, y1) או מ- (x1, y1) ל- (x0, y0).

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

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

ברסנהאם פרסם גם אלגוריתם חישובי Run-Slice (בניגוד לאלגורית Run-Length). שיטה זו יוצגה במספר פטנטים אמריקאים:

5,815,163 שיטה ומכשיר לציור פרוסות קו במהלך החישוב
5,740,345 שיטה ומכשירים להצגת נתוני גרפיקה ממוחשבת המאוחסנים בפורמט דחוס עם מערכת אינדקס צבעים יעילה
5,657,435 הפעל מנוע ציור קו פרוסות עם יכולות קנה מידה לא ליניאריות
5,627,957 הפעל מנוע ציור קו פרוסות עם יכולות עיבוד משופרות
5,627,956 הפעל מנוע ציור קו פרוסות עם יכולות מתיחה
5,617,524 הפעל מנוע ציור קו פרוסות עם יכולות הצללה
5,611,029 הפעל מנוע ציור קו פרוסות עם יכולות הצללה לא לינאריות
5,604,852 שיטה ומכשירים להצגת עקומה פרמטרית בתצוגת וידאו
5,600,769 הפעל מנוע ציור קו פרוסות בטכניקות גזירה משופרות

הרחבה לאלגוריתם המטפל בקווים עבים נוצרה על ידי אלן מרפי ב- IBM. [5]


מאפייני הקרנה

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

שווה ערך

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

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

את תכונת ההקרנה של השקילות אפשר אולי להבין בצורה הטובה ביותר על ידי ניגודיות התכונות שלה עם השלכה פופולרית שמעוותת מאוד את השטח - הקרנת Mercator (איור 5.5.2).

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

למרות זאת, ה- Mercator שימושי לכמה מטרות. היסטורית הוא שימש לניווט - הוא יעיל לניתוב שכן כל קו ישר המצויר על המפה מייצג מסלול עם מצפן קבוע (למשל, מערב). "קו נושא מצפן קבוע" זה מכונה בדרך כלל קו משופע או לוקסודרום. מרקטור הוא א קונפורמי הַקרָנָה.

קונפורמי

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

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

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

להשלכת המפה הגנונית התכונה המעניינת שכל קו ישר המצויר על ההקרנה הוא מסלול מעגל נהדר. ההקרנה הגנומונית היא דוגמה ל- אזימוטל הַקרָנָה.

אזימוטל

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

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

שווה ערך

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

בהשלכה האזימוטאלית במרחק שווה (איור 5.5.8, משמאל) ניתן למדוד נכון מרחק ממרכז המפה (מוצג על ידי הנקודה השחורה) לכל נקודה אחרת. בהקרנה שוויונית של שתי נקודות (איור 5.5.8, מימין), ניתן למדוד מרחק נכון מכל שתי נקודות לכל נקודה אחרת במפה (וכך, זו לזו). בדוגמה לעיל, שתי הנקודות הללו הן (30⁰S, 30⁰W) ו- (30⁰N, 30⁰E). ערכים אלה סופקו כפרמטרים לתוכנת GIS תוך כדי הקרנת המפה - תהליך שנקרא התאמה אישית של הקרנה. בעת התאמה אישית של ההקרנה שלך, תבחר מיקומים רלוונטיים למטרת המפה שלך.

לא כל המפות באותה מידה הן בצורת מעגליות. ההשלכה השווי-גלילית, למשל, שווה מרחקים, בה ניתן למדוד מרחקים נכונים לאורך כל מרידיאן. כאשר ההקרנה השווי-גלילית משתמשת בקו המשווה כמקבילה הסטנדרטית שלה, נראה כי הגרמטיקה מורכבת מריבועי רשת, והיא מכונה Plate Carrée, הקרנת מפות פופולרית בשל פשטותה ותועלתה.

השתקפות סטודנטים

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

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

פְּשָׁרָה

תחזיות פשרה אינן משמרות לגמרי נכס כלשהו אלא מספקות איזון של עיוות בין הנכסים השונים. דוגמה פופולרית היא הקרנת רובינסון, המוצגת באיור 5.5.10 להלן. שימו לב בהקרנה זו כיצד המרחבים נראים דומים יותר בצורתם ובגודלם מה שנראה על פני כדור הארץ בהשוואה להופעתם בהקרנה המשמרת נכס ספציפי לחלוטין (למשל, The Mercator).

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

האופי המופרע של השלכה זו מעוות קשות (על ידי חלוקה) של גופי מים, ולכן לא יועיל למפות הקשורות לנתונים אוקיאניים, או לכאלה המתכוונים לדמיין מסלולים על פני כדור הארץ (המחובר). אולם עיוותים אלו מאפשרים למפה להציג ייצוג מדויק יותר של גדלי וצורות האדמות. שים לב שבעוד שהחלוקה בהקרנה המוצגת בתרשים 5.5.11 היא מעל מים, חלוקות על פני קרקע הן גם אפשריות, אם כי לא פופולריות.


11 תשובות 11

אתה לא טועה לגמרי, לעיתים קרובות יהיה הרבה יותר קל לאסוף נתונים יותר / טובים יותר כדי לשפר אלגוריתם מאשר לסחוט שיפורים קלים מתוך האלגוריתם.

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

בטח, קל להשיג מערכי נתונים גדולים מאוד כאשר אתה משתמש בגישות בפיקוח עצמי / לא) או אם התוויות שלך נוצרות באופן אוטומטי (למשל אם אתה Google אם משתמש לוחץ על קישור או לא). עם זאת, בעיות מעשיות רבות נשענות על מומחים אנושיים (שזמנם עשוי להיות יקר) שיתייגו את הדוגמאות. כאשר כל אדם יכול לבצע את העבודה (למשל לסמן כלב או חתול או משהו אחר עבור ImageNet), ניתן לשנות זאת למיליוני תמונות, אך כאשר אתה משלם לרופאים כדי לסווג תמונות רפואיות, עשרות אלפי תמונות (או אולי 100,000 איש). הוא מערך נתונים די גדול. לחלופין, אם אתה צריך להריץ ניסוי כימי עבור כל תווית.

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

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

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

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

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

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

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

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

כן, & נתונים קטנים & quot הם אכן בעיה. כדי לקבל יותר נתונים במקרה הספציפי הזה היה אומר להחזיר את הארכיאולוגים לחפור בהרי מרכז אסיה ולמדוד את כל התכונות של החפצים שנראים לי משמעותיים. At that, they better find artifacts in one piece, not broken ones! -)

Here are a couple thoughts to add to what has been posted so far.

You might be interested in taking a look at the famous machine learning paper, Domingos, P. (2012). "A Few Useful Things to Know about Machine Learning". Communications of the ACM (pdf). It should contain some food for thought. Specifically, here are three relevant subsections:

    DATA ALONE IS NOT ENOUGH
    Generalization being the goal has another major consequence: data alone is not enough, no matter how much of it you have. Consider learning a Boolean function of (say) 100 variables from a million examples. There are $2^<100>$
  1. FEATURE ENGINEERING IS THE KEY
    At the end of the day, some machine learning projects suc- ceed and some fail. What makes the difference? Easily the most important factor is the features used. If you have many independent features that each correlate well with the class, learning is easy. On the other hand, if the class is a very complex function of the features, you may not be able to learn it. Often, the raw data is not in a form that is amenable to learning, but you can construct features from it that are. .
  1. MORE DATA BEATS A CLEVERER ALGORITHM
    Suppose you’ve constructed the best set of features you can, but the classifiers you’re getting are still not accurate enough. What can you do now? There are two main choices: design a better learning algorithm, or gather more data (more examples, and possibly more raw features, subject to the curse of dimensionality). Machine learning researchers are mainly concerned with the former, but pragmatically the quickest path to success is often to just get more data. As a rule of thumb, a dumb algorithm with lots and lots of data beats a clever one with modest amounts of it. .

The other thing I would say is that the idea that "a human needs 1-2 to reach comparable classification accuracy" is because the human is not a blank slate. A person has a wealth of experience (i.e., many prior data) and rich conceptual knowledge that can be brought to bear on learning a classification. (Sections 4 and 8 from Domingoes are related to this idea of background knowledge and knowing what to attend to.) To connect these facts to training a (deep learning or other) model, you could consider that pre-training a model sometimes helps quite a bit (although this is less done nowadays) and likewise that Bayesian models with sufficiently good priors should also perform better. Having said those things, section 9 from Domingoes implies we may be able to be sufficiently successful without those, due to the increasing volumes of data that you describe.

There's some ambiguity in saying a data set is large. To improve predictive performance of an algorithm, you need more observations. You need to increase your sample size ( $n$ ) and not the number of things you measured/observed בְּתוֹך an experimental unit.

These can be hard to come by depending on the field of research: In clinical science there are privacy, security and most importantly ethical concerns with gathering more observations.

There are even cases where it is simply impossible to get more observations of independent experimental units. If you want to use prediction for some rare disease, or a nearly extinct species, there are hard constraints on how 'large' your data set can be.

Would an ML algorithm that is, say, 100x more data-efficient, while being 1000x slower, be useful?

You have almost answered your own question.

There are multiple factors at play here:

  • The cost of gathering a data point
  • The cost of training a model with an additional data point
  • The cost of making the model learn more from a data point
  • The benefit gained from training the model with an additional data point

You are seeking to maximize the expression (benefits - costs). If you measure or estimate these factors accurately enough, and convert to comparable units (such as monetary equivalents perhaps), you'll find it easy to determine what to improve most easily.

As others have said, there are various applications with completely different such factors.

People who work on data-efficient algorithms often bring up robotics for "motivation". But even for robotics, large datasets can be collected, as is done in this data-collection factory at Google:

What if I want to (for example) use reinforcement learning on a task involving underwater robotics to classify arctic ocean fronts? Or train a vision module to classify extremely rare objects in space through a fly-by probe? I may have very limited data and the cost of gathering new data may be extremely expensive. Often in robotics simulators are not accurate enough (especially when natural phenonmena are involved) to really generate accurate training data (this is called the sim2real problem).

Additionally, gathering real-life data for every possible task you would like your robot to accomplish can be prohibitive, especially if you want a wide variety of tasks accomplished by something like an in-home robot.

To all the other answers I'd add that in Deep Learning, Neural Architecture Search benefits immensely from data efficiency. Think about it: each data point is a trained network.

If your NAS setup requires $N$ data points (networks), and each network requires $D$ samples to be trained, that's $ND$ forward- and backpropagations overall: if you reduce $D$ by a ratio of $k$ , that's $k$ -many more architectures that you can explore with the same resources.

Of course, it isn't always that straightforward: This CVPR2021 paper by Mundt et al shows that the architectures themselves act as Deep Priors which don't need to be fully trained, if initialized correctly (as a nice counterpoint to the vast few-shot learning literature):

To generalize a bit what @FransrRodenburg says about sample size: many data sets have structure from various influencing factors. In particular, there are certain situation that lead to what is called nested factors in statistics (clustered data sets, hierarchical data sets, 1 : n relationships between influencing factors) and in this situation the overall sample size is often very limited, while data is abundant at lower levels in the data hierarchy.

I'm spectroscopist and chemometrician, here are some examples:

I did my PhD about classification of brain tissues for tumor (boundary) recognition.

  • I got hundreds of spectra from each piece of tissue,
  • but the number of patients were only order of magnitude 100.
  • For one of the tumor types I was looking at, primary lymphomas of the central nervous system, surgery is only done if the bulk of the tumor causes trouble. After 7 years, our cooperation partners had collected 8 pieces from 5 patients. (For comparison: during the same time, samples of about 2000 glioblastomas were collected for us) The application scenario btw was guiding a biopsy needle, which needs to be done far more often - but one wouldn't remove additional brain tissue samples for research purposes there.
    BTW: we had a huge problem finding good controls (normal brain tissue). Guess why.

I have a data set of about 8 TB hyperspectral imaging data containing a few thousand cacao beans collected at various stages of fermentation (they are classified according to color), from a few varieties, from 4 regions. And exactly n = 1 harvest year.

Yes, there are companies who collect large data sets, data bases covering, thousands of farms on several continents. Still AFAIK the largest have "only" a few decades of harvesting periods.

rare ones, that may not be worth automating (leave something for humans!).

The difficulty of getting samples (I'm talking of the physical pieces of material) does not necessarily say much about the need or the economic potential of the automated application. See e.g. the tumour example

During that tumor work I met a bunch of pathologists with whom I talked about their needs.

  • Some of them expressed needs rougly along your lines: "If I had an instrument that would automatically deal with the 95 % easy samples, I could concentrate on the rare/special/complicated/interesting cases"
  • Others were thinking pretty much of the opposite: "I can get through a routine cases within seconds - it's the rare/special/complicated/interesting cases where I'd really appreciate additional information."

(side note: one of the most important mistakes I see regularly is that the application scenario isn't specified in sufficient detail, resulting in something that mixes e.g. the two scenarios above and in the end doesn't meet the requirements of anyone.)

Random thoughts, although does not fully answer the question.

There seems to be a wastage of information in training new models on new data even if it is plentiful. Using an analogy with another general purpose technology, fitting new models is not totally dissimilar to reinventing the wheel. Bayesian and transfer learning seem to offer solutions in adding to cumulative data and knowledge, and hence to an extent can help mitigate this. Would the problem of replication crisis be as deep if Bayesian techniques had been used more and thus data containing surprisng results had to overcome the inertia of previous studies?

As @svavil highlights, it is the accumulation of prior training that has accumulated in the past that allows (seemingly?) impressive results in the present. Training efficiency can be obtained by incorporating new data on top of previous data by transfer learning, and neural networks because of their usage in many different domains seem to be amenable to transfer learning (is this right?) and transfer learning is sometimes (usually?) going to mean potentially some efficiencies. Further aggregating of different neural networks seems to also mean potential efficiency of say training a lidar data set by a neural network and then concatenating (word used in a non-technical way!) this neural network to a radar trained neural network.

As per the answer by @Tim, biased data can be a problem, and reusing a known good data set, say as a starting point for transfer learning may be helpful in mitigating a bias problem. As an aside, biased data presumably increases the problem if you accidently skew the bias-variance tradeoff too much for the former (low bias, high variance), and thus generalization will be even worse. Note here there are two types of bias used in the above sentence, and feel free to comment on this although is just an aside here.

So the question may be able to be reversed, techniques that add to accumulated knowledge are helpful, and they also tend to be efficient when new data is added to them.


Questions & Answers

Q1. Movie Recommendation systems are an example of:

  1. Classification
  2. Clustering
  3. Reinforcement Learning
  4. Regression

Generally, movie recommendation systems cluster the users in a finite number of similar groups based on their previous activities and profile. Then, at a fundamental level, people in the same cluster are made similar recommendations.

In some scenarios, this can also be approached as a classification problem for assigning the most appropriate movie class to the user of a specific group of users. Also, a movie recommendation system can be viewed as a reinforcement learning problem where it learns by its previous recommendations and improves the future recommendations.

Q2. Sentiment Analysis is an example of:

  1. Regression
  2. Classification
  3. Clustering
  4. Reinforcement Learning

Sentiment analysis at the fundamental level is the task of classifying the sentiments represented in an image, text or speech into a set of defined sentiment classes like happy, sad, excited, positive, negative, etc. It can also be viewed as a regression problem for assigning a sentiment score of say 1 to 10 for a corresponding image, text or speech.

Another way of looking at sentiment analysis is to consider it using a reinforcement learning perspective where the algorithm constantly learns from the accuracy of past sentiment analysis performed to improve the future performance.

Q3. Can decision trees be used for performing clustering?

Decision trees can also be used to for clusters in the data but clustering often generates natural clusters and is not dependent on any objective function.

Q4. Which of the following is the most appropriate strategy for data cleaning before performing clustering analysis, given less than desirable number of data points:

  1. Capping and flouring of variables
  2. Removal of outliers

Removal of outliers is not recommended if the data points are few in number. In this scenario, capping and flouring of variables is the most appropriate strategy.

Q5. What is the minimum no. of variables/ features required to perform clustering?

At least a single variable is required to perform clustering analysis. Clustering analysis with a single variable can be visualized with the help of a histogram.

Q6. For two runs of K-Mean clustering is it expected to get same clustering results?

K-Means clustering algorithm instead converses on local minima which might also correspond to the global minima in some cases but not always. Therefore, it’s advised to run the K-Means algorithm multiple times before drawing inferences about the clusters.

However, note that it’s possible to receive same clustering results from K-means by setting the same seed value for each run. But that is done by simply making the algorithm choose the set of same random no. for each run.

Q7. Is it possible that Assignment of observations to clusters does not change between successive iterations in K-Means

When the K-Means algorithm has reached the local or global minima, it will not alter the assignment of data points to clusters for two successive iterations.

Q8. Which of the following can act as possible termination conditions in K-Means?

  1. For a fixed number of iterations.
  2. Assignment of observations to clusters does not change between iterations. Except for cases with a bad local minimum.
  3. Centroids do not change between successive iterations.
  4. Terminate when RSS falls below a threshold.

All four conditions can be used as possible termination condition in K-Means clustering:

  1. This condition limits the runtime of the clustering algorithm, but in some cases the quality of the clustering will be poor because of an insufficient number of iterations.
  2. Except for cases with a bad local minimum, this produces a good clustering, but runtimes may be unacceptably long.
  3. This also ensures that the algorithm has converged at the minima.
  4. Terminate when RSS falls below a threshold. This criterion ensures that the clustering is of a desired quality after termination. Practically, it’s a good practice to combine it with a bound on the number of iterations to guarantee termination.

Q9. Which of the following clustering algorithms suffers from the problem of convergence at local optima?

  1. K- Means clustering algorithm
  2. Agglomerative clustering algorithm
  3. Expectation-Maximization clustering algorithm
  4. Diverse clustering algorithm

Out of the options given, only K-Means clustering algorithm and EM clustering algorithm has the drawback of converging at local minima.

Q10. Which of the following algorithm is most sensitive to outliers?

A. K-means clustering algorithm

B. K-medians clustering algorithm

C. K-modes clustering algorithm

D. K-medoids clustering algorithm

Out of all the options, K-Means clustering algorithm is most sensitive to outliers as it uses the mean of cluster data points to find the cluster center.

Q11. After performing K-Means Clustering analysis on a dataset, you observed the following dendrogram. Which of the following conclusion can be drawn from the dendrogram?

A. There were 28 data points in clustering analysis

B. The best no. of clusters for the analyzed data points is 4

C. The proximity function used is Average-link clustering

D. The above dendrogram interpretation is not possible for K-Means clustering analysis

A dendrogram is not possible for K-Means clustering analysis. However, one can create a cluster gram based on K-Means clustering analysis.

Q12. How can Clustering (Unsupervised Learning) be used to improve the accuracy of Linear Regression model (Supervised Learning):

  1. Creating different models for different cluster groups.
  2. Creating an input feature for cluster ids as an ordinal variable.
  3. Creating an input feature for cluster centroids as a continuous variable.
  4. Creating an input feature for cluster size as a continuous variable.

Creating an input feature for cluster ids as ordinal variable or creating an input feature for cluster centroids as a continuous variable might not convey any relevant information to the regression model for multidimensional data. But for clustering in a single dimension, all of the given methods are expected to convey meaningful information to the regression model. For example, to cluster people in two groups based on their hair length, storing clustering ID as ordinal variable and cluster centroids as continuous variables will convey meaningful information.

Q13. What could be the possible reason(s) for producing two different dendrograms using agglomerative clustering algorithm for the same dataset?

A. Proximity function used

Change in either of Proximity function, no. of data points or no. of variables will lead to different clustering results and hence different dendrograms.

Q14. In the figure below, if you draw a horizontal line on y-axis for y=2. What will be the number of clusters formed?

Since the number of vertical lines intersecting the red horizontal line at y=2 in the dendrogram are 2, therefore, two clusters will be formed.

Q15. What is the most appropriate no. of clusters for the data points represented by the following dendrogram:

The decision of the no. of clusters that can best depict different groups can be chosen by observing the dendrogram. The best choice of the no. of clusters is the no. of vertical lines in the dendrogram cut by a horizontal line that can transverse the maximum distance vertically without intersecting a cluster.

In the above example, the best choice of no. of clusters will be 4 as the red horizontal line in the dendrogram below covers maximum vertical distance AB.

Q16. In which of the following cases will K-Means clustering fail to give good results?

  1. Data points with outliers
  2. Data points with different densities
  3. Data points with round shapes
  4. Data points with non-convex shapes

K-Means clustering algorithm fails to give good results when the data contains outliers, the density spread of data points across the data space is different and the data points follow non-convex shapes.

Q17. Which of the following metrics, do we have for finding dissimilarity between two clusters in hierarchical clustering?

  1. Single-link
  2. Complete-link
  3. Average-link

All of the three methods i.e. single link, complete link and average link can be used for finding dissimilarity between two clusters in hierarchical clustering.

Q18. Which of the following are true?

  1. Clustering analysis is negatively affected by multicollinearity of features
  2. Clustering analysis is negatively affected by heteroscedasticity

Clustering analysis is not negatively affected by heteroscedasticity but the results are negatively impacted by multicollinearity of features/ variables used in clustering as the correlated feature/ variable will carry extra weight on the distance calculation than desired.

Q19. Given, six points with the following attributes:

Which of the following clustering representations and dendrogram depicts the use of MIN or Single link proximity function in hierarchical clustering:

A.

B.

C.

D.

For the single link or MIN version of hierarchical clustering, the proximity of two clusters is defined to be the minimum of the distance between any two points in the different clusters. For instance, from the table, we see that the distance between points 3 and 6 is 0.11, and that is the height at which they are joined into one cluster in the dendrogram. As another example, the distance between clusters <3, 6>and <2, 5>is given by dist(<3, 6>, <2, 5>) = min(dist(3, 2), dist(6, 2), dist(3, 5), dist(6, 5)) = min(0.1483, 0.2540, 0.2843, 0.3921) = 0.1483.

Q20 Given, six points with the following attributes:

Which of the following clustering representations and dendrogram depicts the use of MAX or Complete link proximity function in hierarchical clustering:

A.

B.

C.

D.

For the single link or MAX version of hierarchical clustering, the proximity of two clusters is defined to be the maximum of the distance between any two points in the different clusters. Similarly, here points 3 and 6 are merged first. However, <3, 6>is merged with <4>, instead of <2, 5>. This is because the dist(<3, 6>, <4>) = max(dist(3, 4), dist(6, 4)) = max(0.1513, 0.2216) = 0.2216, which is smaller than dist(<3, 6>, <2, 5>) = max(dist(3, 2), dist(6, 2), dist(3, 5), dist(6, 5)) = max(0.1483, 0.2540, 0.2843, 0.3921) = 0.3921 and dist(<3, 6>, <1>) = max(dist(3, 1), dist(6, 1)) = max(0.2218, 0.2347) = 0.2347.

Q21 Given, six points with the following attributes:

Which of the following clustering representations and dendrogram depicts the use of Group average proximity function in hierarchical clustering:

A.

B.
C.

D.

For the group average version of hierarchical clustering, the proximity of two clusters is defined to be the average of the pairwise proximities between all pairs of points in the different clusters. This is an intermediate approach between MIN and MAX. This is expressed by the following equation:

Here, the distance between some clusters. dist(<3, 6, 4>, <1>) = (0.2218 + 0.3688 + 0.2347)/(3 ∗ 1) = 0.2751. dist(<2, 5>, <1>) = (0.2357 + 0.3421)/(2 ∗ 1) = 0.2889. dist(<3, 6, 4>, <2, 5>) = (0.1483 + 0.2843 + 0.2540 + 0.3921 + 0.2042 + 0.2932)/(6∗1) = 0.2637. Because dist(<3, 6, 4>, <2, 5>) is smaller than dist(<3, 6, 4>, <1>) and dist(<2, 5>, <1>), these two clusters are merged at the fourth stage

Q22. Given, six points with the following attributes:

Which of the following clustering representations and dendrogram depicts the use of Ward’s method proximity function in hierarchical clustering:

A.

B.

C.

D.

Ward method is a centroid method. Centroid method calculates the proximity between two clusters by calculating the distance between the centroids of clusters. For Ward’s method, the proximity between two clusters is defined as the increase in the squared error that results when two clusters are merged. The results of applying Ward’s method to the sample data set of six points. The resulting clustering is somewhat different from those produced by MIN, MAX, and group average.

Q23. What should be the best choice of no. of clusters based on the following results:

The silhouette coefficient is a measure of how similar an object is to its own cluster compared to other clusters. Number of clusters for which silhouette coefficient is highest represents the best choice of the number of clusters.

Q24. Which of the following is/are valid iterative strategy for treating missing values before clustering analysis?

B. Nearest Neighbor assignment

C. Imputation with Expectation Maximization algorithm

All of the mentioned techniques are valid for treating missing values before clustering analysis but only imputation with EM algorithm is iterative in its functioning.

Q25. K-Mean algorithm has some limitations. One of the limitation it has is, it makes hard assignments(A point either completely belongs to a cluster or not belongs at all) of points to clusters.

Note: Soft assignment can be consider as the probability of being assigned to each cluster: say K = 3 and for some point xn, p1 = 0.7, p2 = 0.2, p3 = 0.1)

Which of the following algorithm(s) allows soft assignments?

Both, Gaussian mixture models and Fuzzy K-means allows soft assignments.

Q26. Assume, you want to cluster 7 observations into 3 clusters using K-Means clustering algorithm. After first iteration clusters, C1, C2, C3 has following observations:

What will be the cluster centroids if you want to proceed for second iteration?

Finding centroid for data points in cluster C1 = ((2+4+6)/3, (2+4+6)/3) = (4, 4)

Finding centroid for data points in cluster C2 = ((0+4)/2, (4+0)/2) = (2, 2)

Finding centroid for data points in cluster C3 = ((5+9)/2, (5+9)/2) = (7, 7)

Q27. Assume, you want to cluster 7 observations into 3 clusters using K-Means clustering algorithm. After first iteration clusters, C1, C2, C3 has following observations:

What will be the Manhattan distance for observation (9, 9) from cluster centroid C1. In second iteration.

Manhattan distance between centroid C1 i.e. (4, 4) and (9, 9) = (9-4) + (9-4) = 10

Q28. If two variables V1 and V2, are used for clustering. Which of the following are true for K means clustering with k =3?

  1. If V1 and V2 has a correlation of 1, the cluster centroids will be in a straight line
  2. If V1 and V2 has a correlation of 0, the cluster centroids will be in straight line

If the correlation between the variables V1 and V2 is 1, then all the data points will be in a straight line. Hence, all the three cluster centroids will form a straight line as well.

Q29. Feature scaling is an important step before applying K-Mean algorithm. What is reason behind this?

A. In distance calculation it will give the same weights for all features

B. You always get the same clusters. If you use or don’t use feature scaling

C. In Manhattan distance it is an important step but in Euclidian it is not

Feature scaling ensures that all the features get same weight in the clustering analysis. Consider a scenario of clustering people based on their weights (in KG) with range 55-110 and height (in inches) with range 5.6 to 6.4. In this case, the clusters produced without scaling can be very misleading as the range of weight is much higher than that of height. Therefore, its necessary to bring them to same scale so that they have equal weightage on the clustering result.

Q30. Which of the following method is used for finding optimal of cluster in K-Mean algorithm?

Out of the given options, only elbow method is used for finding the optimal number of clusters. The elbow method looks at the percentage of variance explained as a function of the number of clusters: One should choose a number of clusters so that adding another cluster doesn’t give much better modeling of the data.

Q31. What is true about K-Mean Clustering?

  1. K-means is extremely sensitive to cluster center initializations
  2. Bad initialization can lead to Poor convergence speed
  3. Bad initialization can lead to bad overall clustering

All three of the given statements are true. K-means is extremely sensitive to cluster center initialization. Also, bad initialization can lead to Poor convergence speed as well as bad overall clustering.

Q32. Which of the following can be applied to get good results for K-means algorithm corresponding to global minima?

  1. Try to run algorithm for different centroid initialization
  2. Adjust number of iterations
  3. Find out the optimal number of clusters

All of these are standard practices that are used in order to obtain good clustering results.

Q33. What should be the best choice for number of clusters based on the following results:

Based on the above results, the best choice of number of clusters using elbow method is 6.

Q34. What should be the best choice for number of clusters based on the following results:

Generally, a higher average silhouette coefficient indicates better clustering quality. In this plot, the optimal clustering number of grid cells in the study area should be 2, at which the value of the average silhouette coefficient is highest. However, the SSE of this clustering solution (k = 2) is too large. At k = 6, the SSE is much lower. In addition, the value of the average silhouette coefficient at k = 6 is also very high, which is just lower than k = 2. Thus, the best choice is k = 6.

Q35. Which of the following sequences is correct for a K-Means algorithm using Forgy method of initialization?

  1. Specify the number of clusters
  2. Assign cluster centroids randomly
  3. Assign each data point to the nearest cluster centroid
  4. Re-assign each point to nearest cluster centroids
  5. Re-compute cluster centroids

The methods used for initialization in K means are Forgy and Random Partition. The Forgy method randomly chooses k observations from the data set and uses these as the initial means. The Random Partition method first randomly assigns a cluster to each observation and then proceeds to the update step, thus computing the initial mean to be the centroid of the cluster’s randomly assigned points.

Q36. If you are using Multinomial mixture models with the expectation-maximization algorithm for clustering a set of data points into two clusters, which of the assumptions are important:

A. All the data points follow two Gaussian distribution

B. All the data points follow n Gaussian distribution (n >2)

C. All the data points follow two multinomial distribution

D. All the data points follow n multinomial distribution (n >2)

In EM algorithm for clustering its essential to choose the same no. of clusters to classify the data points into as the no. of different distributions they are expected to be generated from and also the distributions must be of the same type.

Q37. Which of the following is/are not true about Centroid based K-Means clustering algorithm and Distribution based expectation-maximization clustering algorithm:

  1. Both starts with random initializations
  2. Both are iterative algorithms
  3. Both have strong assumptions that the data points must fulfill
  4. Both are sensitive to outliers
  5. Expectation maximization algorithm is a special case of K-Means
  6. Both requires prior knowledge of the no. of desired clusters
  7. The results produced by both are non-reproducible.

All of the above statements are true except the 5 th as instead K-Means is a special case of EM algorithm in which only the centroids of the cluster distributions are calculated at each iteration.

Q38. Which of the following is/are not true about DBSCAN clustering algorithm:

  1. For data points to be in a cluster, they must be in a distance threshold to a core point
  2. It has strong assumptions for the distribution of data points in dataspace
  3. It has substantially high time complexity of order O(n 3 )
  4. It does not require prior knowledge of the no. of desired clusters
  5. It is robust to outliers
  • DBSCAN can form a cluster of any arbitrary shape and does not have strong assumptions for the distribution of data points in the dataspace.
  • DBSCAN has a low time complexity of order O(n log n) only.

Q39. Which of the following are the high and low bounds for the existence of F-Score?

The lowest and highest possible values of F score are 0 and 1 with 1 representing that every data point is assigned to the correct cluster and 0 representing that the precession and/ or recall of the clustering analysis are both 0. In clustering analysis, high value of F score is desired.

Q40. Following are the results observed for clustering 6000 data points into 3 clusters: A, B and C:

What is the F1-Score with respect to cluster B?

True Negative, TN = 600 + 1600 = 2200

False Positive, FP = 1000 + 200 = 1200

False Negative, FN = 400 + 400 = 800

Precision = TP / (TP + FP) = 0.5

F1 = 2 * (Precision * Recall)/ (Precision + recall) = 0.54


Efficient viewshed computation on terrain in external memory

The recent availability of detailed geographic data permits terrain applications to process large areas at high resolution. However the required massive data processing presents significant challenges, demanding algorithms optimized for both data movement and computation. One such application is viewshed computation, that is, to determine all the points visible from a given point עמ '. In this paper, we present an efficient algorithm to compute viewsheds on terrain stored in external memory. In the usual case where the observer’s radius of interest is smaller than the terrain size, the algorithm complexity is θ(scan(נ 2 )) where נ 2 is the number of points in an נ × נ DEM and scan(נ 2 ) is the minimum number of I/O operations required to read נ 2 contiguous items from external memory. This is much faster than existing published algorithms.

זו תצוגה מקדימה של תוכן מנוי, גישה דרך המוסד שלך.


צפו בסרטון: מציאת משוואת הקו הישר הפונקציה הקווית כאשר נתונות שתי נקודות א (סֶפּטֶמבֶּר 2021).