يحتوي هذا المستودع على مجموعة من الأدوات والمشاريع والموارد التي تتيح التحليل الفعال وتصور بيانات كرة القدم.
يحتوي هذا المستودع على مجموعة من الأدوات والمشاريع والموارد التي تهدف إلى دعم توليد رؤية ذات مغزى من بيانات كرة القدم. يتم استخدام Python للاستخراج ومعالجة وتحليل وتصور بيانات الأحداث وبيانات الفريق المجمعة وبيانات القيمة السوقية والمزيد.
يتم تقسيم المستودع إلى مشاريع mutliple والمشروعات الفرعية ، يهدف كل منها إلى إجراء تحليل مفصل أو توليد بعض الرؤية المحددة أو تقديم مستوى من الأتمتة في تحليلات بيانات كرة القدم. باستخدام محتويات هذا المستودع ، تم إنشاء عدد من الصور المرئية الجديدة والمعلوماتية ومشاركتها مع مجتمع تحليلات بيانات كرة القدم عبر Twitter (_JKDS_).
لدعم الآخرين الذين يرغبون في تطوير مهارات تحليل البيانات الخاصة بهم في سياق بيانات كرة القدم ، أنتجت دليل البدء.
تعرض الشجرة أدناه (انقر فوق المنسدلة للتوسع) بنية المجلد لمستودع GIT هذا. لاحظ أنه تم حذف بعض الملفات الفردية من الرسم البياني للبساطة.
football-data-analytics
│
├── analysis_tools
│ ├── __init__.py
│ ├── get_football_data.py [not included in git repo]
│ ├── logos_and_badges.py
│ ├── models.py
│ ├── pitch_zones.py
│ ├── statsbomb_custom_events.py
│ ├── statsbomb_data_engineering.py
│ ├── whoscored_custom_events.py
│ ├── whoscored_data_engineering.py
│ ├── wyscout_data_engineering.py
│
├── data_directory
│ ├── leaguetable_data
│ ├── misc_data
│ │ ├── articles
│ │ ├── images
│ ├── statsbomb_data [contents not included in git repo]
│ ├── transfermarkt_data
│ ├── whoscored_data [contents not included in git repo]
│ ├── wyscout_data
│
├── model_directory
│ ├── pass_cluster_model
│ │ ├── PassClusterModel65.joblib
│ ├── xg_model
│ │ ├── log_regression_xg_model.joblib
│
├── projects
│ ├── 00_data_import_and_misc_work
│ │ ├── download_yt_video.py
│ │ ├── import_data_fbref.py
│ │ ├── import_data_leaguetable.py
│ │ ├── import_data_whoscored.py
│ │ ├── scrape_data_transfermarkt.py
│ │ ├── misc_work
│ ├── 01_wc2018_box2box_mids
│ │ ├── worldcup_b2b_mids.py
│ ├── 02_player_team_valuation
│ │ ├── team_player_value_analysis.py
│ ├── 03_model_development_and_implementation
│ │ ├── pass_cluster_data_collection.py
│ │ ├── shot_xg_plot.py
│ │ ├── xg_log_regression_model.py
│ │ ├── xg_neural_network.py
│ ├── 04_match_reports
│ │ ├── off_def_shape_report_ws.py
│ │ ├── pass_report_ws.py
│ │ ├── shot_report_understat.py
│ ├── 05_competition_reports_top_players
│ │ ├── player_defensive_contribution.py
│ │ ├── player_effective_carriers.py
│ │ ├── player_effective_passers.py
│ │ ├── player_high_defensive_actions.py
│ │ ├── player_impact_on_team.py
│ │ ├── player_penalty_takers.py
│ │ ├── player_threat_creators.py
│ │ ├── player_threat_creators_zonal_comparison.py
│ ├── 06_competition_reports_top_teams
│ │ ├── team_ball_winning.py
│ │ ├── team_common_zonal_actions.py
│ │ ├── team_cross_success.py
│ │ ├── team_delta_threat_creation.py
│ │ ├── team_fullback_combinations.py
│ │ ├── team_setpiece_shot_concession.py
│ │ ├── team_threat_creation.py
│ │ ├── xg_league_table_sb.py
│ ├── 07_player_reports
│ │ ├── advanced_swarm_radar.py
│ │ ├── player_report_fullback.py
│ ├── 08_evolution_of_shooting
│ │ ├── shot_characteristics_trending.py
│ ├── 09_league_position_metric_correlation
│ │ ├── team_metric_pts_correlation.py
│ ├── 10_team_buildup_passes
│ │ ├── team_pass_tendencies.py
│ ├── 11_justice_league
│ │ ├── justice_league.py
│ ├── 99_private_work
│
├── .gitignore
│
├── Getting Started with Football Analytics.md
│
├── LICENSE
│
├── README.md
كما هو موضح في بنية المجلد أعلاه ، يحتوي المستودع على ثلاثة مجلدات مفاتيح:
بشكل عام ، يتبع كل مشروع عددًا من الخطوات المنطقية:
يتم ترقيم المشاريع بناءً على المعرف العددي لمنطقة مجلد المشروع التي تم فيها تنفيذها وتخزينها. يتم استخدام العشرية عندما يتم تنفيذ أكثر من عمل فرعي/قطعة من العمل في نفس منطقة المجلد. على سبيل المثال ، الفرعية الفرعية 2.1 و 2.2 هما عملان منفصلتان موجودتان في المشروع 2 ، والذي يتم تخزينه داخل منطقة المجلد 02_player_team_valuation_transfermarkt. حدد عنوان المشروع لتوسيع المنسدلة ومعرفة المزيد.
مصدر البيانات: تقارير StatsBomb & FIFA
منطقة المشروع: 01_WC2018_BOX2BOX_MIDS
الكود: WorldCup_B2B_MIDS.Py
ملخص وإخراج: تحقيق من أكثر لاعبي خط الوسط في مربع في كأس العالم 2018. يتم استخدام عدد من المقاييس المخصصة لتسجيل لاعبي خط الوسط المركزي في الفوز بالكرة ، والاحتفاظ بالكرة والإبداع ، والتنقل. يتم تعريف مربع جيد لاعب خط الوسط في المربع باعتباره لاعب خط وسط مركزي يتفوق في كل من هذه المجالات.
مصدر البيانات: TransferMarkt
منطقة المشروع: 00_data_import_and_misc_work & 02_player_team_valuation
الرمز: screpe_data_transfermarkt.py & team_player_value_analysis.py
الملخص والإخراج: تطوير أداة لكشط معلومات القيمة السوقية للفريق والاعب من TransferMarkt.co.uk. توليد "الكشافة المرئية" التي تبرز اللاعبين من دوري معين مع مزيج إيجابي من العمر ومساهمة الأهداف لكل قيمة سوقية. يستكشف العمل أيضًا استخدام النماذج الإحصائية للتنبؤ بالقيمة السوقية بناءً على أداء اللاعب.
مصدر البيانات: TransferMarkt
منطقة المشروع: 00_data_import_and_misc_work & 02_player_team_valuation
الرمز: screpe_data_transfermarkt.py & team_player_value_analysis.py
الملخص والإخراج: تطوير أداة لكشط معلومات القيمة السوقية للفريق والاعب من TransferMarkt.co.uk. التحقيق في الفريق تحت/مفرط الأداء بناءً على تصنيف الدوري وتصنيف قيمة الفريق الكلي.
مصدر البيانات: wyscout
منطقة المشروع: model_directory & 03_model_development_and_implementation
الرمز: xg_log_regression_model.py ، xg_neural_network.py & show_xg_plot.py
الملخص والإخراج: تنفيذ واختبار الأهداف الأساسية المتوقعة النماذج الاحتمالية. يتضمن هذا العمل تطوير ومقارنة نموذج الأهداف المتوقعة للانحدار اللوجستي ونموذج الأهداف المتوقعة على الشبكة العصبية ، كل منها تدرب على أكثر من 40000 لقطة تم التقاطها عبر بطولات "الخمس الكبار" في أوروبا خلال موسم 2017/2018. تُستخدم النماذج لحساب الأهداف المتوقعة للاعبين والنوادي والبطولات المحددة خلال فترة زمنية محددة.
مصدر البيانات: OPTA
منطقة المشروع: model_directory ، 03_model_development_and_implementation & repo الخارجية: ml_models_collection
الكود: pass_cluster_data_collection.py ، models.py ، repo الخارجي: ml_model.ipynb
الملخص والإخراج: باستخدام 5،000،000+ تمريرة مع بطولات الدوري "Big 5" في أوروبا (OPTA Data ، 2019/20 - 2022/23) ، قمت ببناء نموذج تجميع قادر على تعيين تمريرات ناجحة إلى واحدة من 65 مجموعة. يتضمن هذا العمل بناء خط أنابيب للتعلم الآلي واختبار مجموعة متنوعة من خوارزميات التصنيف. يستخدم النموذج المختار AK يعني خوارزمية التجميع لتعيين تمريرات ، والتي قمت بتعبئتها بعد ذلك ضمن وظيفة التجميع لدعم العديد من مشاريع تحليلات كرة القدم الخاصة بي.
مصدر البيانات: StatsBomb
منطقة المشروع: analysis_tools
الرمز: Models.py
الملخص والإخراج: تنفيذ طريقة مونت كارلو لنمذجة احتمال نتائج المطابقة الفردية بناءً على أحداث التصوير والأهداف المتوقعة المرتبطة بها (XG). يتم تشغيل عدد كبير (10000+) من عمليات المحاكاة في مباراة معينة إلى احتمال الفوز تقريبي لكل فريق ، والاحتمال. ثم يتم حساب النقاط المتوقعة في مباراة معينة ببساطة على أنها 3 × Win_probability + 1 × Draw_Proable. تعتمد الطريقة المعتمدة على افتراض أن XG يمثل احتمال التسجيل ، وأن أحداث اللقطة الفردية مستقلة.
مصدر البيانات: DSEPTAT
منطقة المشروع: 04_Match_Reports
الكود: show_report_understat.py
الملخص والإخراج: تطوير برنامج نصي لاستخراج بيانات اللقطة من DSEPTAT وإنشاء تقارير اللقطات لأي مباراة محددة.
مصدر البيانات: opta/whoscored
منطقة المشروع: 04_Match_Reports
الرمز: pass_report_ws.py
الملخص والإخراج: تصميم وتطوير خوارزمية تحدد ويحسب تمريرات مماثلة بناءً على مساحة الملعب التي تبدأ فيها وتنتهي. توليد تقارير تدفق تمرير بين المناطق لأي مباراة محددة.
مصدر البيانات: opta/whoscored
منطقة المشروع: 04_Match_Reports
الرمز: pass_report_ws.py
الملخص والإخراج: تصميم وتطوير خوارزمية لحساب أراضي اللاعبين بناءً على مواقع جميع الإجراءات الداخلية طوال المباراة ، بما في ذلك إزالة القيم المتطرفة. توليد تقارير الشكل لأي مباراة محددة ، بما في ذلك حساب منطقة الإقليم كبديل لمنطقة الملعب المغطاة.
مصدر البيانات: opta/whoscored
منطقة المشروع: 05_competition_reports_top_players
الكود: player_defensive_contribution.py
الملخص والإخراج: تقييم المساهمة الدفاعية لجميع اللاعبين على مدار مدة المنافسة ، مع تحديد أفضل اللاعبين من خلال مقاييس مثل الاستردادات والكرة لكل 100 لمسات المعارضة. يتضمن العمل تلاشي مخطط مبعثر الماس يمكن إعادة استخدامه لأي مؤامرة مبعثرة ثنائية الأبعاد.
مصدر البيانات: opta/whoscored
منطقة المشروع: 05_competition_reports_top_players
الكود: player_defensive_contribution.py
الملخص والإخراج: تقييم عدد الإجراءات الدفاعية التي تم الانتهاء منها في المعارضة الثالثة من قبل جميع اللاعبين على مدار مدة المنافسة ، مع إعطاء مؤشر على من لديه ميل للدفاع من الجبهة.
مصدر البيانات: opta/whoscored
منطقة المشروع: 05_competition_reports_top_players
الكود: player_ffective_passers.py
الملخص والإخراج: تحديد المارة الفعالة من خلال تقييم جميع تمريرات اللعب المنجزة على مدار مدة المنافسة. يتم استخدام مقاييس مثل التمريرات التقدمية والتهديد التراكمي المتوقع وينتقل إلى مربع المعارضة لكل 90 لتحديد كبار اللاعبين. يتضمن هذا العمل تنفيذ نموذج التهديد المتوقع الذي طوره كارون سينغ.
مصدر البيانات: opta/whoscored
منطقة المشروع: 05_competition_reports_top_players
الرمز: player_ffective_carriers.py
الملخص والإخراج: تحديد شركات النقل الفعالة من خلال تقييم الحملات المكتملة على مدار مدة المنافسة. يتضمن هذا العمل تطوير وحدة نمطية لاستنتاج أحداث حمل من بيانات حدث OPTA (كما لا يتم تسجيل الحملات).
مصدر البيانات: opta/whoscored
منطقة المشروع: 05_competition_reports_top_players
الرمز: player_ffective_carriers.py
الملخص والإخراج: تحديد أفضل لاعبي التهديدات من خلال تقييم الأحداث/الإجراءات المختلفة التي تم الانتهاء منها على مدار مدة المنافسة داخل مجالات مختلفة من الملعب. يتضمن هذا العمل تنفيذ نموذج التهديد المتوقع الذي طوره كارون سينغ.
مصدر البيانات: opta/whoscored
منطقة المشروع: 05_competition_reports_top_players
الكود: player_threat_creators.py
الملخص والإخراج: تحديد المتقدمين في العقوبة العليا عبر مسابقات متعددة. يتم تقييم جودة العقوبة المسافة الخاصة بي من ركلة جزاء على الهدف من حارس المرمى Midriff ، مع عقوبات خارج الهدف تعيين مسافة صفر. يتضمن هذا العمل تنفيذ "التوقعات ثلاثية الأبعاد" ضمن المخططات الفرعية ثنائية الأبعاد.
مصدر البيانات: opta/whoscored
منطقة المشروع: 05_competition_reports_top_players
رمز: player_impact_on_team.py
الملخص والإخراج: تحديد كيفية قيام المقاييس المتوقعة للفريق (التهديد المتوقع للفريق ، التهديد المتوقع الفريق المتوقع ، اختلاف الفرق المتوقع للفريق ، وما إلى ذلك) عندما يكون لاعب معين على أرض الملعب مقابل عدم لعبهم
مصدر البيانات: opta/whoscored
منطقة المشروع: 06_competition_reports_top_teams
الكود: Team_threat_creation.py
الملخص والإخراج: تصنيف الفرق عن طريق التهديد الكلي الذي تم إنشاؤه من خلال تمريرات اللعب ويحمل لكل 90 ، بما في ذلك تحديد المناطق التي يولد فيها كل فريق التهديد.
مصدر البيانات: opta/whoscored
منطقة المشروع: 06_competition_reports_top_teams
الكود: Team_ball_winning.py
ملخص وإخراج: تصنيف الفرق من خلال ارتفاع متوسط الملعب الذي يفوزون بالكرة ، بما في ذلك تحديد المناطق التي يكتسبون فيها الكرة من المعارضة.
مصدر البيانات: opta/whoscored
منطقة المشروع: 06_competition_reports_top_teams
الكود: Team_cross_success.py
الملخص والإخراج: تصنيف الفرق حسب معدل النجاح عبر اللعب. يتضمن هذا العمل تعريفًا مخصصًا لصليب فعال (أو ناجح) ، حيث يكون الصليب الفعال يتبعه إما لقطة أو تمريرة رئيسية في غضون 5 ثوان من اللعب (بغض النظر عن النتيجة المتقاطعة inital).
مصدر البيانات: opta/whoscored
منطقة المشروع: 06_competition_reports_top_teams
الكود: Team_fullback_combinations.py
الملخص والإخراج: تصنيف الفرق من خلال التردد الذي تجمع فيه ظهورهم الكاملة. يتم التعرف على التمريرات بين الظهير الأيمن لكل فريق وتمييزها بناءً على ما إذا كان التمرير يؤدي إلى تسديدة على الهدف.
مصدر البيانات: opta/whoscored
منطقة المشروع: 06_competition_reports_top_teams
الكود: Team_delta_threat_creation.py
ملخص وإخراج: تصنيف الفرق عن طريق التحسن في التهديد الكلي الذي تم إنشاؤه من خلال تمريرات اللعب ويحمل لكل 90 - الموسم الحالي مقابل الموسم الماضي. يشمل المحاسبة للفرق التي كانت في التقسيم أعلاه أو أقل في العام السابق. يتم تقسيم التغيير في خلق التهديد أيضًا عن طريق منطقة الملعب
مصدر البيانات: opta/whoscored
منطقة المشروع: 06_competition_reports_top_teams
الكود: Team_setpiece_shot_concession.py
الملخص والإخراج: التحقيق في قدرة الفريق على الدفاع عن مجموعات من خلال الفرص التجريبية التي تم التنازل عنها في غضون 5 ثوان من مجموعة "غير مباشرة" معارضة. تشير مجموعات "غير مباشرة" إلى الركن والركلات الحرة حيث تبقى الكرة في اللعب بعد أن يتم أخذ قطعة المجموعة ، وبالتالي يتم استبعاد الركلات الحرة خارج الهدف والأهداف المباشرة من القطع المحددة من التحليل.
مصدر البيانات: StatsBomb
منطقة المشروع: 06_competition_reports_top_teams
الرمز: xg_league_table_sb.py
الملخص والإخراج: توليد تصنيفات طاولة الدوري المختلفة بناءً على XG للفريق ، وأداء XG ، و XG/XT Ration ومقاييس أخرى مختلفة.
مصدر البيانات: opta/whoscored
منطقة المشروع: 07_player_reports
الكود: player_report_fullback.py
الملخص والإخراج: تقرير لاعب خاص بالدخول إلى الظهير ، بما في ذلك تطوير آلية مرنة/قوية لمقارنة التقرير الخاضع للاعبين المماثلين ، ثم ترتيب مجموعة من اللاعبين ضد جميع الظهيرون في الدوري المختار.
مصدر البيانات: opta/whoscored
منطقة المشروع: 07_player_reports
الكود: Advanced_swarm_radar.py
الملخص والإخراج: تطوير وسيلة جديدة ومبتكرة لتصور أداء اللاعب. يمكن لرادار "Swarm" أن يلفت التشكيل ، وتقييم ومقارنة اللاعبين ، ولكنه يعطي أيضًا سياقًا أعمق من خلال Displauomg توزيعات الدرجات المترية بين مجموعة من اللاعبين المقارنة.
مصدر البيانات: opta/whoscored
منطقة المشروع: 08_evolution_of_shooting
الكود: show_characteristics_trending.py
الملخص والإخراج: قطعة من العمل تعاقد معها جمعية تحليل كرة القدم المهنية (APFA) ، واستكشاف كيف يتغير فن إطلاق النار في كرة القدم وتوفير نظرة ثاقبة على تطور إطلاق النار في الدوري الإنجليزي الممتاز.
APFA - تطور إطلاق النار في مقالة الويب الدوري الإنجليزي الممتاز
APFA - تطور إطلاق النار في الدوري الإنجليزي الممتاز.
مصدر البيانات: opta/whoscored
منطقة المشروع: 09_LeAGUE_POSITION_METRIC_CORRELING
الكود: Team_Metrics_PTS_Correlation.py
الملخص والإخراج: العمل الاستكشافي لتحديد خصائص الفرق الناجحة في بطولات الدوري المحددة. يرتبط التحقيق في مدى قوة مجموعة من مقاييس الفريق بالنقاط المتراكمة في موسم واحد ، باستخدام بيانات من 5 مواسم. تم تضمين الإخراج من هذا المشروع في مقطع فيديو TIFO - لماذا يكون إيفرتون أفضل مما تعتقد.
مصدر البيانات: opta/whoscored
منطقة المشروع: 10_team_buildup_passes
الكود: Team_Pass_Tendencies.py
الملخص والإخراج: استغلال العمل السابق على تجميع التمريرات لتحديد ميول تمرير الفرق في التراكم. هذا ينظر إلى مجموعات المرور المشتركة لأول 6 تصاريح يقوم بها الفريق في مناطق مختلفة من الملعب.
مصدر البيانات: StatsBomb
منطقة المشروع: 11_justice_league
الكود: Justice_League.py
الملخص والإخراج: استغلال العمل السابق على نمذجة النقاط لمحاكاة موسم كامل من المباريات وإعادة إنتاج ترتيب طاولات الدوري بناءً على نتائج المباريات المحتملة (أو النقاط المتوقعة).