Science Score: 49.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
    Found 10 DOI reference(s) in README
  • Academic publication links
    Links to: arxiv.org
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (3.4%) to scientific vocabulary
Last synced: 6 months ago · JSON representation

Repository

Basic Info
  • Host: GitHub
  • Owner: juanisil
  • License: mit
  • Language: Jupyter Notebook
  • Default Branch: main
  • Size: 226 MB
Statistics
  • Stars: 1
  • Watchers: 1
  • Forks: 0
  • Open Issues: 0
  • Releases: 0
Created over 1 year ago · Last pushed 12 months ago
Metadata Files
Readme License Citation

README.md

Cmo encontrar el mejor jugador para tu Equipo de Ftbol

Link al repo de GitHub: https://github.com/juanisil/TDVIII-proyecto-final

Integrantes

Descripcin

Cdigo fuente del proyecto final de la Licenciatura en Tecnologa Digital de la Universidad Torcuato Di Tella.

Estructura

El proyecto est dividido las siguientes carpetas principales:

  • src/: Cdigo en produccin del proyecto. Incluye un mdulo de Python con funciones y clases que se utilizan en el anlisis de datos.
  • exploratory/: Notebooks de Jupyter y otros archivos de exploracin de datos.
  • tests/: Archivos de tests unitarios y de integracin sobre el cdigo en la carpeta src/.
  • SampleData/: Datos de OPTA de la English Premier League 2012/2013.
  • gui/: Interfaz grfica para la exploracin de la investigacin.

Source Code

  • src/event_processing.py: Procesamiento de eventos de partidos de futbol del Excel

  • src/excel_xml_util.py: Modulo para trabajar con archivos XML de OPTA en Pandas

  • src/futbol_types.py: Definicin de tipos de datos para el anlisis de futbol

  • src/match_data_extraction.py: Mdulo para extraer eventos y datos de los partidos

  • src/epl_player_data_utils.py: Datos extra de jugadores de la EPL por ID de OPTA.

  • src/utils_CTMC.py: Funciones para calcular el modelo de transicin de estados de un equipo en un partido de futbol.

  • src/bayesian_PSL.py: Clases para el anlisis bayesiano del PSL.

  • src/Player2Vec.py: Player2Vec a partir de Node2Vec sobre Grafo Full de Transicin de Estados de Jugadores

  • src/p2v_dist.py: Modelo Predictivo de Distribuciones de Ratios de Transicin

Usage of Player2Vec:

bash python src/Player2Vec.py --model_path "player2vec.model" --output_path "player2vec.model" --dimensions 3 --walk_length 16 --num_walks 200 --p 1 --q 1 --workers 4 --window 12 --min_count 1 --batch_words 4 --epl_data_path "../SampleData/epl.xlsx" --players_path "../SampleData/players.json" --r_storage_path "R_storage.npy"

Algunos Notebooks

  • exploratory/emb_viz.ipynb: Visualizacin de embeddings de jugadores con Player2Vec.
  • exploratory/dataset_exp.ipynb: Breve exploracin del dataset de OPTA.
  • exploratory/p2v_dist_model_oos.ipynb: Modelo Predictivo de Distribuciones de Ratios de Transicin, con Validacin Out-of-Sample. src/p2v_dist.py.
  • exploratory/OPTA_XML_Read.ipynb: Lectura de datos de OPTA en formato XML.
  • exploratory/player_exp.ipynb: Exploracin de datos de jugadores. Clculo de Opta Points como ejemplo.
  • exploratory/player_q_dist.ipynb: Anlisis de la distribucin de los ratios de transicin de jugadores.
  • exploratory/psl_grad.ipynb: Test de Sensitividad de la funcin PSL.
  • exploratory/PSL_StastsBomb.ipynb: Clculo de PSL con datos de StatsBomb.
  • exploratory/PSL_sample_data.ipynb: Clculo de PSL con datos de OPTA.
  • exploratory/case_study.ipynb: Caso de estudio de jugadores de la EPL (OPTA).

Usage

El proyecto requiere Python 3.10.14 y las dependencias listadas en requirements.txt. En el archivo Makefile se encuentran los comandos para instalar las dependencias, correr los tests y correr la interfaz grfica de exploracin de la investigacin.

Para instalar las dependencias necesarias, ejecutar el siguiente comando:

bash make install

Alternativamente se puede crear un entorno de Conda con las dependencias necesarias ejecutando el siguiente comando:

bash make create_conda_env

Para correr los tests unitarios y de integracin, ejecutar el siguiente comando:

bash make test

Para correr la interfaz grfica de exploracin de la investigacin, ejecutar el siguiente comando:

bash make viz

Docs

La documentacin se encuentra en la carpeta docs/. Para generar la documentacin, ejecutar el siguiente comando:

bash make build_docs

Y para visualizar la documentacin, ejecutar el siguiente comando:

bash make web_docs

Se puede hallar la documentacin en este link.

Referencias

Bawa, V. S. (1982). Stochastic dominance: A research bibliography. Management Science, 28, 698712. https://doi.org/10.1287/mnsc.28.6.698

