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

פורסם ב - 05. דצמ, 2017 ע"י ב - כללי, מודלים וניתוחים סטטיסטיים

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

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

לא, אני לא מתכוון למכונית ספורט או רומן סודי – בוא נצא מתוך הנחה שאתם חנונים.
אני מתכוון לפרויקט שקשור לכדורסל. משהו בסגנון של 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. הציפור הנדירה

    05. דצמ, 2017
    09:59

    האם אתה אוהד סלטיקס?

    Reply to this comment
    • אייל

      05. דצמ, 2017
      15:26

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

      Reply to this comment
  2. ראובן

    05. דצמ, 2017
    10:06

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

    Reply to this comment
    • אייל

      05. דצמ, 2017
      19:37

      אתה כתבת את הכתבה על המאמנים? אחלה כתבה!

      אני אוהב לעבוד עם אנשים אחרים אז בכיף נוכל ללמוד אחד מהשני.

      Reply to this comment
  3. עידו גילרי

    05. דצמ, 2017
    10:27

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

    Reply to this comment
  4. Ish

    05. דצמ, 2017
    11:44

    זיכרוני גורס שמדובר שם בעיקר בmidrange fadeaway jumpers

    Reply to this comment
  5. עגל שסבור שיש לפרק את ג"ס

    05. דצמ, 2017
    11:55

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

    Reply to this comment
    • אייל

      05. דצמ, 2017
      15:32

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

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

      Reply to this comment
      • אוהד הצלחות

        05. דצמ, 2017
        17:09

        שקלת לעבוד עם חבילת shiny ב-R?

        Reply to this comment
        • אייל

          05. דצמ, 2017
          19:15

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

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

          Reply to this comment
  6. מתן גילור

    05. דצמ, 2017
    12:13

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

    Reply to this comment
    • עגל שסבור שיש לפרק את ג"ס

      05. דצמ, 2017
      14:18

      שאלה טובה, מצטרף אליה.

      Reply to this comment
    • אייל

      05. דצמ, 2017
      15:34

      בטח. אני אשמח עם תשתפו.

      Reply to this comment
  7. Berch

    05. דצמ, 2017
    12:51

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

    Reply to this comment
  8. The king russell

    05. דצמ, 2017
    13:58

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

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

    Reply to this comment
  9. The king russell

    05. דצמ, 2017
    13:59

    כל גרף*

    תודה ותכתוב עוד הרבה

    Reply to this comment
    • אייל

      05. דצמ, 2017
      15:38

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

      Reply to this comment
  10. אופיר נ.

    05. דצמ, 2017
    14:05

    ברוך הבא אייל.
    מחכה לטורי המשך.

    Reply to this comment
  11. מנחם לס

    05. דצמ, 2017
    14:12

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

    Reply to this comment
  12. דינגו

    05. דצמ, 2017
    14:22

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

    Reply to this comment
  13. ולדי קוגן

    05. דצמ, 2017
    14:55

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

    Reply to this comment
  14. אפלטון

    05. דצמ, 2017
    15:23

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

    Reply to this comment
  15. אפלטון

    05. דצמ, 2017
    15:36

    יאללה מצאתי אותך בטוויטר תענוג.
    חסרות לי כמה קבוצות בגרף של ההשוואת דירוג הגנתי והתקפי עם זה של שנה שעברה.
    https://mobile.twitter.com/EyalShafran/status/928666052963188736/photo/1

    הנקודות הכחולות זה של שנה שעברה והלוגו של השנה?

    Reply to this comment
    • אייל

      05. דצמ, 2017
      15:46

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

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

      Reply to this comment
      • אפלטון

        05. דצמ, 2017
        15:54

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

        Reply to this comment
  16. Ljos

    05. דצמ, 2017
    15:51

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

    Reply to this comment
    • אייל

      05. דצמ, 2017
      15:57

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

      Reply to this comment
  17. צביקה

    05. דצמ, 2017
    15:58

    וואוו אייל. זה לגמרי מגניב. הגרף הזה שמצאתי אצלך. זה משהו מיוחד:
    http://www.eyalshafran.com/images/Player_unassisted_points_v4.png

    Reply to this comment
    • צביקה

      05. דצמ, 2017
      16:01

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

      Reply to this comment
    • שאלה

      05. דצמ, 2017
      16:35

      הסבר להדיוטות?

      Reply to this comment
      • אפלטון

        05. דצמ, 2017
        16:39

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

        Reply to this comment
        • שאלה

          05. דצמ, 2017
          16:51

          תודה, אז מה זה אומר על הסאנס\ פורטלנד? הפוך?

          Reply to this comment
          • אפלטון

            05. דצמ, 2017
            17:02

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

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

    • צביקה

      05. דצמ, 2017
      17:04

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

      Reply to this comment
    • Ish

      05. דצמ, 2017
      18:35

      האמת שהקבוצות שם ממוקמות בדיוק איפה שהייתי מצפה למצוא אותן

      Reply to this comment
  18. אוהד הצלחות

    05. דצמ, 2017
    17:11

    נראה מעולה.
    תודה על הפוסט!

    Reply to this comment
  19. עמרי

    05. דצמ, 2017
    18:19

    באיזו חבילה אתה משתמש להכין את הגרפים?
    Pandas לבדה מספיקה?

    Reply to this comment
    • עמרי

      05. דצמ, 2017
      18:29

      *כדי להכין את הגרפים

      Reply to this comment
      • אייל

        05. דצמ, 2017
        19:19

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

        Reply to this comment
  20. אשך טמיר המקורי

    05. דצמ, 2017
    18:20

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

    Reply to this comment
    • Ish

      05. דצמ, 2017
      18:32

      אני לא חושב שתאהב את התוצאות, להבנתי מדובר בירידה די קבועה עם בליטה קטנה באמצע

      Reply to this comment
    • אייל

      05. דצמ, 2017
      19:21

      רעיון מצויין. יש לך רעיון מאיפה למצוא נתונים? הייתי מבקש מצ’מברליין את הנתונים אבל הוא איננו.

      Reply to this comment
      • אשך טמיר המקורי

        06. דצמ, 2017
        06:47

        אני די בטוח שהדוק שלנו הוא בר-סמכא בנושא 🙂
        מומי יארגן את התמונות

        Reply to this comment
  21. עומר מזיג

    05. דצמ, 2017
    19:10

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

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

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

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

    Reply to this comment
    • אייל

      05. דצמ, 2017
      19:25

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

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

      Reply to this comment
  22. אחד העם

    05. דצמ, 2017
    19:27

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

    Reply to this comment
  23. פומה

    05. דצמ, 2017
    20:28

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

    Reply to this comment
    • Ish

      05. דצמ, 2017
      23:40

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

      Reply to this comment
  24. מיקי

    05. דצמ, 2017
    22:55

    אחלה פוסט, נשמח לרוא עוד

    Reply to this comment
  25. אוהד בוסטון האחר

    06. דצמ, 2017
    18:18

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

    Reply to this comment
  26. Dani din

    06. דצמ, 2017
    23:27

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

    Reply to this comment
  27. סולי

    08. דצמ, 2017
    23:56

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

    Reply to this comment

הגיבו