טור בכורה באתר של אייל שפרן, שימשיך לנסות ולתרום לנו פוסטים מעניינים בעתיד.
בוא נדמיין מצב היפותטי שאתם במשבר אמצע החיים.
לא טוב לכם בעבודה, אתם עמוק בשגרה של נישואים וילדים, ובא לכם לנסות משהו קצת שונה.
לא, אני לא מתכוון למכונית ספורט או רומן סודי – בוא נצא מתוך הנחה שאתם חנונים.
אני מתכוון לפרויקט שקשור לכדורסל. משהו בסגנון של fivethirtyeight או Grantland.
אז איך מתחילים?
שלום, קוראים לי אייל שפרן. ביום אני מדען בחברת סטאראפ, בערב אני העבד של הילדים שלי, ובלילה אני מנתח נתוני כדורסל בתור תחביב. הנה המתכון להתחיל פרויקט ניתוח נתונים בנבא:
מצרכים
ידע בתכנות: לא צריך להיות מתכנת מקצועי, אבל צריך לדעת להשתמש בתוכנה כלשהי כדי לנתח נתונים.
לדעת מאיפה להשיג נתונים: בהרבה מקרים זה יכול להיות החלק הכי מאתגר. במקרה של ה-NBA זה פשוט כי הליגה מפרסמת המון נתונים באתר. רק צריך לדעת איך למצוא אותם.
סבלנות: לפעמים תהיו בטוחים שהרעיון שלכם מצוין, ואחרי שעות של התעסקות בנושא תבינו שזה לא מעניין. לחלופין, לפעמים אחרי שתסיימו, תגלו שמישהו עשה בדיוק את אותו הדבר לפניכם.
יכולות להכיל ביקורות סותרות: מהר מאוד תגלו שאתם שולחים גרף לכמה אנשים אתם תקבלו ביקורת שסותרת את עצמה. כל אחד רוצה לראות משהו אחר.
ציפיות ריאליות: כנראה שסטיב קר לא ירים אליכם טלפון לבקש שתעבדו אצלו, והלייק הקבוע היחיד שתקבלו זה מאמא שלכם.
כדוגמא לתוצר סופי, מצורף גרף שהכנתי (בהשראת grantland) והפך לויראלי בפורום של reddit:
כדוגמא נוספת של משהו שהכנתי, מצורף גיף של גרף המציג את השינוי במשקלם וגובהם של שחקני הליגה מתחילתה ועד היום.
כמה עובדות ממש לא חשובות לגבי:
- אני גר בסולט לייק סיטי כבר 10 שנים. ולא, אני לא נשוי לכמה נשים ולא מורמוני.
- פעם במשחק נוער, באחד המשחקים היחידים ששיחקתי, קלעתי 12 נקודות ב 12 דקות. אחרי אחד הסלים שלי שמעתי את מאמן היריבה צועק – "תפסיקו לתת לגמד הזה לקלוע עליכם".
- אני אוהב לחשוב על עצמי בתור לארי בירד רק בלי כשרון כדורסל (כלומר נשאר רק הטראש טאק והבעיות בגב).
קצת יותר פירוט טכני:
אני אישית התחלתי את הפרויקט במטלב ולאחרונה עברתי לפייתון, בה קל יחסית להכין גרפים.
פייתון זאת תוכנה מצוינת כי אנשים עשו כבר הרבה עבודה בתחום ולא צריך לעשות הכל מהתחלה. אני משתדל לשתף את רוב הקוד שאני כותב באתר שלי www.eyalshafran.com.
למעשה, כל טבלה שאתם רואים באתר ניתנת להורדה, ובנוסף יש עוד אינפורמציה שלא רואים באתר אך ניתן להורידה.
לדוגמא, ניתן למצוא את הנתונים מהעמוד הזה בקובץjson פה.
בכל שפת תכנות יש ספריה שיודעת לקרוא קובץ json ולהפוך אותו לפורמט שקל לעבוד איתו. עם זאת, צריך לדעת איך למצוא את הדף שכתוב ב json, אז או שמשתמשים בספריה שקיימת, או שמוצאים לבד (הנה דוגמא).
אם אתם רוצים להוריד נתונים מאתר אחר תצטרכו להתאמץ קצת יותר. אפשר לקרוא את הקוד html של כל אתר, להבין מה התבנית של הקוד ואז לכתוב קוד שקורא את הנתונים. זה נקרא web scraping.
האתר basketball-reference למשל כתוב בצורה די פשוטה, וניתן לכתוב קוד להוריד את הנתונים די מהר.
אם אתם אוהבים גרפים בנושא NBA אתם מוזמנים להצטרף לדף שפתחתי לאחרונה בפייסבוק – Doingthedishes – אני מאוד אשמח לקצת פידבק והתעניינות.
כמו כן, ראיתי כבר כמה פוסטים עם ניתוחים סטטיסטיים מאוד מעניינים פה באתר, ואני מקווה שאוכל לתרום לאתר בעתיד.
הציפור הנדירה
5 דצמ 2017 09:59:26האם אתה אוהד סלטיקס?
אייל
5 דצמ 2017 15:26:11לא. למה?
לא יודע אם ניתן לקרוא לי אוהד של קבוצה ספציפית. גולדן סטייט זאת האהבה הראשונה שלי אבל לצערי לי נשארתי איתם בתקופות הקשות.
ראובן
5 דצמ 2017 10:06:54תודה אייל , מעניין מאוד . אני עובד בעיקר עם ויזואל בייסיק וJMP , מתחיל ללמוד פייתון ומהפרוייקטים שאני עושה כתחביב בנושאי ספורט אני הכי נהנה , הייתי קרוב לעבור לסולט לייק סיטי אבל בסוף בחרתי בפורטלנד.אשמח ללמוד עוד ממך בעתיד.
אייל
5 דצמ 2017 19:37:43אתה כתבת את הכתבה על המאמנים? אחלה כתבה!
אני אוהב לעבוד עם אנשים אחרים אז בכיף נוכל ללמוד אחד מהשני.
עידו גילרי
5 דצמ 2017 10:27:50איל עושה כבר שנים עבודה מדהימה ומרתקת בניתוח נתונים שניתן לקבל ממנה הרבה תובנות. אני מאד שמח שהוא מצטרף אלינו וממליץ לכולם להיכנס לאתר שלו ולנבור אחורה. לא תתאכזבו.
אייל
5 דצמ 2017 19:36:08אני מסמיק.
Ish
5 דצמ 2017 11:44:47זיכרוני גורס שמדובר שם בעיקר בmidrange fadeaway jumpers
עגל שסבור שיש לפרק את ג"ס
5 דצמ 2017 11:55:21איל זה מאוד מעניין. לא הכרתי את הדף שלך (ואין לי פייסבוק).
הגיף עם המשקל והגובה מאוד נחמד. הוא עובר קצת מהר אז מה שבלט לי לעין זה שהיום ישנו הרבה יותר פיזור של גבהים ומשקלית, לעומת פעם, שאז כל השחקנים היו דומים זה לזה.
הגרף של MJ מבדר בהחלט. זה אנטי תיזה למה שמלמדים לשחקן לעשות היום. ביוסטון הוא היה מסופסל מיד.
באתר שלך, בגרף הראשון, של נקודות מאסיסטים, היה נחמד אם אפשר היה להקליק על כל נקודה ולקבל את שמו של השחקן. חיפשתי את קייל לאורי ודמאר דרוזן, אלופי האיזו, ולא מצאתי.
אייל
5 דצמ 2017 15:32:53תודה על ההצעה.
אני מתכוון בעתיד לעבור לגרפים אינטראקטיביים. מה שיש כרגע בפייתון זה או לא מספיק טוב (לדעתי מתוך ניסיון) או שלא עובד ברשת. אני התחלתי לקרוא קצת על d3 בשביל ליצור גרפים כמו שביקשת אבל ההתקדמות איטית כרגע.
אוהד הצלחות
5 דצמ 2017 17:09:08שקלת לעבוד עם חבילת shiny ב-R?
אייל
5 דצמ 2017 19:15:45תודה. אני אבדוק (למרות שאני יודע מעט מאוד R).
ניסיתי Bokeh ו plotly בפייתון ומהראשון התבאסתי והשני מגביל את מספר הצפיות אלא אם משלמים.
אם יש פה מישהו שיודע איך ליצור גרפים אינטראקטיביים ברשת אז אני אשמח לשתף פעולה.
מתן גילור
5 דצמ 2017 12:13:48מעניין מאד.
האם אפשר לשתף גרפים שיצרת ברשתות החברתיות (עם קרדיט כמובן)?
עגל שסבור שיש לפרק את ג"ס
5 דצמ 2017 14:18:03שאלה טובה, מצטרף אליה.
אייל
5 דצמ 2017 15:34:11בטח. אני אשמח עם תשתפו.
אייל
5 דצמ 2017 15:41:24אם.
אני דיסלקט. מתנצל מראש.
Berch
5 דצמ 2017 12:51:20פצצה. מעניין מאד.
אני לא חולה סטטיסטיקה אבל מה שאתה מציג מעניין מאד, חייב לומר
תודה על ההשקעה 🙂
The king russell
5 דצמ 2017 13:58:53ממש מעולה. מקצת נסיון אישי הרבה פעמים אתה מחפש משהו ויוצא לך כלום, ולפעמים גם ההיפך. גםצריך להיות מאד אמיתי עם עצמך.
בתכלס מאחורי כל גר ל קצת מורכב יש איזשהוא סיפור/רקע.
בגלל שבגרף של המשקל והגובה נתקלתי עוד קודם סקרן אותי מאיפה הרעיון לבדוק משהו שהוא מחוץ לקופסא?
The king russell
5 דצמ 2017 13:59:22כל גרף*
תודה ותכתוב עוד הרבה
אייל
5 דצמ 2017 15:38:07הכי קשה זה למצוא דברים מעניינים לעבוד עליהם. אני מקווה שאם אני אמשיך באינטראקציה עם אנשים פה אז יהיו עוד הרבה רעיונות מעניינים לעבוד עליהם.
אופיר נ.
5 דצמ 2017 14:05:05ברוך הבא אייל.
מחכה לטורי המשך.
מנחם לס
5 דצמ 2017 14:12:34ברוך הבא אייל משדה התעופה בבוסטון שהוא הקוטנקשיון שלנו מנבב"ג לגרינוויל. נהניתי ממאמרך ואתה מוזמן להמשיך לתרום. נהוג אצלנו שכותבי המאמרים מגיבים לתגובות הדורשות זאת.
אכנס לקרוא עוד דברים שכתבת.
אייל
5 דצמ 2017 19:38:52תודה.
דינגו
5 דצמ 2017 14:22:54אני לא סטטיסטיקאי ודי גרוע בזה, אבל מה שהוצג כאן מעניין מאוד, אשמח לקרוא פוסטים נוספים.
ולדי קוגן
5 דצמ 2017 14:55:13בתור מי שלומד עכשיו פייטון אני יכול להעיד שזו באמת שפה ידידותית למשתמש.מבטיח לעקוב אחריך.
עומר מזיג
5 דצמ 2017 18:49:56פייתון*. פייטון זה הזה באורלנדו שאוגוסטין מספסל 🙂
אפלטון
5 דצמ 2017 15:23:50יפה מאוד. לא הכרתי ועכשיו נבדוק אותך בטוח. רק אם אפשר לפרסם כאן פעם ב כמה גרפים נבחרים. מעין סיכום חודשי או משהו בסגנון.
אייל
5 דצמ 2017 15:42:48רעיון מצוין.
אפלטון
5 דצמ 2017 15:36:35יאללה מצאתי אותך בטוויטר תענוג.
חסרות לי כמה קבוצות בגרף של ההשוואת דירוג הגנתי והתקפי עם זה של שנה שעברה.
https://mobile.twitter.com/EyalShafran/status/928666052963188736/photo/1
הנקודות הכחולות זה של שנה שעברה והלוגו של השנה?
אייל
5 דצמ 2017 15:46:19כן. הנקודות זה משנה שעברה. מאז יש שינוי גדול בחלק מהקבוצות (אורלנדו, קליבלנד ועוד).
האמת היא שאני לא כל כך אקטיבי בטוויטר. פתחתי קבוצה בפייסבוק בשביל להראות את הגרפים.
אפלטון
5 דצמ 2017 15:54:28טוויטר לעניות דעתי זו פלטפורמה הרבה יותר מוצלחת לדברים מסוג אלו, גם מבחינת שיתופים וחשיפה. אחפש את הדף בפייסבוק.
Ljos
5 דצמ 2017 15:51:47נתחיל מהעיקר – Doing the dishes. אהבתי.
משהו שלא הבנתי – צריך לדעת תכנות כדי להבין את הנתונים או רק להציג אותם?
אייל
5 דצמ 2017 15:57:30צריך לדעת תכנות בשביל לדעת ליצור את הגרפים. אני מאוד מקווה שלא צריך לדעת תכנות בשביל להבין אותם כי אז זה ממש מצמצם את קהל היעד:-)
צביקה
5 דצמ 2017 15:58:55וואוו אייל. זה לגמרי מגניב. הגרף הזה שמצאתי אצלך. זה משהו מיוחד:
http://www.eyalshafran.com/images/Player_unassisted_points_v4.png
צביקה
5 דצמ 2017 16:01:18זה לבד שווה פוסט ודיון. מדובר על קבוצה שמשחקת כדורסל אחר מכל הליגה. לגמרי.
עידו גילרי
5 דצמ 2017 16:14:55זה לא יפה לדבר ככה על הבולס.
Ljos
5 דצמ 2017 16:23:09בדיוק כמו הספרס.
שאלה
5 דצמ 2017 16:35:06הסבר להדיוטות?
אפלטון
5 דצמ 2017 16:39:10גולדן סטייט קולעים את מירב הנקודות שלהם מאסיסטים (הכי הרבה בליגה בהפרש) ועושים זאת באחוזים אפקטיביים הכי גבוהים בהפרש. בגלל זה ממוקמים כל כך גבוה בגרף בצד שמאל.
שאלה
5 דצמ 2017 16:51:03תודה, אז מה זה אומר על הסאנס\ פורטלנד? הפוך?
אפלטון
5 דצמ 2017 17:02:10כן. שהם עושים את רוב הנקודות שלהם בבידודים (מעל 50% מהנק' שלהם שזה די פסיכי) ועושים זאת באחוזים אפקטיביים נמוכים.
* אחוז אפקטיבי זו סטטיסטיקה משוקללת של כל הזריקות מהשדה שנותנת משקל גדול יותר לזריקות משלוש עקב זה שזו זריקה ששווה יותר נקודות.
צביקה
5 דצמ 2017 17:04:59אני ממש מתלהב מזה. זה אולי הגרף שמדגים הכי חזק למה ג"ס הם פשוט ליגה אחרת.
Ish
5 דצמ 2017 18:35:13האמת שהקבוצות שם ממוקמות בדיוק איפה שהייתי מצפה למצוא אותן
אוהד הצלחות
5 דצמ 2017 17:11:18נראה מעולה.
תודה על הפוסט!
עמרי
5 דצמ 2017 18:19:44באיזו חבילה אתה משתמש להכין את הגרפים?
Pandas לבדה מספיקה?
עמרי
5 דצמ 2017 18:29:38*כדי להכין את הגרפים
אייל
5 דצמ 2017 19:19:13Matplotlib
Pandas גם משתמש באותה סיפרייה ואפשר להתחיל את הגרף ככה אבל אני לא עושה את זה. עניין של טעם אישי.
אני משתף את הקוד באתר שלי ככה שאתה יכול לראות בדיוק מה אני עושה עם זה מעניין אותך.
אשך טמיר המקורי
5 דצמ 2017 18:20:11שלום אייל וברוכים הבאים.
אשמח לראות גרף המתאר את שינוי היקף החזה של המעודדות לאורך השנים.
אם אפשר אז גם מגובה בתמונות.
תודה 🙂
Ish
5 דצמ 2017 18:32:17אני לא חושב שתאהב את התוצאות, להבנתי מדובר בירידה די קבועה עם בליטה קטנה באמצע
אייל
5 דצמ 2017 19:21:21רעיון מצויין. יש לך רעיון מאיפה למצוא נתונים? הייתי מבקש מצ’מברליין את הנתונים אבל הוא איננו.
אשך טמיר המקורי
6 דצמ 2017 06:47:37אני די בטוח שהדוק שלנו הוא בר-סמכא בנושא 🙂
מומי יארגן את התמונות
עומר מזיג
5 דצמ 2017 19:10:40נחמד מאוד. נכנסתי לאתר ויש שם כמה ימים פוטנציאליים של נבירה מבחינתי. מסוכן מאוד 🙂
אני מקווה שלא היה מדובר במשבר אמצע החיים כי זה היה בגיל 22, אבל כתבתי קצת על פרוייקט ממש דומה בפייתון שקודדתי לעצמי (ושאני עדיין משפר מידי פעם):
http://www.hoops.co.il/?p=53087
יש לי שם המון נתונים מעניינים שאין אצלך, אבל אני חלש בכל הנושא של ויזואליזציה וכל הדברים שאתה עושה יפה. מוזמן להתרשם.
אייל
5 דצמ 2017 19:25:41אחלה כתבה. קראתי את הכתבה בזמנו ורציתי לפנות אליך לפרויקט משותף. אפשר עכשיו אם אתה מעוניין.
יש עוד הרבה דברים שעשיתי שלא פירסמתי. חלק מזה בגלל שזה יותר טבלאות ואני צריך ללמוד javascript בשביל לפרסם טבלה נורמלית שאפשר לסדר נתונים לפי סדר עולה. אני עוד לא לגמרי סגור על מה אני רוצה לעשות אם כל הדברים שעבדתי עליהם.
אחד העם
5 דצמ 2017 19:27:28מגניב.
עשיתי לייק לדף, נראה כמו פוטנציאל לפינה קבועה בהופס
פומה
5 דצמ 2017 20:28:54אני רק שאלה קצת.לא קשורה:
אני רציתי לכתוב מאמרי שייט אך חששתי מביקורות ששואלות איך אני כותב על שייט בזמן שאיני יודע לשחות .
האם לדעתך בגילי ובמצבי הגופני הרעוע כדאי לי לנסות.ללמוד לשחות כדי לפחות לטובת צעד בכיוון הזה ?
Ish
5 דצמ 2017 23:40:59בניגוד למיתוס הופס.קו.איל הינו למעשה מועדון כתיבה יוצרת במסווה של את שמכסה ספורט. לפיכך כל עניין השחייה מיותר לחלוטין.
פומה
6 דצמ 2017 08:45:18למדתי משהו תודה.
מיקי
5 דצמ 2017 22:55:01אחלה פוסט, נשמח לרוא עוד
אוהד בוסטון האחר
6 דצמ 2017 18:18:01מגניב
אני באופן אישי מעדיף לנתח נתונים ב matlab
אבל כנראה זה בא משנות ניסיון של ניתוח נתונים ב Matlab
Dani din
6 דצמ 2017 23:27:20מעולה. יש תחום שלם של תוכנות שיכולות לעזור לך. חבל לתכנת הכל. תקרא קצת על visual analytics. גם הכלים מגניבים ויש גם מחקר מעולה על איך כדאי להציג נתונים.
סולי
8 דצמ 2017 23:56:38מעניין מאד…חלום שלי שבטלוויזיה בארץ פרשנים ישתמשו במידע כמו שאתה נותן ואשכרה – יפרשנו ויחדשו לנו, במקום להגיד שוב ושוב "עניין של ביטחון" סגירה לריבאונד" וכו'…