היי הבר!
אנחנו ברקסופט תרגמנו את המאמר לרוסית . אנו מקווים שזה יהיה שימושי לכל מי שמתעניין בנושא.
בעולם האמיתי, הנתונים לא תמיד נקיים כמו שלקוחות עסקיים חושבים לפעמים. זו הסיבה שכריית נתונים וסכסוך נתונים מבוקשים. זה עוזר לזהות ערכים ודפוסים חסרים בנתונים מובנים של שאילתות שבני אדם לא יכולים לזהות. על מנת למצוא ולהשתמש בדפוסים הללו כדי לחזות תוצאות באמצעות קשרים שהתגלו בנתונים, למידת מכונה שימושית.
כדי להבין אלגוריתם כלשהו, עליך להסתכל על כל המשתנים בנתונים ולהבין מה משתנים אלה מייצגים. זה קריטי מכיוון שהרציונל מאחורי התוצאות מבוסס על הבנת הנתונים. אם הנתונים מכילים 5 או אפילו 50 משתנים, ניתן לבחון את כולם. מה אם יש 200 כאלה? אז פשוט לא יהיה מספיק זמן ללמוד כל משתנה בודד. יתרה מכך, חלק מהאלגוריתמים לא עובדים עבור נתונים קטגוריים, ואז תצטרכו להמיר את כל העמודות הקטגוריות למשתנים כמותיים (הם עשויים להיראות כמותיים, אבל המדדים יראו שהם קטגוריים) כדי להוסיף אותם למודל. כך גדל מספר המשתנים ויש כ-500 מהם. מה לעשות עכשיו? אפשר לחשוב שהתשובה תהיה הפחתת הממדיות. אלגוריתמים להפחתת מימדיות מפחיתים את מספר הפרמטרים אך יש להם השפעה שלילית על הפרשנות. מה אם יש טכניקות אחרות שמבטלות תכונות תוך הופכות את הנותרות לקלות להבנה ולפירוש?
תלוי אם הניתוח מבוסס על רגרסיה או סיווג, האלגוריתמים לבחירת התכונות עשויים להיות שונים, אך הרעיון העיקרי של היישום שלהם נשאר זהה.
משתנים בעלי קורלציה גבוהה
משתנים בעלי קורלציה גבוהה זה לזה מספקים את אותו מידע למודל, כך שאין צורך להשתמש בכולם לניתוח. לדוגמה, אם מערך נתונים מכיל את התכונות "זמן מקוון" ו"תנועה בשימוש", אנו יכולים להניח שהם יהיו בקורלציה מסוימת, ונראה מתאם חזק גם אם נבחר מדגם נתונים חסר פניות. במקרה זה, יש צורך רק באחד מהמשתנים הללו במודל. אם תשתמש בשניהם, הדגם יהיה מצויד יתר על המידה ומוטה כלפי תכונה מסוימת.
ערכי P
באלגוריתמים כמו רגרסיה לינארית, מודל סטטיסטי ראשוני הוא תמיד רעיון טוב. זה עוזר להראות את חשיבות התכונות באמצעות ערכי ה-p שלהן שהושגו על ידי מודל זה. לאחר שקבענו את רמת המובהקות, אנו בודקים את ערכי ה-p המתקבלים, ואם ערך כלשהו הוא מתחת לרמת המובהקות שצוינה, תכונה זו מוכרזת כמשמעותית, כלומר, שינוי בערך שלה יוביל כנראה לשינוי בערך של המטרה.
בחירה ישירה
בחירה קדימה היא טכניקה הכוללת יישום רגרסיה שלבית. בניית מודל מתחילה באפס שלם, כלומר מודל ריק, ואז כל איטרציה מוסיפה משתנה שעושה שיפור למודל שנבנה. איזה משתנה נוסף למודל נקבע לפי המשמעות שלו. ניתן לחשב זאת באמצעות מדדים שונים. הדרך הנפוצה ביותר היא להשתמש בערכי p שהושגו במודל הסטטיסטי המקורי תוך שימוש בכל המשתנים. לפעמים בחירה קדימה יכולה להוביל להתאמת יתר של מודל מכיוון שעשויים להיות משתנים בקורלציה גבוהה במודל, גם אם הם מספקים את אותו מידע למודל (אך המודל עדיין מראה שיפור).
בחירה הפוכה
בחירה הפוכה כוללת גם ביטול צעד אחר צעד של תכונות, אך בכיוון ההפוך בהשוואה לבחירה קדימה. במקרה זה, המודל הראשוני כולל את כל המשתנים הבלתי תלויים. משתנים נמחקים לאחר מכן (אחד לכל איטרציה) אם הם לא תורמים ערך למודל הרגרסיה החדש בכל איטרציה. אי הכללת תכונות מבוססת על ערכי p של המודל הראשוני. לשיטה זו יש גם אי ודאות בעת הסרת משתנים בעלי קורלציה גבוהה.
חיסול תכונה רקורסיבית
RFE הוא טכניקה/אלגוריתם בשימוש נרחב לבחירת המספר המדויק של תכונות משמעותיות. לפעמים השיטה משמשת כדי להסביר מספר תכונות "החשובות ביותר" המשפיעות על התוצאות; ולפעמים לצמצם מספר רב מאוד של משתנים (כ-200-400), ורק אלה שתורמים לפחות תרומה כלשהי למודל נשמרים, וכל השאר נשמרים. RFE משתמש במערכת דירוג. לתכונות במערך הנתונים מוקצות דרגות. דרגות אלו משמשות לאחר מכן לביטול רקורסיביות של תכונות בהתבסס על הקולינאריות ביניהן וחשיבותן של תכונות אלו במודל. בנוסף לדירוג תכונות, RFE יכול להראות אם תכונות אלו חשובות או לא אפילו עבור מספר נתון של תכונות (מכיוון שסביר מאוד שמספר התכונות שנבחר לא יהיה אופטימלי, ומספר התכונות האופטימלי עשוי להיות יותר או פחות מהמספר שנבחר).
תרשים חשיבות תכונה
כשמדברים על הפרשנות של אלגוריתמי למידת מכונה, אנו בדרך כלל דנים ברגרסיות ליניאריות (המאפשרות לך לנתח את חשיבותן של תכונות באמצעות ערכי p) ועצי החלטה (המציגים באופן מילולי את חשיבותן של תכונות בצורה של עץ, וב- באותו זמן ההיררכיה שלהם). מצד שני, אלגוריתמים כמו Random Forest, LightGBM ו-XG Boost משתמשים לרוב בדיאגרמת חשיבות תכונה, כלומר, מתווים דיאגרמה של משתנים ו"מספרי החשיבות שלהם". זה שימושי במיוחד כאשר אתה צריך לספק רציונל מובנה לחשיבותן של תכונות מבחינת השפעתן על העסק.
רגוליזציה
הרגולציה נעשית כדי לשלוט באיזון בין הטיה לשונות. הטיה מראה עד כמה המודל התאים יתר על המידה למערך נתוני האימון. הסטייה מראה עד כמה התחזיות היו שונות בין מערכי האימון והמבחן. באופן אידיאלי, גם ההטיה וגם השונות צריכים להיות קטנים. זה המקום שבו ההסדרה באה להציל! ישנן שתי טכניקות עיקריות:
L1 Regularization - לאסו: לאסו מעניש את משקלי המודל כדי לשנות את חשיבותם למודל ואף יכול לבטל אותם (כלומר להסיר את המשתנים הללו מהמודל הסופי). בדרך כלל, נעשה שימוש ב-Lasso כאשר מערך נתונים מכיל מספר רב של משתנים וברצונך לא לכלול חלק מהם כדי להבין טוב יותר כיצד תכונות חשובות משפיעות על המודל (כלומר, תכונות אלו שנבחרו על ידי לאסו ויוחסו להן חשיבות).
L2 Regularization – שיטת רכס: תפקידו של רכס הוא לאחסן את כל המשתנים ובמקביל לייחס להם חשיבות על סמך תרומתם לביצועי המודל. Ridge תהיה בחירה טובה אם מערך הנתונים מכיל מספר קטן של משתנים וכולם נחוצים כדי לפרש את הממצאים והתוצאות שהתקבלו.
מכיוון ש-Ridge שומר על כל המשתנים ולאסו עושה עבודה טובה יותר בביסוס חשיבותם, פותח אלגוריתם המשלב את התכונות הטובות ביותר של שתי ההסדרות, המכונה Elastic-Net.
ישנן דרכים רבות נוספות לבחור תכונות ללמידת מכונה, אך הרעיון המרכזי תמיד זהה: הדגימו את החשיבות של משתנים ולאחר מכן בטל חלק מהם בהתבסס על החשיבות המתקבלת. חשיבות היא מונח סובייקטיבי מאוד, מכיוון שהוא לא רק אחד, אלא סט שלם של מדדים ותרשימים שניתן להשתמש בהם כדי למצוא תכונות מפתח.
תודה שקראת! למידה מהנה!
מקור: www.habr.com
