חיפוש באתר

קישורים

עמודים

קטגוריות

ארכיב עבור 'דטה סיינס'

מה עושים כשיש 180000 משתנים מסבירים?

בקבוצת Machine & Deep learning Israel בפייסבוק מישהו שאל את השאלה הבאה:

 I have a feature matrix of about 4000 samples and 180,000 features. Naturally, I want to reduce its dimensions for applying a machine learning algorithm on the reduced matrix.

  1. How do I handle such a big matrix in python for calculations (pandas, other?)
  2. How can I apply feature selection on such a big matrix and what feature selection methods would you try first?

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

ראשית, בואו נבהיר אותה בעברית.

לשואל יש קובץ נתונים, עם 4000 תצפיות. בכל תצפית נתונים ערכים של 180,000 משתנים (features בשפת ה-machine learning). ברור לשואל שיש לו יותר מדי משתנים (חלק מהמשיבים לשאלה ציינו זאת במפורש, ויעצו לשואל לאסוף עוד תצפיות) , והוא שואל איך יוכל לבחור מתוכם קבוצה קטנה יותר של משתנים, כך שמימד הבעיה יקטן. כשכמובן הוא מעוניין לבחור את המשתנים המשמעותיים ביותר לבעיה שלו.

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

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

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

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

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

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

1) בחר את אחד המשתנים שבתוך המודל באופן מקרי.

2) בחר אחד מהמשתנים שלא נכנסו למודל באופן מקרי.

3) הוצא מהמודל את המשתנה שבחרת בשלב (1) והכנס במקומו למודל את המשתנה שבחרת בשלב (2).

4) חשב את הערך הפרדיקטיבי של המודל החדש.

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

6) חזור לשלב (1).

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

לאחר שהתכנסנו למודל כלשהו עם 500 משתנים, נוכל להפעיל עליו את אחת השיטות המקובלות של variable/feature selection, למשל LASSO regression.

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

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

בהצלחה!

הסבר קצר על overfitting

מקבץ 4

