{"id":20687241,"url":"https://github.com/jameswmiller/atp_project","last_synced_at":"2025-06-18T21:43:56.104Z","repository":{"id":187000110,"uuid":"674803684","full_name":"jameswmiller/ATP_project","owner":"jameswmiller","description":"Data Science Project analysing Association of Tennis Professional's (ATP) data.","archived":false,"fork":false,"pushed_at":"2024-05-21T10:43:51.000Z","size":68793,"stargazers_count":1,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-18T00:48:40.826Z","etag":null,"topics":["atp","data-science","eda","machine-learning","sports","sports-analytics","sports-stats","tennis","tennis-analytics"],"latest_commit_sha":null,"homepage":"","language":"Jupyter Notebook","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/jameswmiller.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-08-04T20:28:24.000Z","updated_at":"2024-10-02T05:51:45.000Z","dependencies_parsed_at":"2025-01-17T16:46:01.465Z","dependency_job_id":null,"html_url":"https://github.com/jameswmiller/ATP_project","commit_stats":null,"previous_names":["jameswmiller/atp_project"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/jameswmiller/ATP_project","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jameswmiller%2FATP_project","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jameswmiller%2FATP_project/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jameswmiller%2FATP_project/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jameswmiller%2FATP_project/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jameswmiller","download_url":"https://codeload.github.com/jameswmiller/ATP_project/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jameswmiller%2FATP_project/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":260640055,"owners_count":23040463,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["atp","data-science","eda","machine-learning","sports","sports-analytics","sports-stats","tennis","tennis-analytics"],"created_at":"2024-11-16T22:56:31.628Z","updated_at":"2025-06-18T21:43:51.086Z","avatar_url":"https://github.com/jameswmiller.png","language":"Jupyter Notebook","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Data Science Project: Analyse Associaton of Tennis Professional (ATP) Player Data\n\n### PSA for readers in 2024: ATP_models.ipynb is not currently displaying correctly on github.com, please download the raw file to view the full notebook.\n\nThe aim of this project is to analyse ATP match and ranking data found in [Jeff Sackmann's Git Repository](https://github.com/JeffSackmann/tennis_atp).\nThe project is split into 3 parts, each written in Python via a Jupyter Notebook.\n\nThe full dataset used in this project contains match and ranking data from 1st January 1991 (when the ATP Tour began regularly tracking match statistics) through to 7th August 2023,\njust prior to the start of the 2023 Canadian Masters.\n\n## Part 1: ATP_data_conversions.ipynb\nThe goal of ATP_data_conversions is to convert raw ATP match and ranking data found in matches_rankings into aggregated player statistics.\nThe notebook contains numerous functions enabling you to specify a minimum number of matches played or won, as well as letting you apply filters to include or ignore\ndifferent match lengths (Best of 5, Best of 3) or team competitions such as Davis Cup.\n\nThe final output of ATP_data_conversions are two CSVs:\n1) players_by_year.csv - seasonal aggregated player statistics i.e. 1 row per player per year they played on the ATP Tour\n2) players.csv - aggregated player statistics over entire data set range i.e. 1 row per player that has played on the ATP tour\n\nplayers_dictionary.txt, describes the columns found in both players CSVs and can be found along with them in the players_CSVs folder.\n\n## Part 2: ATP_eda.ipynb\nThe goal of ATP_eda is to begin exploratory data analysis on the aggregated statistics produced by ATP_data_conversions. The notebook aims to explore 4 questions regarding the ATP Tour:\n\n1) Are ATP matches getting longer?\n2) Are ATP Players getting taller?\n3) Are left-handed players at an advantage over right-handed players when serving?\n4) Can you predict a players match win percentage using basic serve and return statistics?\n\nTo help answer these questions I use a range of methods including basic EDA, hypothesis testing, and multiple linear regression\n\n## Part 3: ATP_models.ipynb\nThe goal of ATP_models is to expand on the analysis in the previous notebook and create a more powerful supervised machine learning model, namely a Random Forest Classifier and Regressor, \nwhich will use serve and return stats to predict year-end rankings of players in the data set. I then test the model(s) performance on 2022 player data, and compare predicions made \nby the model(s) to real values. I then build a Deep Learning Classification Model using the Keras framework of Tensorflow to see if I can increase performance over the Random Forest Classifier. \n\nThroughout I aim to use my insight as a long term tennis player, coach, and avid fan of the professional game to help explain the results, successes and any shortcomings I encountered\nwhen completing the project.\n\nWhile I hope this project illustrates my ability as a budding data scientist/ analyst to future employers, the main goal of the project was to combine my two biggest passions in life - tennis and science.\nI hope to add to and improve the project as I build upon my skills as I enter the field and gain more experience, and suggestions are most welcome.\n\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjameswmiller%2Fatp_project","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjameswmiller%2Fatp_project","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjameswmiller%2Fatp_project/lists"}