Bergstra, J., Komer, B., Eliasmith, C., Yamins, D., & Cox, D. D. (2015). Hyperopt: A python library for model selection and hyperparameter optimization. Computational Science & Discovery, 8, 014008. https://doi.org/10.1088/1749-4699/8/1/014008

Brunetti, D., Ceria, S., Durn, G., Durn, M., Farall, A., Marucho, N., & Mislej, P. (2024). Data science models for football scouting: The racing de santander case study. 33rd European Conference on Operational Research. https://ic.fcen.uba.ar/uploads/files/Euro%202024%20-%20Data%20Science%20models%20for%20Football%20Scouting%20The%20Racing%20de%20Santander%20case%20study%20-%20REVISED.pdf

Chen, T., & Guestrin, C. (2016). XGBoost: A scalable tree boosting system. Proceedings of the 22nd ACM SIGKDD International Conference on Knowledge Discovery and Data Mining - KDD 16, 785794. https://doi.org/10.1145/2939672.2939785

Green, S. (2012). Assessing the performance of premier league goalscorers. Stats Perform. https://www.statsperform.com/resource/assessing-the-performance-of-premier-league-goalscorers/

Grover, A., & Leskovec, J. (2016). node2vec: Scalable feature learning for networks. arXiv.org. https://arxiv.org/abs/1607.00653

Huang, E., Segarra, S., Gallino, S., & Ribeiro, A. (n.d.). How to find the right player for your soccer team?

Kullback, S., & Leibler, R. A. (1951). On information and sufficiency. The Annals of Mathematical Statistics, 22, 7986. https://doi.org/10.1214/aoms/1177729694

Mikolov, T., Chen, K., Corrado, G., & Dean, J. (2013). Efficient estimation of word representations in vector space. arXiv.org. https://arxiv.org/abs/1301.3781

Opta data from stats perform. (n.d.). Stats Perform. https://www.statsperform.com/opta/

PyTorch Forums, A. N. K. -. (2022). Jensen shannon divergence. PyTorch Forums. https://discuss.pytorch.org/t/jensen-shannon-divergence/2626/13

Rahimian, P., Van Haaren, J., & Toka, L. (2023). Towards maximizing expected possession outcome in soccer. International Journal of Sports Science & Coaching, 174795412311544. https://doi.org/10.1177/17479541231154494

Tippett, J. (2019). The expected goals philosophy: A game-changing way of analysing football. Independently Published.

Transfermarkt.com.ar. (2024a). Danny welbeck - evolucin del valor de mercado. Transfermarkt.com.ar. https://www.transfermarkt.com.ar/danny-welbeck/marktwertverlauf/spieler/67063

Transfermarkt.com.ar. (2024b). James milner - stats by club. Transfermarkt.com. https://www.transfermarkt.com/james-milner/leistungsdatenverein/spieler/3333

Vulcano, G. (n.d.). Decision under risk - module IV - NYU stern - master of science in business analytics.

Owner

  • Name: Juan Silvestri
  • Login: juanisil
  • Kind: user
  • Location: Ciudad Autónoma de Buenos Aires, Argentina

GitHub Events

Total
  • Watch event: 2
  • Public event: 1
  • Push event: 28
  • Create event: 1
Last Year
  • Watch event: 2
  • Public event: 1
  • Push event: 28
  • Create event: 1

Dependencies

environment.yml conda
  • appnope 0.1.4
  • asttokens 2.4.1
  • attrs 24.2.0
  • bzip2 1.0.8
  • ca-certificates 2024.8.30
  • comm 0.2.2
  • debugpy 1.8.5
  • decorator 5.1.1
  • exceptiongroup 1.2.2
  • executing 2.0.1
  • importlib-metadata 8.2.0
  • importlib_metadata 8.2.0
  • importlib_resources 6.4.5
  • ipykernel 6.29.5
  • ipython 8.26.0
  • jedi 0.19.1
  • jsonschema 4.23.0
  • jsonschema-specifications 2023.12.1
  • jupyter_client 8.6.2
  • jupyter_core 5.7.2
  • krb5 1.21.3
  • libcxx 18.1.8
  • libedit 3.1.20191231
  • libffi 3.4.2
  • libsodium 1.0.18
  • libsqlite 3.46.0
  • libzlib 1.3.1
  • matplotlib-inline 0.1.7
  • nbformat 5.10.4
  • ncurses 6.5
  • nest-asyncio 1.6.0
  • openssl 3.3.2
  • packaging 24.1
  • parso 0.8.4
  • pexpect 4.9.0
  • pickleshare 0.7.5
  • pip 24.2
  • pkgutil-resolve-name 1.3.10
  • platformdirs 4.2.2
  • prompt-toolkit 3.0.47
  • psutil 6.0.0
  • ptyprocess 0.7.0
  • pure_eval 0.2.3
  • pygments 2.18.0
  • python 3.10.14
  • python-dateutil 2.9.0
  • python-fastjsonschema 2.20.0
  • python_abi 3.10
  • pyzmq 26.1.0
  • readline 8.2
  • referencing 0.35.1
  • rpds-py 0.20.0
  • setuptools 72.1.0
  • six 1.16.0
  • stack_data 0.6.2
  • tk 8.6.13
  • tornado 6.4.1
  • traitlets 5.14.3
  • typing_extensions 4.12.2
  • wcwidth 0.2.13
  • wheel 0.44.0
  • xz 5.2.6
  • zeromq 4.3.5
  • zipp 3.19.2
gui/p2v_viz/package-lock.json npm
  • 497 dependencies
gui/p2v_viz/package.json npm
  • @types/eslint ^8.56.10 development
  • @types/node ^20.14.10 development
  • @types/react ^18.3.3 development
  • @types/react-dom ^18.3.0 development
  • @types/three ^0.169.0 development
  • @typescript-eslint/eslint-plugin ^7.1.1 development
  • @typescript-eslint/parser ^7.1.1 development
  • eslint ^8.57.0 development
  • eslint-config-next ^14.2.4 development
  • postcss ^8.4.39 development
  • prettier ^3.3.2 development
  • prettier-plugin-tailwindcss ^0.6.5 development
  • tailwindcss ^3.4.3 development
  • typescript ^5.5.3 development
  • @t3-oss/env-nextjs ^0.10.1
  • class-variance-authority ^0.7.0
  • colorthief ^2.6.0
  • culori ^4.0.1
  • geist ^1.3.0
  • lucide-react ^0.454.0
  • nanoid ^5.0.8
  • next ^14.2.4
  • radix-ui ^1.0.1
  • react ^18.3.1
  • react-dom ^18.3.1
  • tailwind-merge ^2.5.4
  • three ^0.169.0
  • zod ^3.23.3
requirements.txt pypi
  • altair ==5.4.1
  • blinker ==1.8.2
  • cachetools ==5.5.0
  • cattrs ==23.2.3
  • certifi ==2024.7.4
  • chardet ==5.2.0
  • charset-normalizer ==3.3.2
  • click ==8.1.7
  • cloudpickle ==3.1.0
  • contourpy ==1.2.1
  • cramjam ==2.8.3
  • cycler ==0.12.1
  • docker-pycreds ==0.4.0
  • et-xmlfile ==1.1.0
  • fastparquet ==2024.5.0
  • filelock ==3.16.1
  • fonttools ==4.53.1
  • fsspec ==2024.9.0
  • future ==1.0.0
  • gensim ==4.3.3
  • gitdb ==4.0.11
  • gitpython ==3.1.43
  • hyperopt ==0.2.7
  • idna ==3.7
  • imbalanced-learn ==0.12.4
  • inflect ==7.3.1
  • jinja2 ==3.1.4
  • joblib ==1.4.2
  • kiwisolver ==1.4.5
  • lightning-utilities ==0.11.7
  • lml ==0.1.0
  • markdown-it-py ==3.0.0
  • markupsafe ==2.1.5
  • matplotlib *
  • matplotlib ==3.9.1.post1
  • mdurl ==0.1.2
  • more-itertools ==10.4.0
  • mplsoccer ==1.3.0
  • mpmath ==1.3.0
  • narwhals ==1.9.4
  • networkx ==3.3
  • node2vec ==0.5.0
  • numpy *
  • numpy ==1.26.4
  • openpyxl *
  • openpyxl ==3.1.5
  • pandas *
  • pandas ==2.2.2
  • pillow ==10.4.0
  • plotly ==5.24.1
  • protobuf ==5.28.2
  • py4j ==0.10.9.7
  • pyarrow ==17.0.0
  • pydeck ==0.9.1
  • pydub ==0.25.1
  • pyexcel ==0.7.0
  • pyexcel-io ==0.6.6
  • pyparsing ==3.1.2
  • python-graphviz ==0.20.3
  • pytz ==2024.1
  • pyyaml ==6.0.2
  • requests ==2.32.3
  • requests-cache ==1.2.1
  • rich ==13.9.2
  • rvmath ==0.1
  • scikit-learn *
  • scikit-learn ==1.5.1
  • scipy ==1.13.1
  • seaborn *
  • seaborn ==0.13.2
  • sentry-sdk ==2.18.0
  • setproctitle ==1.3.3
  • smart-open ==7.0.5
  • smmap ==5.0.1
  • statsbombpy ==1.13.1
  • streamlit ==1.39.0
  • sympy ==1.13.3
  • tabulate ==0.9.0
  • tenacity ==9.0.0
  • texttable ==1.7.0
  • threadpoolctl ==3.5.0
  • toml ==0.10.2
  • torch ==2.2.2
  • torchaudio ==2.2.2
  • torchmetrics ==1.4.2
  • torchview ==0.2.6
  • torchvision ==0.17.2
  • torchviz ==0.0.2
  • tqdm ==4.66.5
  • typeguard ==4.3.0
  • tzdata ==2024.1
  • url-normalize ==1.4.3
  • urllib3 ==2.2.2
  • wandb ==0.18.6
  • watchdog ==5.0.3
  • wrapt ==1.16.0
  • xgboost ==2.1.1