ניתוח דאטה אקספלורטורי (EDA) – מה זה ואיך זה יעזור לכם בחיים?

תוכן עניינים

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

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

"מכאן זה קלי קלות" אמרתי לעצמי. "תוך שעה אני מחזיר לפרודקט תשובה חותכת אם הפיצ'ר שהוצאנו חיסל לנו את הביצועים או שאין קשר בין הדברים". קפצתי מייד לעבודה. שלפתי את הנתונים וחישבתי ממוצע של KPI מסויים של לקוחות X על תקופה Y לעומת ממוצע של לקוחות Z על תקופה Y. "משהו לא מסתדר" חשבתי. למזלי, הייתי מספיק ותיק בחברה כך שפיתחתי קצת אינטואיציה למתי הנתונים סותרים את המציאות.

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

זה ישב מול העיניים שלי, שחור על גבי ציר הY. נראה שבתקופה בה בחנתי את הנתונים היו 8 ימים בהם לא נאגרו נתונים ב-כ-ל-ל. בירור מול צוות הפיתוח העלה שהייתה בעיה טכנית שהם היו משוכנעים שטופלה. ביזבזתי יותר מחצי יום עבודה כי מיהרתי לרוץ לשורה התחתונה. אם רק הייתי עושה EDA…

תפריט ניווט

  1. מה זה EDA (Exploratory Data Analysis)?
  2. קונטקסט – איפה ממוקם הEDA בתהליך ניתוח הנתונים?
  3. מטרות הEDA
  4. מתי עושים EDA?
  5. צ'ק ליסט – מה כולל תהליך EDA סטנדרטי?
  6. סיכום והמלצות ללמידה נוספת

מה זה EDA (Exploratory Data Analysis)?

מתודולוגיית ה- Exploratory data analysis (ניתוח נתונים אקספלרוטורי) נוצרה כדי לוודא שאנחנו מבינים ומכירים את הנתונים שלנו לפני שאנחנו מתחילים לנתח אותם. מדובר בסדרת בדיקות וחקירות שנבצע לדאטה סט שלנו על מנת למנוע טעויות ולקבל את כל הקונטקסט שאנחנו צריכים בשביל לתת מענה טוב לשאלה העסקית אותה אנחנו רוצים לנתח.

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

קונטקסט – איפה ממוקם הEDA בתהליך ניתוח הנתונים?

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

תהליך ניתוח נתונים
הEDA מהווה חלק משלב הכנת הנתונים

מטרות הEDA

1. פיתוח אינטואיציה ויכולת התמצאות בנתונים

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

2. איתור תקלות, חוסרים ובאגים

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

מתי עושים EDA?

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

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

מה כולל תהליך EDA סטנדרטי?

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

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

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

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

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

1. היכרות בסיסית עם הנתונים וזיהוי חוסרים מרכזיים

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

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

2. בדיקת עמודות תאריכים

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

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

תרשים קו (line chart) המראה איך EDA מונע טעויות התאריכים

2. היכרות עם משתנה קטגוריאלי

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

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

דוגמא נוספת יכולה להיות זיהוי של רישום כפול של קטגוריות בעמודה כמו ערך שנקרא US לצד ערך נוסף שנקרא United states.

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

3. היכרות עם משתנה נומרי (מספרי)

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

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

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

היסטוגרמה משמשת כחלק מEDA להבנת ההתפלגות


או ככה:

היסטוגרמה משמשת כחלק מEDA להבנת ההתפלגות

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

4. קשרים בין משתנים נומריים

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

הדרך הטובה ביותר לזהות אם קיים קשר בין שני משתנים נומריים בצורה ויזואלית הוא בעזרת תרשים פיזור (Scatter Plot).

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

תרשים פיזור כחלק מEDA להבנת קשר בין משתנים

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

5. קשרים בין משתנים קטגוריאליים

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

  • id
  • סכום העסקה
  • כתובת הלקוח
  • רבעון בו התבצעה העסקה

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

תרשים עמודות מחולק לקבוצות כחלק מEDA

סיכום והמלצות להמשך למידה

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

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

שתף

תוכן עניינים

0
Would love your thoughts, please comment.x
()
x