שלום לכולם. הפעם מקבץ ארוך למדי, עקב משך הזמן הארוך מאז המקבץ הקודם.

  • השבוע צוינו 100 שנה למותה של פלורנס נייטינגייל.
  • בעיית המעטפות (עליה כתבתי לפני כשנתיים)  הרימה שוב את ראשה, הפעם בבלוג של וייאם בריגס, שהקדיש שתי רשימות לנושא. את הרשימה הראשונה אפילו קראתי. (המשך הפריט גולש לפרטים טכניים, אז מי שלא מעוניין מוזמן פשוט לדלג עליו). בתחילה בריגס מציג את החישוב השגוי לפיו החלפת המעטפות תביא לתוחלת רווח של 1.25X (כאשר  X הוא הסכום במעטפה שקיבלת), ולכן מתקבלת המסקנה הפרדוקסלית לפיה כדאי להחליף את המעטפה שוב ושוב ושוב. אולם בריגס אינו מסיק מכך כי יש לנסות לערוך את החישוב בצורה נאותה יותר. המסקנה של בריגס היא שיש להשליך את התוחלת לכל הרוחות בבעיות החלטה (טוב, הוא השתמש במלים קצת יותר מעודנות). וכיוון שכך, הוא פונה מייד אל העולם הבייסיאני (הבייסיאניים לא משתמשים בתוחלת? אלה חדשות אפילו בשבילי), ומתחיל להציג שלל פתרונות מהסוג שגרמו לי לא להתלהב מהענף הזה של הסטטיסטיקה. עלי לציין כי הגבתי לרשימה וציינתי מהיכן מגיע הפרדוקס, ומדוע תוחלת הרווח מהחלפת המעטפות היא אפס (ולכן לא משנה אם מחליפים או לא). בתגובה בריגס דרש ממני “להוכיח” (?!) כי החישוב שלו לפיו התוחלת היא 1.25X אינו נכון. אני לא מבין את זה. הוא הוא יטען כי 2 ועוד 2 שווים ל-5 ואני אטען כי התשובה הנכונה היא 4 (למניעת תשובות מתחכמות – אני מדבר על שדה הממשיים), האם אדרש להוכיח כי התשובה 5 אינה נכונה? בריגס הוסיף וטען כי התוחלת הוא מושג שכיחותי (frequentist) ואילו ניסוי המעטפות נערך פעם אחת בלבד, ולכן מושג התוחלת אינו תקף. אני לא מבין את הטיעון הזה. ואם נערוך סדרה של ניסויים זהים, אז הטיעון שלי יהיה תקף לפתע? אשמח למי שיאיר את עיניי. את הרשימה השניה של בריגס כבר לא קראתי, אבל אתם מוזמנים.
  • נתן יאו מהבלוג Flowing Data העוסק בויזואליזציה של נתונים כתב רשימה על 7 הכללים הבסיסיים ליצירת גרפים ותרשימים. 7 הכללים הם: בדוק את הנתונים, הסבר את הקידוד, הוסף תוויות לצירים, ציין את יחידות המדידה, שמור על פרופרציות גיאומטריות נכונות, ציין את מקור הנתונים, וזכור מי קהל היעד שלך. כעת פוצח יאו בסדרה של שבע רשימות שתסביר ביתר פירוט את כל אחד מהכללים. הנה הלינק לרשימה הראשונה בסדרה: בדוק את הנתונים.
  • שמוליק הביא בבלוג שלו דוגמא בה הכלל החמישי של יאו מופר בגסות.
  • והנה הצגה גרפית יפה (בוושינגטון פוסט) המשווה בין תכניות המס של שני נשיאי ארה”ב האחרונים, בוש ואובאמה.
  • רנדום ג’ון מדווח על הרצאה של פרנק הארל בכנס useR!  שעסקה ב”אלרגיה לאינפורמציה”. תופעה זו באה לידי ביטוי בהתנגדות להשיג אינפורמציה הדרושה לקבלת החלטה נכונה ובהתעלמות מאינפורמציה חשובה וזמינה. הוא מביא לינק למצגת של גירסה יותר ישנה של ההרצאה.
  • ועוד דיווח מכנס: ג’ון ג’ונסון מחברת קאטו מדווח על התובנות שלו מכנס JSM2010 שנערך בואנקובר בתחילת החודש.
  • למתעניינים בכריית נתונים (שלאחרונה הצטרפתי לשורותיהם): ג’ון אלדר כותב על עשרת הטעויות האפשריות הגדולות ביתר בדאטה מיינינג. כשערך את ספירת המלאי גילה שיש לו למעשה 11 טעויות ברשימה. הפתרון שלו: הן דורגו החל מ-0 ועד 10. זה לא רעיון מקורי. גם בליגת המכללות הנקראת “Big10” יש 11 מכללות (שימו לב ללוגו).
  • וזה לא שייך למקבץ, אבל הפריט הקודם הזכיר לי אנקדוטה על המתמטיקאי נורברט ווינר, אולי האבטיפוס של דמות הפרופסור המפוזר. באחת הפעמים שעבר דירה, ביקשה ממנו אשתו לברר כי אל הדירה החדשה הגיעו 10 מזוודות. ווינר חזר ודיווח לרעייתו כי ספר 9 מזוודות בלבד, והדגים בנוכחותה את הספירה החוזרת: 0, 1, 2,…
  • כריסטיאן רוברט (Xian) מאוניברסיטת דופין בפריז החליט להעביר סמינר על המארים הקלאסיים של הסטטיסטיקה. כדי להחליט אלו מאמרים ילמדו בסמינר, הוא ערך סקר בין קוראי הבלוג שלו. בין המועמדים: מאמרם הקלאסי של ניימן ופירסון, מאמרו של ברדלי אפרון (מספר 8 ברשימת 15 הסטטיסטיקאים הגדולים שערכתי), מאמרו של קוקס (מספר 10) על ניתוח השרדות, ועוד רבים וטובים. בולטים בהעדרם מהרשימה  מאמר כלשהו מאת פישר ומאמרו של בייס (עליו כתבתי ברשימה “הכוכב, הסמים והכומר“). כשצפיתי בתוצאות הסקר הופתעתי: המאמר של ניימן ופירסון הגיע רק למקום החמישי, אותו הוא חולק במשותף עם מאמרו של הייסטינגס על שיטת MCMC. למקום הראשון הגיע מאמרו של אפרון על שיטת הבוטסטרפ; במקום השני: דמפסטר, ליירד ורבין במאמרם על שאלגוריתם EM. שלישי היה מאמרו של רוברט טיבשירני על שיטת הלאסו, ובמקום הרביעי – ישראל על המפה: מאמרם של יוסי הוכברג ויואב בנימיני מאוניברסיטת תל אביב על גישת ה-FDR  לבדיקת השערות מרובות.
  • תמר בן יוסף כותבת על התייקרות הדירות בישראל, ובפרט על הקשיים והכשלים במדידת מחירי הדירות.
  • בבלוג עבודה שחורה כותב יפתח גולדמן על סקר שערך משרד התמ”ת אודות התפלגות השכר בישראל ומסקנתו: התפלגות השכר מוּטה, והשכר הממוצע לא מייצג את התפלגות השכר במשק. קוראי הבלוג הותיקים, שקראו את רשימתי על המנהל והפועלים, בודאי לא מופתעים.