מבוא לניתוח נתוני כדורסל/ אייל שפרן

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

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

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

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

מצרכים

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

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

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

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

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

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

Players height and weight

NBA players height and weight over time

Posted by Doingthedishes on Friday, 1 December 2017

כמה עובדות ממש לא חשובות לגבי:

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

קצת יותר פירוט טכני:

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

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

אם אתם רוצים להוריד נתונים מאתר אחר תצטרכו להתאמץ קצת יותר. אפשר לקרוא את הקוד html של כל אתר, להבין מה התבנית של הקוד ואז לכתוב קוד שקורא את הנתונים. זה נקרא web scraping.
האתר basketball-reference למשל כתוב בצורה די פשוטה, וניתן לכתוב קוד להוריד את הנתונים די מהר.

אם אתם אוהבים גרפים בנושא NBA אתם מוזמנים להצטרף לדף שפתחתי לאחרונה בפייסבוק – Doingthedishes – אני מאוד אשמח לקצת פידבק והתעניינות.

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

לפוסט הזה יש 60 תגובות

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

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

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

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

    1. תודה על ההצעה.

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

        1. תודה. אני אבדוק (למרות שאני יודע מעט מאוד R).
          ניסיתי Bokeh ו plotly בפייתון ומהראשון התבאסתי והשני מגביל את מספר הצפיות אלא אם משלמים.

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

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

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

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

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

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

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

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

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

  7. נתחיל מהעיקר – Doing the dishes. אהבתי.
    משהו שלא הבנתי – צריך לדעת תכנות כדי להבין את הנתונים או רק להציג אותם?

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

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

          1. כן. שהם עושים את רוב הנקודות שלהם בבידודים (מעל 50% מהנק' שלהם שזה די פסיכי) ועושים זאת באחוזים אפקטיביים נמוכים.

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

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

  8. שלום אייל וברוכים הבאים.
    אשמח לראות גרף המתאר את שינוי היקף החזה של המעודדות לאורך השנים.
    אם אפשר אז גם מגובה בתמונות.
    תודה 🙂

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

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

    http://www.hoops.co.il/?p=53087

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

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

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

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

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

  11. מגניב
    אני באופן אישי מעדיף לנתח נתונים ב matlab
    אבל כנראה זה בא משנות ניסיון של ניתוח נתונים ב Matlab

  12. מעולה. יש תחום שלם של תוכנות שיכולות לעזור לך. חבל לתכנת הכל. תקרא קצת על visual analytics. גם הכלים מגניבים ויש גם מחקר מעולה על איך כדאי להציג נתונים.

  13. מעניין מאד…חלום שלי שבטלוויזיה בארץ פרשנים ישתמשו במידע כמו שאתה נותן ואשכרה – יפרשנו ויחדשו לנו, במקום להגיד שוב ושוב "עניין של ביטחון" סגירה לריבאונד" וכו'…

להגיב על Ish לבטל

סגירת תפריט