טכניקות שונות ל-Exploratory Data Analysis (סיכום פוסט)

סיכום זה נכתב על ידי Gal Hever בהתבסס על פוסט זה.
שלב ראשון – חשיבה:
כתבו רשימה עם כל השאלות/השערות המעניינות שעולות לכם/ן על הדאטה.
שלב שני – סטטיסטיקות וויזואליזציות:
- בדיקת מאפיינים בסיסיים כגון: nunique value_counts, nrows, max, min, isna().sum() , dtypes.
- pandas profiling
- אחוזונים
- היסטוגרמות
- סוגי התפלגות של כל feature
- מדדי ספירמן בין משתנים.
- מציאת חריגים
- בדיקת קורלציות
- פרופורציות של קבוצות
- scatter plot matrix
- Feature importance
- בדיקת מקרי קיצון (גבול עליון ותחתון) וגם מקרה רגיל באופן פרטני
- הצגת הדאטה בצורה הטבעית וחקירת המבנה
- חוקי אסוסיאציות
- לכל משתנה לבדוק אם יש לו מדד מרכזי אחד או שהוא mixed
- הצגה של קרוס קורלציות
סוגי ויזואליזציות לפי סוג הדאטה:
גאוגרפי:
אם יש אינפורמציה על מיקוד, אפשר להמיר את זה לקווי גובה וקווי רוחב, ואז להציג על גבי מפה. אם יש אלמנט של זמן בנוסף, אפשר להוסיף וידיאו על גבי המפה.
טבלאי לא הומוגני:
בחינת התפלגות של ערכים בעמודה, ועל גבי scatter plot של זוגות של עמודות.
נתונים על משתמשים:
אם יש משתנים כמו משתמשים, כדאי לעשות חיתוכים לפי המשתמש בצורה טבלאית.
סדרות עתידיות:
קיבוץ לפי זמן והצגת גרפים כפונקציה של הזמן.
טקסט:
קריאת דגימות מכל תווית והצגת שכיחויות של מילים נפוצות.
תמונות:
- הצגת המאפיינים הנוספים על גבי התמונות. לדוגמה, כל התמונות של החתולים, כל התמונות של הנמרים. מפות הסגמנטציה על גבי התמונות. וכד'.
- PCA על תמונות.
במה יכול לתרום?
- אם ספירמן בין 2 משתנים קופץ כמשמעותי, לראות אם יש מודל טבעי שמקשר בינהם (לינארי, אקספוננציאלי, לוגריתמי) – לא מודל מורכב, כלל האצבע הוא שאם זה פתרון למד"ח לינארי מסדר נמוך, אז זה כנראה בסדר. כמובן חשוב להפעיל פה הגיון בריא.
- לכל משתנה לבדוק אם יש לו מדד מרכזי אחד או שהוא mixed – יכול לסייע בשביל למצוא latent variables בשלב מוקדם.
- scatter plot matrix אם אין יותר מדי משתנים, זה נותן תחושה לגבי התפלגויות, קורלציות, אבל גם קשרים מעניינים אחרים בין משתנים שקשה למצוא בצורה אחרת.
שלב שלישי – שימוש במודלים למציאת תובנות נוספות:
- הרצת מודל נאיבי/פשוט (בהתאם לסוג הבעיה) שאינו דורש tuning מיוחד או עיבוד מקדים.
- רשתות קורלציה בין features
- הוצאת מדדי אנטרופיה לכל משתנה.
- יצירת דוגמאות מייצגות על ידי k-means ובחינת המרכזים.
- deep learning מבלי tuning או מחשבה עמוקה.
- בניית עץ החלטה בעומק 1, והסתכלות על החלוקה. חזרה על התהליך כדי להבין איפה נמצאת האינפורמציה בפיצ׳רים.
- קלאסטרים רקורסיבים: ביצוע קלסטור על הדאטה ואז הסתכלות על קלסטרים בתוך הקלסטרים. על מנת להבין מבנים גדולים בדאטא שיכולים לקלקל את ההתפלגות של הפיצ׳רים.
- ברוטפורס של כל העמודות על כל העמודות ומדידת אינפורמציה וקורלציה נאיבים ואז מיון התוצאות מהמובהקת ביותר לפחות. יכול לסייע בשביל להבין קשרים בין פיצ׳רים. אפשר לחזור על התהליך בשילוב עם הקלאסטרים משלב קודם על מנת לבדוק התפלגויות בתוך הקלאסטים ההיררכיים.
במה יכול לתרום?
- רשתות קורלציה בין features יכולות לסייע בהסתכלות על הקשרים בין features ולקבץ אותם לקבוצות מעניינות (להסתכל לפעמים על העמודות ולפעמים על השורות).
- מדדי אנטרופיה לכל משתנה – בשביל הדיבוג מאוחר יותר, להבין כמה מודלים מורכבים למדו.
- ללמוד עם תכנות גנטי (gplearn) מסווג ואז להסתכל מה הקוד שהוא יצר.
מחברות/בלוגים לדוגמה: