Link al repo de GitHub: https://github.com/juanisil/TDVIII-proyecto-final
- Tomás Glauberman - 21F78 | tglauberman@mail.utdt.edu
- Ignacio Pardo - 21R1160 | ipardo@mail.utdt.edu
- Juan Ignacio Silvestri - 21Q111 | jsilvestri@mail.utdt.edu
Código fuente del proyecto final de la Licenciatura en Tecnología Digital de la Universidad Torcuato Di Tella.
El proyecto está dividido las siguientes carpetas principales:
src/: Código “en producción” del proyecto. Incluye un módulo de Python con funciones y clases que se utilizan en el análisis de datos.exploratory/: Notebooks de Jupyter y otros archivos de exploración de datos.tests/: Archivos de tests unitarios y de integración sobre el código en la carpetasrc/.SampleData/: Datos de OPTA de la English Premier League 2012/2013.gui/: Interfaz gráfica para la exploración de la investigación.
-
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: Definición de tipos de datos para el análisis de futbol -
src/match_data_extraction.py: Módulo 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 transición de estados de un equipo en un partido de futbol. -
src/bayesian_PSL.py: Clases para el análisis bayesiano del PSL. -
src/Player2Vec.py: Player2Vec a partir de Node2Vec sobre Grafo Full de Transición de Estados de Jugadores -
src/p2v_dist.py: Modelo Predictivo de Distribuciones de Ratios de Transición
Usage of Player2Vec:
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"exploratory/emb_viz.ipynb: Visualización de embeddings de jugadores con Player2Vec.exploratory/dataset_exp.ipynb: Breve exploración del dataset de OPTA.exploratory/p2v_dist_model_oos.ipynb: Modelo Predictivo de Distribuciones de Ratios de Transición, con Validación Out-of-Sample.src/p2v_dist.py.exploratory/OPTA_XML_Read.ipynb: Lectura de datos de OPTA en formato XML.exploratory/player_exp.ipynb: Exploración de datos de jugadores. Cálculo de Opta Points como ejemplo.exploratory/player_q_dist.ipynb: Análisis de la distribución de los ratios de transición de jugadores.exploratory/psl_grad.ipynb: Test de Sensitividad de la función PSL.exploratory/PSL_StastsBomb.ipynb: Cálculo de PSL con datos de StatsBomb.exploratory/PSL_sample_data.ipynb: Cálculo de PSL con datos de OPTA.exploratory/case_study.ipynb: Caso de estudio de jugadores de la EPL (OPTA).
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
gráfica de exploración de la investigación.
Para instalar las dependencias necesarias, ejecutar el siguiente comando:
make installAlternativamente se puede crear un entorno de Conda con las dependencias necesarias ejecutando el siguiente comando:
make create_conda_envPara correr los tests unitarios y de integración, ejecutar el siguiente comando:
make testPara correr la interfaz gráfica de exploración de la investigación, ejecutar el siguiente comando:
make vizLa documentación se encuentra en la carpeta docs/. Para generar la
documentación, ejecutar el siguiente comando:
make build_docsY para visualizar la documentación, ejecutar el siguiente comando:
make web_docsSe puede hallar la documentación en este link.
Bawa, V. S. (1982). Stochastic dominance: A research bibliography. Management Science, 28, 698–712. 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., Durán, G., Durán, 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, 785–794. 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, 79–86. 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 - evolución 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.