{"metadata":{"kernelspec":{"language":"python","display_name":"Python 3","name":"python3"},"language_info":{"pygments_lexer":"ipython3","nbconvert_exporter":"python","version":"3.6.4","file_extension":".py","codemirror_mode":{"name":"ipython","version":3},"name":"python","mimetype":"text/x-python"}},"nbformat_minor":4,"nbformat":4,"cells":[{"cell_type":"code","source":"# This Python 3 environment comes with many helpful analytics libraries installed\n# It is defined by the kaggle/python Docker image: https://github.com/kaggle/docker-python\n# For example, here's several helpful packages to load\n\nimport numpy as np # linear algebra\nimport pandas as pd # data processing, CSV file I/O (e.g. pd.read_csv)\nimport matplotlib.pyplot as plt\nimport seaborn as sns\n\n# Input data files are available in the read-only \"../input/\" directory\n# For example, running this (by clicking run or pressing Shift+Enter) will list all files under the input directory\n\nimport os\nfor dirname, _, filenames in os.walk('/kaggle/input'):\n    for filename in filenames:\n        print(os.path.join(dirname, filename))\n\n# You can write up to 20GB to the current directory (/kaggle/working/) that gets preserved as output when you create a version using \"Save & Run All\" \n# You can also write temporary files to /kaggle/temp/, but they won't be saved outside of the current session","metadata":{"_uuid":"8f2839f25d086af736a60e9eeb907d3b93b6e0e5","_cell_guid":"b1076dfc-b9ad-4769-8c92-a6c4dae69d19","_kg_hide-input":true,"_kg_hide-output":true,"execution":{"iopub.status.busy":"2022-11-10T23:08:07.931681Z","iopub.execute_input":"2022-11-10T23:08:07.932517Z","iopub.status.idle":"2022-11-10T23:08:09.123662Z","shell.execute_reply.started":"2022-11-10T23:08:07.932408Z","shell.execute_reply":"2022-11-10T23:08:09.122441Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"## Constants ","metadata":{"_kg_hide-input":true}},{"cell_type":"code","source":"ROOT = \"/kaggle/input/big-data-derby-2022\"\nINPUT_DIR = \"/kaggle/input/big-derby-master\"\n\nRACE_PROGRAM_ID = [\"race_id\", \"program_number\"]\nRACE_TYPES = [\"STK\", \"ALW\", \"AOC\", \"MSW\"]\nRACE_TYPES_FULL = [\"Stakes\", \"Allowance\", \"Allowance Optional Claiming\", \"Maiden Special Weight\"]\nCOURSE_TYPES_FULL = [\"Hurdle\", \"Dirt\", \"Outer turf\", \"Inner turf\", \"Turf\"]\nRACE_TYPE_MAP = {\n    \"STK\": \"Stakes\",\n    \"ALW\": \"Allowance\",\n    \"AOC\": \"Allowance Optional Claiming\",\n    \"MSW\": \"Maiden Special Weight\"\n}\nCOURSE_TYPE_MAP = {\n    \"M\": \"Hurdle\",\n    \"D\": \"Dirt\",\n    \"O\": \"Outer turf\",\n    \"I\": \"Inner turf\",\n    \"T\": \"Turf\"\n}\n\nTRACK_CONDITION_MAP = {\n    \"YL\":\"Yielding\", \n    \"FM\":\"Firm\", \n    \"SY\":\"Sloppy\", \n    \"GD\":\"Good\", \n    \"FT\":\"Fast\", \n    \"MY\":\"Muddy\", \n    \"SF\":\"Soft\"\n}","metadata":{"_kg_hide-input":true,"execution":{"iopub.status.busy":"2022-11-10T23:08:09.125967Z","iopub.execute_input":"2022-11-10T23:08:09.126336Z","iopub.status.idle":"2022-11-10T23:08:09.134500Z","shell.execute_reply.started":"2022-11-10T23:08:09.126303Z","shell.execute_reply":"2022-11-10T23:08:09.133570Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"# Data","metadata":{"_kg_hide-input":true}},{"cell_type":"markdown","source":"## Race Table\n**Contains information regarding the race.**\n\n`track_id` - 3 character id for the track the race took place at. AQU -Aqueduct, BEL - Belmont, SAR - Saratoga.\n\n`race_date` - date the race took place. YYYY-MM-DD.\n\n`race_number` - Number of the race. Passed as 3 characters but can be cast or converted to int for this data set.\n\n`distance_id` - Distance of the race in furlongs passed as an integer. Example - 600 would be 6 furlongs.\n\n`course_type` - The course the race was run over passed as one character. M - Hurdle, D - Dirt, O - Outer turf, I - Inner turf, T - turf.\n\n`track_condition` - The condition of the course the race was run on passed as three characters. YL - Yielding, FM - Firm, SY - Sloppy, GD - Good, FT - Fast, MY - Muddy, SF - Soft.\n\n`run_up_distance` - Distance in feet of the gate to the start of the race passed as an integer.\n\n`race_type` - The classification of the race passed as as five characters. STK - Stakes, WCL - Waiver Claiming, WMC - Waiver Maiden Claiming, SST - Starter Stakes, SHP - Starter Handicap, CLM - Claiming, STR - Starter Allowance, AOC - Allowance Optionl Claimer, SOC - Starter Optional Claimer, MCL - Maiden Claiming, ALW - Allowance, MSW - Maiden Special Weight.\n\n`purse` - Purse in US dollars of the race passed as an money with two decimal places.\n\n`post_time` - Time of day the race began passed as 5 character. Example - 01220 would be 12:20.","metadata":{"_kg_hide-input":true}},{"cell_type":"code","source":"race = pd.read_csv(f\"{INPUT_DIR}/race-updated.csv\", parse_dates=[\"race_date\"])\nrace = race[race.race_type.isin(RACE_TYPES)]\nrace[\"race_type_full\"] = race.race_type.map(RACE_TYPE_MAP)\nrace[\"course_type_full\"] = race.course_type.map(COURSE_TYPE_MAP)\nrace[\"track_condition\"] = race[\"track_condition\"].str.lstrip(\" \").str.rstrip(\" \")\nrace[\"track_condition_full\"] = race.track_condition.map(TRACK_CONDITION_MAP)\nrace.head()","metadata":{"_kg_hide-input":true,"execution":{"iopub.status.busy":"2022-11-10T23:08:09.135906Z","iopub.execute_input":"2022-11-10T23:08:09.136538Z","iopub.status.idle":"2022-11-10T23:08:09.211406Z","shell.execute_reply.started":"2022-11-10T23:08:09.136505Z","shell.execute_reply":"2022-11-10T23:08:09.210543Z"},"_kg_hide-output":true,"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"## Start Table\n\n`track_id` - 3 character id for the track the race took place at. AQU -Aqueduct, BEL - Belmont, SAR - Saratoga.\n\n`race_date` - date the race took place. YYYY-MM-DD.  \n\n`race_number` - Number of the race. Passed as 3 characters but can be cast or converted to int for this data set.  \n\n`program_number` - Program number of the horse in the race passed as 3 characters. Should remain 3 characters as it isn't limited to just numbers. Is essentially the unique identifier of the horse in the race.  \n\n`weight_carried` - An integer of the weight carried by the horse in the race.  \n\n`jockey` - Name of the jockey on the horse in the race. 50 character max.  \n\n`odds` - Odds to win the race passed as an integer. Divide by 100 to derive the odds to 1. Example - 1280 would be 12.8-1.  \n\n`position_at_finish` - An integer of the horse's finishing position. (added to the dataset 9/8/22)  ","metadata":{"_kg_hide-input":true,"_kg_hide-output":true}},{"cell_type":"code","source":"start = pd.read_csv(f\"{INPUT_DIR}/start-updated.csv\", parse_dates=[\"race_date\"])\nstart.head()","metadata":{"execution":{"iopub.status.busy":"2022-11-10T23:08:09.212506Z","iopub.execute_input":"2022-11-10T23:08:09.213272Z","iopub.status.idle":"2022-11-10T23:08:09.290107Z","shell.execute_reply.started":"2022-11-10T23:08:09.213237Z","shell.execute_reply":"2022-11-10T23:08:09.289030Z"},"_kg_hide-input":true,"_kg_hide-output":true,"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"## Tracking table\n\n**Contains information about the position of each horse throughout the race.**\n\n`track_id` - 3 character id for the track the race took place at. AQU -Aqueduct, BEL - Belmont, SAR - Saratoga.\n\n`race_date` - date the race took place. YYYY-MM-DD.\n\n`race_number` - Number of the race. Passed as 3 characters but can be cast or converted to int for this data set.\n\n`program_number` - Program number of the horse in the race passed as 3 characters. Should remain 3 characters as it isn't limited to just numbers. Is essentially the unique identifier of the horse in the race.\n\n`trakus_index` - The common collection of point of the lat / long of the horse in the race passed as an integer. From what we can tell, it's collected every 0.25 seconds.\n\n`latitude` - The latitude of the horse in the race passed as a float.\n\n`longitude` - The longitude of the horse in the race passed as a float.","metadata":{"_kg_hide-input":true}},{"cell_type":"code","source":"tracking = pd.read_csv(f\"{INPUT_DIR}/tracking-updated.csv\")\ntracking = tracking.sort_values(RACE_PROGRAM_ID)","metadata":{"_kg_hide-input":true,"execution":{"iopub.status.busy":"2022-11-10T23:08:09.293798Z","iopub.execute_input":"2022-11-10T23:08:09.294216Z","iopub.status.idle":"2022-11-10T23:08:41.406684Z","shell.execute_reply.started":"2022-11-10T23:08:09.294181Z","shell.execute_reply":"2022-11-10T23:08:41.405567Z"},"_kg_hide-output":true,"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"distance_cols = [*RACE_PROGRAM_ID, \"cumulative_distance\"]\nrace_cols = [\"race_id\", \"track_distance\", \"course_type_full\", \"race_type_full\"]","metadata":{"_kg_hide-input":true,"execution":{"iopub.status.busy":"2022-11-10T23:08:41.408269Z","iopub.execute_input":"2022-11-10T23:08:41.408719Z","iopub.status.idle":"2022-11-10T23:08:41.414398Z","shell.execute_reply.started":"2022-11-10T23:08:41.408687Z","shell.execute_reply":"2022-11-10T23:08:41.413054Z"},"_kg_hide-output":true,"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"tracking = tracking.merge(race[[\"race_id\", \"race_type\", \"race_type_full\", \"course_type_full\", \"track_condition_full\"]], on=[\"race_id\"])","metadata":{"_kg_hide-input":true,"execution":{"iopub.status.busy":"2022-11-10T23:08:41.417043Z","iopub.execute_input":"2022-11-10T23:08:41.417564Z","iopub.status.idle":"2022-11-10T23:08:43.527697Z","shell.execute_reply.started":"2022-11-10T23:08:41.417518Z","shell.execute_reply":"2022-11-10T23:08:43.526607Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"distance = tracking.loc[tracking.trakus_index.eq(tracking.finish_trakus_index), distance_cols]\ndistance = distance.merge(race[race_cols], on=[\"race_id\"])\ndistance = distance.merge(start[[*RACE_PROGRAM_ID, \"normalized_place\"]], on=RACE_PROGRAM_ID)\ndistance[\"distance_vs_track\"] = distance[\"cumulative_distance\"].div(distance[\"track_distance\"])","metadata":{"_kg_hide-input":true,"execution":{"iopub.status.busy":"2022-11-10T23:08:43.528894Z","iopub.execute_input":"2022-11-10T23:08:43.529216Z","iopub.status.idle":"2022-11-10T23:08:44.494695Z","shell.execute_reply.started":"2022-11-10T23:08:43.529188Z","shell.execute_reply":"2022-11-10T23:08:44.493602Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"# Problem Statement\n\nIn this analysis, we try to analyze \"What is the optimal strategy for a horse to run in the race?\" We analyzed the distance and utilized our definition of \"zone\" to further analyze the rankings throughout the race, zones/zone changes throughout the race.","metadata":{}},{"cell_type":"markdown","source":"# Distance Analysis\n\nOne of my first thought when thinking about horse racing is to consider the distance ran. As an ex-cross country runner, I was taught by my coach to always be in the inner circle of the race to minimize the distance ran in the race. I wondered if that plays a role in horse racing as well. Maybe horses that place high in the race run the path that is more efficient than its fellow horses.\n\nIn this analysis, we will observe \n\n- Distribution of distance ran in each `course_type`, `race_type`\n- Correlation between distance and finishing position\n- Distance ran during each segment of the race","metadata":{}},{"cell_type":"markdown","source":"### Calculating the finishing trakus_index\nFirst of all, to calculate the distance travelled in this race, it's important to figure out when each horse finishes in the race. This is because the winning horse usually finishes quite early compared to the last `trakus_index`. Therefore, this might inflate the distance ran by each horse. To do this, I follow this notebook from @shapital's [notebook][1]. I modified his code to use all numpy operations so that the processing can be done quickly.\n\n### Calculating Distance\nTo calculate distance in meters, I had to convert all (latitude, longitude) into (x,y) values. I consider all (latitude, longitude) at `trakus_index` = 1 as the origin and computed all (x,y) using the formula in this [stackoverflow][2]. Because the distance of the race is relatively short, I assume that the Earth is flat and computed the distance using the Euclidean distance \n\n![Euclidean Distance][3]\n\n\n[1]: https://www.kaggle.com/code/shapital/calculating-speed-turning-angle-and-position\n[2]: https://stackoverflow.com/questions/24617013/convert-latitude-and-longitude-to-x-and-y-grid-system-using-python\n[3]: https://www.researchgate.net/profile/Young-Sun-Lee-2/publication/263889770/figure/fig1/AS:890653479284740@1589359745492/An-example-of-Euclidean-distance-between-two-objects-on-variables-X-and-Y.png","metadata":{}},{"cell_type":"markdown","source":"### Distribution of Distance Ran in Each Race\n\nIn this analysis, I want to see the distribution of how far horses run compare to the distance of the race track. I normalize the distance ran by doing a simple division of \n\n$$\\frac{race  distance}{track  distance}$$\n\nUsing race distance vs track distance, I created a boxplot for each course type\n","metadata":{}},{"cell_type":"markdown","source":"### Course Type\n\nAt the course type level we find that\n\n- Outer turf has the lowest spread in terms of distance ran while turf and inner turf has far greater spread.\n- Most course type has roughly the same center","metadata":{}},{"cell_type":"code","source":"grid = sns.FacetGrid(data=distance, col=\"course_type_full\", col_wrap=3, height=6, aspect=1.5)\n\ngrid.map(sns.boxplot, \"distance_vs_track\")\ngrid.set_titles(row_template='{row_name}', col_template=\"Course type: {col_name}\")\nplt.show()","metadata":{"_kg_hide-input":true,"execution":{"iopub.status.busy":"2022-11-10T23:08:44.496093Z","iopub.execute_input":"2022-11-10T23:08:44.496530Z","iopub.status.idle":"2022-11-10T23:08:45.395670Z","shell.execute_reply.started":"2022-11-10T23:08:44.496500Z","shell.execute_reply":"2022-11-10T23:08:45.394816Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"### Race Type\n\nAt the race type level we find that\n\n- These four races have similar distance distribution but Maiden Special Weight has the most spread.","metadata":{}},{"cell_type":"code","source":"grid = sns.FacetGrid(data=distance, col=\"race_type_full\", col_wrap=3, height=6, aspect=1.5)\n\ngrid.map(sns.boxplot, \"distance_vs_track\")\ngrid.set_titles(col_template=\"Race type: {col_name}\")\nplt.show()","metadata":{"execution":{"iopub.status.busy":"2022-11-10T23:08:45.397260Z","iopub.execute_input":"2022-11-10T23:08:45.397899Z","iopub.status.idle":"2022-11-10T23:08:46.139920Z","shell.execute_reply.started":"2022-11-10T23:08:45.397863Z","shell.execute_reply":"2022-11-10T23:08:46.138702Z"},"_kg_hide-input":true,"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"### Correlation\n\nNow, let's see whether there is any correlation between distance ran and the finishing position of the horse. Since different races have different number of horses competing, I normalize the finishing position by dividing `position_at_finish` by the number of horses participated in the race.\n\nWhen analyzing by course type and race type, we found out that there is almost no correlation between distance and placing. Although there is no correlation, it is still too early to assume that distance plays no role in the race. We can find distance ran in each segment of the race to see if there will be a difference","metadata":{}},{"cell_type":"code","source":"distance.groupby(\"course_type_full\")[[\"distance_vs_track\", \"normalized_place\"]].corr()","metadata":{"execution":{"iopub.status.busy":"2022-11-10T23:15:59.581171Z","iopub.execute_input":"2022-11-10T23:15:59.581578Z","iopub.status.idle":"2022-11-10T23:15:59.603777Z","shell.execute_reply.started":"2022-11-10T23:15:59.581546Z","shell.execute_reply":"2022-11-10T23:15:59.602325Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"distance.groupby(\"race_type_full\")[[\"distance_vs_track\", \"normalized_place\"]].corr()","metadata":{"execution":{"iopub.status.busy":"2022-11-10T23:08:46.166600Z","iopub.execute_input":"2022-11-10T23:08:46.167050Z","iopub.status.idle":"2022-11-10T23:08:46.188071Z","shell.execute_reply.started":"2022-11-10T23:08:46.167004Z","shell.execute_reply":"2022-11-10T23:08:46.187196Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"TRAKUS_INTERVAL = 5 # Intervene every x% of the race.","metadata":{"execution":{"iopub.status.busy":"2022-11-10T23:08:46.189017Z","iopub.execute_input":"2022-11-10T23:08:46.189358Z","iopub.status.idle":"2022-11-10T23:08:46.194856Z","shell.execute_reply.started":"2022-11-10T23:08:46.189328Z","shell.execute_reply":"2022-11-10T23:08:46.193602Z"},"_kg_hide-input":true,"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"tracking[\"trakus_prop\"] = tracking[\"trakus_index\"].div(tracking.groupby(\"race_id\")[\"trakus_index\"].transform(\"max\"))\ntracking[\"trakus_segment\"] = tracking[\"trakus_prop\"].floordiv(TRAKUS_INTERVAL / 100).add(1)","metadata":{"execution":{"iopub.status.busy":"2022-11-10T23:08:46.202716Z","iopub.execute_input":"2022-11-10T23:08:46.203068Z","iopub.status.idle":"2022-11-10T23:08:46.560726Z","shell.execute_reply.started":"2022-11-10T23:08:46.203036Z","shell.execute_reply":"2022-11-10T23:08:46.558909Z"},"_kg_hide-input":true,"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"group_cols = [*RACE_PROGRAM_ID, \"race_type_full\", \"course_type_full\", \"trakus_segment\", \"finish_trakus_index\"]\ndistance_by_segment = (\n    tracking\n   .loc[~tracking.dnf & ~tracking.is_finished]\n   .groupby(group_cols)[\"cumulative_distance\"]\n   .agg(np.ptp)\n   .reset_index()\n)","metadata":{"execution":{"iopub.status.busy":"2022-11-10T23:08:46.562674Z","iopub.execute_input":"2022-11-10T23:08:46.563087Z","iopub.status.idle":"2022-11-10T23:09:02.030930Z","shell.execute_reply.started":"2022-11-10T23:08:46.563053Z","shell.execute_reply":"2022-11-10T23:09:02.029642Z"},"_kg_hide-input":true,"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"mean_distance_by_segment = distance_by_segment.groupby([\"race_id\", \"trakus_segment\"])[\"cumulative_distance\"].transform(\"mean\")\ndistance_by_segment[\"relative_distance\"] = distance_by_segment[\"cumulative_distance\"].div(mean_distance_by_segment)\n\ndistance_by_segment = distance_by_segment.merge(start[[*RACE_PROGRAM_ID, \"normalized_place\", \"position_at_finish\"]])","metadata":{"execution":{"iopub.status.busy":"2022-11-10T23:09:02.032295Z","iopub.execute_input":"2022-11-10T23:09:02.032805Z","iopub.status.idle":"2022-11-10T23:09:02.112980Z","shell.execute_reply.started":"2022-11-10T23:09:02.032764Z","shell.execute_reply":"2022-11-10T23:09:02.111961Z"},"_kg_hide-input":true,"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"### Distance by Segment Analysis\n\n#### Definition of a Segment\nTo perform segment analysis, we need to define the definition of segment first. The idea is that we can look at what percent the `trakus_index` is compared to the final `trakus_index`. Then, we can define a granularity level that checks the `trakus_index` every x% of the race. In this analysis, I control this to 5%, meaning that we change segment every 5% of the race. For example, if the final `trakus_index` is 100, we define 1-5 as segment 1, 6-10 as segment 2, etc., resulting in 20 total segments.\n\n### Definition of Relative Distance\nWhen looking at distance, we can analyze how much the horse ran compared to its peers. To do this, I introduce the concept of \"Relative Distance\", where we divide the distance ran by each horse during each segment divided by the average distance ran by all horses during each segment.\n\nAfter defining segment and relative distance, I created a basic lineplot of segment (x) vs relative distance (y) group by course type, race type, and position at finish to see if there are any special patterns during each segment of the race.\n\n### Findings\n- The strategy in all of these races seem to be the same. The distance relative to its peers is roughly the same during the first half of the race while during the second half, the distance increases significantly.\n- We see in this plot that high placers generally start to run more during the second half of the race compared to its peers. First and second place tend to start running more earlier than third and fourth place. \n- In all the race types except Stakes, first place tend to run more than its peers during the early and mid-final segment, resembling kind of a \"U-Shape\" in the plot. In stakes, distance of the first place starts to be different around mid-race forward.\n\n**One hypothesis we have for this finding is that the good horses need to run more during these segment to get into a good position in the track. To quantify whether this is true, we performed zone-based analysis. This will be introduced later in the notebook**","metadata":{}},{"cell_type":"code","source":"POSITIONS_TO_COMPARE = 4\nFACET_ROW = \"course_type_full\"\nFACET_COL = \"position_at_finish\"\nPOSITION_MASK = distance_by_segment.position_at_finish.le(POSITIONS_TO_COMPARE) \nGROUP_COLS = [FACET_ROW, FACET_COL, \"trakus_segment\"]\n\nsubset_data = distance_by_segment.loc[POSITION_MASK].groupby(GROUP_COLS)[\"relative_distance\"].median().reset_index()\n\ngrid = sns.FacetGrid(\n    data=subset_data, \n    row=FACET_ROW,\n    col=FACET_COL, \n    height=2.5, \n    aspect=1.5,\n    margin_titles=True,\n    row_order=COURSE_TYPES_FULL\n)\n\ngrid.map(sns.lineplot, \"trakus_segment\", \"relative_distance\")\ngrid.set_titles(row_template='{row_name}', col_template=\"Position at finish: {col_name}\")\n\nfor ax in grid.axes.ravel():\n    ax.axhline(1, linestyle=\"--\")\n    ax.set_ylim([0.98, 1.05])\n    ax.set_xlabel(\"Segment\")\n    ax.set_ylabel(\"Relative distance\")","metadata":{"execution":{"iopub.status.busy":"2022-11-10T23:09:05.292414Z","iopub.execute_input":"2022-11-10T23:09:05.292802Z","iopub.status.idle":"2022-11-10T23:09:09.068341Z","shell.execute_reply.started":"2022-11-10T23:09:05.292767Z","shell.execute_reply":"2022-11-10T23:09:09.067428Z"},"_kg_hide-input":true,"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"POSITIONS_TO_COMPARE = 4\nFACET_ROW = \"race_type_full\"\nFACET_COL = \"position_at_finish\"\nPOSITION_MASK = distance_by_segment.position_at_finish.le(POSITIONS_TO_COMPARE) \nGROUP_COLS = [FACET_ROW, FACET_COL, \"trakus_segment\"]\n\nsubset_data = distance_by_segment.loc[POSITION_MASK].groupby(GROUP_COLS)[\"relative_distance\"].median().reset_index()\n\ngrid = sns.FacetGrid(\n    data=subset_data, \n    row=FACET_ROW,\n    col=FACET_COL, \n    height=2.5, \n    aspect=1.5,\n    margin_titles=True,\n    row_order=RACE_TYPES_FULL\n)\n\ngrid.map(sns.lineplot, \"trakus_segment\", \"relative_distance\")\ngrid.set_titles(row_template='{row_name}', col_template=\"Position at finish: {col_name}\")\n\nfor ax in grid.axes.ravel():\n    ax.axhline(1, linestyle=\"--\")\n    ax.set_ylim([0.98, 1.045])\n    ax.set_xlabel(\"Segment\")\n    ax.set_ylabel(\"Relative distance\")","metadata":{"execution":{"iopub.status.busy":"2022-11-10T23:09:02.128115Z","iopub.execute_input":"2022-11-10T23:09:02.128654Z","iopub.status.idle":"2022-11-10T23:09:05.245998Z","shell.execute_reply.started":"2022-11-10T23:09:02.128486Z","shell.execute_reply":"2022-11-10T23:09:05.244709Z"},"_kg_hide-input":true,"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"tracking_sec = tracking.loc[tracking.trakus_index.mod(4).eq(0)].copy().reset_index(drop=True)","metadata":{"execution":{"iopub.status.busy":"2022-11-10T23:09:09.069707Z","iopub.execute_input":"2022-11-10T23:09:09.070056Z","iopub.status.idle":"2022-11-10T23:09:09.350304Z","shell.execute_reply.started":"2022-11-10T23:09:09.070024Z","shell.execute_reply":"2022-11-10T23:09:09.349055Z"},"_kg_hide-input":true,"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"# calculate normalized_trakus_index\nmax_trakus_index = (\n    tracking_sec.groupby([\"race_id\"], as_index=False)[\"trakus_index\"]\n    .max().rename(columns={\"trakus_index\": \"max_trakus_index\"}))\ntracking_sec = tracking_sec.merge(max_trakus_index, on=[\"race_id\"])\ntracking_sec[\"normalized_trakus_index\"] = tracking_sec[\"trakus_index\"] / tracking_sec[\"max_trakus_index\"]","metadata":{"execution":{"iopub.status.busy":"2022-11-10T23:09:09.352089Z","iopub.execute_input":"2022-11-10T23:09:09.352769Z","iopub.status.idle":"2022-11-10T23:09:10.098769Z","shell.execute_reply.started":"2022-11-10T23:09:09.352730Z","shell.execute_reply":"2022-11-10T23:09:10.097633Z"},"_kg_hide-input":true,"_kg_hide-output":true,"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"tracking_pos = tracking_sec.merge(start[[\"position_at_finish\", \"race_id\", \"program_number\"]], on=[\"race_id\", \"program_number\"])","metadata":{"execution":{"iopub.status.busy":"2022-11-10T23:09:10.100316Z","iopub.execute_input":"2022-11-10T23:09:10.100711Z","iopub.status.idle":"2022-11-10T23:09:10.301787Z","shell.execute_reply.started":"2022-11-10T23:09:10.100678Z","shell.execute_reply":"2022-11-10T23:09:10.300581Z"},"_kg_hide-output":true,"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"def bin_trakus_index(trakus_index):\n    if 0.0 < trakus_index <= 0.2:\n        return \"0 - 20\"\n    if 0.2 < trakus_index <= 0.4:\n        return \"20 - 40\"\n    if 0.4 < trakus_index <= 0.6:\n        return \"40 - 60\"\n    if 0.6 < trakus_index <= 0.8:\n        return \"60 - 80\"\n    if 0.8 < trakus_index <= 1.0:\n        return \"80 - 100\"\n\ntracking_pos[\"normalized_trakus_index_bin\"] = tracking_pos[\"normalized_trakus_index\"].apply(bin_trakus_index)","metadata":{"_kg_hide-input":true,"execution":{"iopub.status.busy":"2022-11-10T23:09:10.303391Z","iopub.execute_input":"2022-11-10T23:09:10.304254Z","iopub.status.idle":"2022-11-10T23:09:10.491860Z","shell.execute_reply.started":"2022-11-10T23:09:10.304213Z","shell.execute_reply":"2022-11-10T23:09:10.490562Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"course_rank_time_df = (\n    tracking_pos\n    .groupby([\"position_at_finish\", \"course_type_full\", \n              \"race_id\", \"program_number\", \"normalized_trakus_index_bin\"], as_index=False)\n    [\"rank\"].agg(pd.Series.mode)\n)\n\ntry:\n    course_rank_time_df[\"rank\"] = course_rank_time_df[\"rank\"].apply(lambda x: x.min()).astype(int)\nexcept AttributeError:\n    pass\n\ncourse_rank_time_df = (course_rank_time_df\n                .groupby([\"position_at_finish\", \"course_type_full\",\"rank\", \"normalized_trakus_index_bin\"])\n                [[\"race_id\"]].count())\n\ncourse_rank_time_df = course_rank_time_df.reset_index()\ncourse_rank_time_df.rename(columns={\"race_id\":\"Count of horse\"}, inplace=True)\ncourse_rank_time_df","metadata":{"_kg_hide-input":true,"execution":{"iopub.status.busy":"2022-11-10T23:09:10.493819Z","iopub.execute_input":"2022-11-10T23:09:10.494237Z","iopub.status.idle":"2022-11-10T23:09:13.917161Z","shell.execute_reply.started":"2022-11-10T23:09:10.494203Z","shell.execute_reply":"2022-11-10T23:09:13.915950Z"},"_kg_hide-output":true,"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"# Ranking by Segment Analysis\nNot only can we compare the distance at each segment of the race, we can also compare the rank of the horses during each segment of the race.\n\nThis plot shows the pattern of rank along the race of each course type and the position at finish. The darker colour indicates the higher number of horses at that position. The columns of the grid show the course type and the row is the position at the finish. Within a single heatmap, the vertical axis is the rank along the race and the horizontal axis is the percentage of time ratio of races.\n\n## Findings (Course Type)\n- For the Dirt course type, most horses are in the first rank all along the race to be number 1 at the finish. A lot of horses that be in the first rank at the time 60% - 80% of the racing time can't make it to the last 20% the racing time and become the second at the finish. \n\n- For the Hurdle course type, it's hard to tell at the beginning, which one will be the first. Most of the time the 1st place at fish used to be rank 3 in the race. \n\n- For the Inner Turf course type, it's also hard to tell which one will be the winner. For 80% of the racing time, the horse distributes the position around the field and then spins at the last 20% of the racing time. \n\n- For the Outer Turf course type, most of the winner place at rank 1 all along the race. However, there is a strong pattern that the horse that stay the first rank for 80% of the racing time ends up as second place.\n\n- For the Turf course type, the pattern is quite straightforward and the position at the finish can be concluded within 80% of the racing time.","metadata":{}},{"cell_type":"code","source":"g = sns.FacetGrid(\n    course_rank_time_df[course_rank_time_df[\"position_at_finish\"] < 5], \n    col=\"course_type_full\",  \n    row=\"position_at_finish\", \n    height=2.5, \n    aspect=1.5,\n    margin_titles=True\n)\n\ndef draw_heatmap(*args, **kwargs):\n    data = kwargs.pop('data')\n    d = data.pivot(index=args[1], columns=args[0], values=args[2])\n    sns.heatmap(d, **kwargs)\n\ng.map_dataframe(draw_heatmap, \"normalized_trakus_index_bin\", \"rank\", \"Count of horse\", cmap=\"YlGnBu\", cbar=False)\ng.set_axis_labels(\"Segment\", \"Rank\")\nplt.show()","metadata":{"_kg_hide-input":true,"execution":{"iopub.status.busy":"2022-11-10T23:41:40.342594Z","iopub.execute_input":"2022-11-10T23:41:40.343014Z","iopub.status.idle":"2022-11-10T23:41:46.750457Z","shell.execute_reply.started":"2022-11-10T23:41:40.342979Z","shell.execute_reply":"2022-11-10T23:41:46.749043Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"condition_rank_time_df = (\n    tracking_pos\n    .groupby([\"position_at_finish\", \"track_condition_full\", \n              \"race_id\", \"program_number\", \"normalized_trakus_index_bin\"], as_index=False)\n    [\"rank\"].agg(pd.Series.mode)\n)\n\ntry:\n    condition_rank_time_df[\"rank\"] = condition_rank_time_df[\"rank\"].apply(lambda x: x.min()).astype(int)\nexcept AttributeError:\n    pass\n\ncondition_rank_time_df = (condition_rank_time_df\n                .groupby([\"position_at_finish\", \"track_condition_full\",\"rank\", \"normalized_trakus_index_bin\"])\n                .count().max(axis=1))\ncondition_rank_time_df = condition_rank_time_df.reset_index()\ncondition_rank_time_df.rename(columns={0:\"Count of horse\"}, inplace=True)\ncondition_rank_time_df","metadata":{"_kg_hide-input":true,"execution":{"iopub.status.busy":"2022-11-10T23:09:20.380242Z","iopub.execute_input":"2022-11-10T23:09:20.380727Z","iopub.status.idle":"2022-11-10T23:09:23.763189Z","shell.execute_reply.started":"2022-11-10T23:09:20.380681Z","shell.execute_reply":"2022-11-10T23:09:23.761925Z"},"_kg_hide-output":true,"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"## Findings (Track Condition)\n- According to the plot, for all track types, we can guarantee the position at the finish by 80% of racing time, except Yielding. ","metadata":{}},{"cell_type":"code","source":"g = sns.FacetGrid(\n    condition_rank_time_df[condition_rank_time_df[\"position_at_finish\"] < 5], \n    col=\"track_condition_full\",  \n    row=\"position_at_finish\", \n    height=2.5, \n    aspect=1.5,\n    margin_titles=True)\n\ndef draw_heatmap(*args, **kwargs):\n    data = kwargs.pop('data')\n    d = data.pivot(index=args[1], columns=args[0], values=args[2])\n    sns.heatmap(d, **kwargs)\n\ng.map_dataframe(draw_heatmap, \"normalized_trakus_index_bin\", \"rank\", \"Count of horse\", cmap=\"YlGnBu\", cbar=False)\ng.set_axis_labels(\"Segment\", \"Rank\")\nplt.show()","metadata":{"_kg_hide-input":true,"execution":{"iopub.status.busy":"2022-11-10T23:09:23.764573Z","iopub.execute_input":"2022-11-10T23:09:23.764973Z","iopub.status.idle":"2022-11-10T23:09:34.582768Z","shell.execute_reply.started":"2022-11-10T23:09:23.764942Z","shell.execute_reply":"2022-11-10T23:09:34.581428Z"},"_kg_hide-output":false,"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"type_rank_time_df = (\n    tracking_pos\n    .groupby([\"position_at_finish\", \"race_type_full\", \n              \"race_id\", \"program_number\", \"normalized_trakus_index_bin\"], as_index=False)\n    [\"rank\"].agg(pd.Series.mode)\n)\n\ntry:\n    type_rank_time_df[\"rank\"] = type_rank_time_df[\"rank\"].apply(lambda x: x.min()).astype(int)\nexcept AttributeError:\n    pass\n\ntype_rank_time_df = (type_rank_time_df\n                .groupby([\"position_at_finish\", \"race_type_full\",\"rank\", \"normalized_trakus_index_bin\"])\n                .count().max(axis=1))\ntype_rank_time_df = type_rank_time_df.reset_index()\ntype_rank_time_df.rename(columns={0:\"Count of horse\"}, inplace=True)\ntype_rank_time_df","metadata":{"_kg_hide-input":true,"execution":{"iopub.status.busy":"2022-11-10T23:09:34.584258Z","iopub.execute_input":"2022-11-10T23:09:34.584639Z","iopub.status.idle":"2022-11-10T23:09:38.050474Z","shell.execute_reply.started":"2022-11-10T23:09:34.584603Z","shell.execute_reply":"2022-11-10T23:09:38.049300Z"},"_kg_hide-output":true,"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"## Findings (Race Type)\n\n- Stakes is the only race where it is more clear who will win towards the finish of the race.","metadata":{}},{"cell_type":"code","source":"g = sns.FacetGrid(type_rank_time_df[(type_rank_time_df[\"position_at_finish\"] < 5) & (type_rank_time_df[\"race_type_full\"].isin(RACE_TYPES_FULL))], \n                  col=\"race_type_full\",  \n                  row=\"position_at_finish\", \n                  height=2.5, \n                  aspect=1.5,\n                  margin_titles=True)\n\ndef draw_heatmap(*args, **kwargs):\n    data = kwargs.pop('data')\n    d = data.pivot(index=args[1], columns=args[0], values=args[2])\n    sns.heatmap(d, **kwargs)\n\ng.map_dataframe(draw_heatmap, \"normalized_trakus_index_bin\", \"rank\", \"Count of horse\", cmap=\"YlGnBu\", cbar=False)\ng.set_axis_labels(\"Segment\", \"Rank\")\nplt.show()","metadata":{"_kg_hide-input":true,"execution":{"iopub.status.busy":"2022-11-10T23:50:15.537289Z","iopub.execute_input":"2022-11-10T23:50:15.537719Z","iopub.status.idle":"2022-11-10T23:50:20.196363Z","shell.execute_reply.started":"2022-11-10T23:50:15.537683Z","shell.execute_reply":"2022-11-10T23:50:20.195042Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"# Zone Analysis\n\nNow, we introduce zone-analysis to analyze the position of each horse throughout the race. So how do we do this? \n\n## Step 1: Compute the Velocity Vector\nFirst we need to know the direction where the horses are moving. This is because the track is a circle and we have to know the velocity vector in order to determine which horse is leading in the race in each segment.\n\nAt every second, we compute average position of the horse by averaging all the (latitude, longitude) values. Using this average position, we can then compute the velocity using the standard velocity formula\n$$velocity = \\frac{\\Delta distance}{\\Delta time}$$\n\nSince we compute the velocity every second, $\\Delta time$ is 1. \n\n## Step 2: Compute the Angle Between Horse's Position and Vector\nAfter we have the velocity vector for all segments of the race, we compute the angle between the horse's position and the velocity vector.\n\nThis angle will tell us the \"zone\" of the horse in each segment. \n\n## Step 3: Defining Zone\nWe define six zones: front-right, front-left, right, left, back-right, and back-left as shown in the picture below:\n\n\n![Screen Shot 2565-11-11 at 07.09.59.png](attachment:c6da8ec7-e709-4aa3-abf0-cb6081b48536.png)","metadata":{},"attachments":{"c6da8ec7-e709-4aa3-abf0-cb6081b48536.png":{"image/png":"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"}}},{"cell_type":"code","source":"tracking_sec[\"is_change_zone\"] = tracking_sec[\"zone\"].ne(tracking_sec.groupby(RACE_PROGRAM_ID)[\"zone\"].shift(1))\n\nfinish_mask = tracking_sec.trakus_index.le(tracking_sec.finish_trakus_index) & ~tracking_sec.dnf\nzone_change = tracking_sec.loc[finish_mask].groupby([*RACE_PROGRAM_ID, \"race_type_full\", \"trakus_segment\"])[\"is_change_zone\"].sum().reset_index()\n\nzone_change = zone_change.merge(start[[*RACE_PROGRAM_ID, \"position_at_finish\"]], on=RACE_PROGRAM_ID)","metadata":{"execution":{"iopub.status.busy":"2022-11-10T23:09:42.375997Z","iopub.execute_input":"2022-11-10T23:09:42.377668Z","iopub.status.idle":"2022-11-10T23:09:42.416677Z","shell.execute_reply.started":"2022-11-10T23:09:42.377620Z","shell.execute_reply":"2022-11-10T23:09:42.415476Z"},"_kg_hide-input":true,"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"zone_changes = [\n    f\"{zone1}_{zone2}\"\n    for zone1 in tracking_sec.zone.unique()\n    for zone2 in tracking_sec.zone.unique()\n    if zone1 != zone2\n]","metadata":{"_kg_hide-input":true,"execution":{"iopub.status.busy":"2022-11-10T23:09:45.401728Z","iopub.execute_input":"2022-11-10T23:09:45.402599Z","iopub.status.idle":"2022-11-10T23:09:45.758801Z","shell.execute_reply.started":"2022-11-10T23:09:45.402566Z","shell.execute_reply":"2022-11-10T23:09:45.757413Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"tracking_sec[zone_changes] = pd.DataFrame(\n    [\n        np.where(\n            tracking_sec.zone.eq(change.split(\"_\")[0]) & \n            tracking_sec.groupby(RACE_PROGRAM_ID).zone.shift(1).eq(change.split(\"_\")[1]),\n            True,\n            False\n        )\n        for change in zone_changes \n    ]\n).transpose().reset_index(drop=True)","metadata":{"_kg_hide-input":true,"execution":{"iopub.status.busy":"2022-11-10T23:09:45.760636Z","iopub.execute_input":"2022-11-10T23:09:45.761008Z","iopub.status.idle":"2022-11-10T23:10:19.632003Z","shell.execute_reply.started":"2022-11-10T23:09:45.760975Z","shell.execute_reply":"2022-11-10T23:10:19.630582Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"tracking_sec_long = pd.melt(\n    tracking_sec, \n    id_vars=[*RACE_PROGRAM_ID, \"trakus_sec\", \"trakus_index\", \"trakus_segment\", \"finish_trakus_index\", \"race_type_full\", \"dnf\"], \n    value_vars=zone_changes, \n    var_name=\"zone_change\",\n    value_name=\"count\")","metadata":{"_kg_hide-input":true,"execution":{"iopub.status.busy":"2022-11-10T23:10:19.640812Z","iopub.execute_input":"2022-11-10T23:10:19.641221Z","iopub.status.idle":"2022-11-10T23:10:23.248236Z","shell.execute_reply.started":"2022-11-10T23:10:19.641185Z","shell.execute_reply":"2022-11-10T23:10:23.246953Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"finish_mask = tracking_sec_long.trakus_index.le(tracking_sec_long.finish_trakus_index) & ~tracking_sec.dnf\nzone_change_detailed = tracking_sec_long.groupby([*RACE_PROGRAM_ID,\"trakus_segment\", \"race_type_full\", \"zone_change\"])[\"count\"].sum().reset_index()\nzone_change_detailed = zone_change_detailed.merge(start[[*RACE_PROGRAM_ID, \"position_at_finish\"]], on=RACE_PROGRAM_ID)","metadata":{"_kg_hide-input":true,"execution":{"iopub.status.busy":"2022-11-10T23:10:23.249905Z","iopub.execute_input":"2022-11-10T23:10:23.250391Z","iopub.status.idle":"2022-11-10T23:10:40.912112Z","shell.execute_reply.started":"2022-11-10T23:10:23.250346Z","shell.execute_reply":"2022-11-10T23:10:40.910742Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"## Zone changes\n\nNow, let's get back to the zone changes hypothesis that was introduced when analyzing distance at each segment.\n\nTo do this, we find during each segment of the race, what is the average number of times that there was a zone change. Since we thought it's important to know also what zone changes to what zone, we decided to create a plot that displays the detailed zone-change throughout the race as shown below. We also decided to analyze only the winning horse due to the high dimensionality of the data.\n\n### Findings\n- For all races, zone change occurs a lot during the start of the race. It seems that horses either want to be on the left or right zone. \n- Another segment where there is a significant zone change is towards the end of the race where horses either change from front-left to front-right or front-right to front-left. It seems that there is more change from front-left to front-right, suggesting that it might be strategic to be on the right side of the group during the last segment of th erace.","metadata":{}},{"cell_type":"code","source":"POSITIONS_TO_COMPARE = 1\nFACET_COL = \"zone_change\"\nRACE_TYPES = zone_change_detailed.race_type_full.unique()\nGROUP_COLS = [FACET_COL, \"trakus_segment\"]\n\nfor race_type in RACE_TYPES:\n    print(race_type)\n    POSITION_MASK = zone_change_detailed.position_at_finish.le(POSITIONS_TO_COMPARE) & zone_change_detailed.race_type_full.eq(race_type)\n\n    subset_data = zone_change_detailed.loc[POSITION_MASK].groupby(GROUP_COLS)[\"count\"].mean().reset_index()\n\n    subset_data = subset_data[subset_data.groupby(\"zone_change\")[\"count\"].transform(\"sum\").gt(0.05)]\n\n    grid = sns.FacetGrid(\n        data=subset_data, \n        col=FACET_COL, \n        col_wrap=5, \n        height=2.5, \n        aspect=1.5,\n        margin_titles=True,\n    #     row_order=RACE_TYPES_FULL\n    )\n\n    grid.map(sns.lineplot, \"trakus_segment\", \"count\")\n    grid.set_titles(col_template=\"Zone change: {col_name}\")\n    plt.show()","metadata":{"_kg_hide-input":true,"execution":{"iopub.status.busy":"2022-11-10T23:10:40.913694Z","iopub.execute_input":"2022-11-10T23:10:40.914031Z","iopub.status.idle":"2022-11-10T23:10:50.498496Z","shell.execute_reply.started":"2022-11-10T23:10:40.914001Z","shell.execute_reply":"2022-11-10T23:10:50.497217Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"# Zone Overview Analysis\n\nIn this analysis, we try to see the distribution of the zones throughout the race and also the rank corresponding with the zone","metadata":{}},{"cell_type":"code","source":"stakes_df = tracking_pos[tracking_pos[\"race_type_full\"] == \"Stakes\"]\nzone_rank_time_df = (\n    stakes_df\n    .groupby([\"position_at_finish\", \"zone\", \n              \"race_id\", \"program_number\", \"normalized_trakus_index_bin\"], as_index=False)\n    [\"rank\"].agg(pd.Series.mode)\n)\n\ntry:\n    zone_rank_time_df[\"rank\"] = zone_rank_time_df[\"rank\"].apply(lambda x: x.min()).astype(int)\nexcept AttributeError:\n    pass\n\nzone_rank_time_df = (zone_rank_time_df\n                .groupby([\"position_at_finish\", \"zone\", \"rank\", \"normalized_trakus_index_bin\"])\n                .count().max(axis=1))\n\nzone_rank_time_df = zone_rank_time_df.reset_index()\nzone_rank_time_df.rename(columns={0:\"Count of horse\"}, inplace=True)","metadata":{"execution":{"iopub.status.busy":"2022-11-10T23:10:50.500053Z","iopub.execute_input":"2022-11-10T23:10:50.500697Z","iopub.status.idle":"2022-11-10T23:10:51.825425Z","shell.execute_reply.started":"2022-11-10T23:10:50.500651Z","shell.execute_reply":"2022-11-10T23:10:51.824157Z"},"_kg_hide-input":true,"_kg_hide-output":true,"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"## Stakes","metadata":{}},{"cell_type":"code","source":"zone_rank_time_df = zone_rank_time_df.sort_values(by=\"normalized_trakus_index_bin\")\ng = sns.FacetGrid(zone_rank_time_df[zone_rank_time_df[\"position_at_finish\"] < 5], \n                  row=\"position_at_finish\",  \n                  col=\"normalized_trakus_index_bin\", \n                  height=2.5, \n                  aspect=1.5,\n                  margin_titles=True)\n\ndef draw_heatmap(*args, **kwargs):\n    data = kwargs.pop('data')\n    d = data.pivot(index=args[1], columns=args[0], values=args[2])\n    sns.heatmap(d, **kwargs)\n\ng.map_dataframe(draw_heatmap, \"zone\", \"rank\", \"Count of horse\", cmap=\"flare\", cbar=False)\ng.set_axis_labels(\"Segment\", \"Rank\")\ng.set_titles(row_template='Position at finish: {row_name}', col_template=\"Segment: {col_name}\")\nplt.show()","metadata":{"execution":{"iopub.status.busy":"2022-11-11T00:21:05.257446Z","iopub.execute_input":"2022-11-11T00:21:05.257839Z","iopub.status.idle":"2022-11-11T00:21:12.210225Z","shell.execute_reply.started":"2022-11-11T00:21:05.257796Z","shell.execute_reply":"2022-11-11T00:21:12.208987Z"},"_kg_hide-input":true,"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"## Allowance","metadata":{}},{"cell_type":"code","source":"allowance_df = tracking_pos[tracking_pos[\"race_type_full\"] == \"Allowance\"]\nzone_rank_time_df = (\n    allowance_df\n    .groupby([\"position_at_finish\", \"zone\", \n              \"race_id\", \"program_number\", \"normalized_trakus_index_bin\"], as_index=False)\n    [\"rank\"].agg(pd.Series.mode)\n)\n\ntry:\n    zone_rank_time_df[\"rank\"] = zone_rank_time_df[\"rank\"].apply(lambda x: x.min()).astype(int)\nexcept AttributeError:\n    pass\n\nzone_rank_time_df = (zone_rank_time_df\n                .groupby([\"position_at_finish\", \"zone\", \"rank\", \"normalized_trakus_index_bin\"])\n                .count().max(axis=1))\n\nzone_rank_time_df = zone_rank_time_df.reset_index()\nzone_rank_time_df.rename(columns={0:\"Count of horse\"}, inplace=True)","metadata":{"execution":{"iopub.status.busy":"2022-11-10T23:10:58.447976Z","iopub.execute_input":"2022-11-10T23:10:58.448517Z","iopub.status.idle":"2022-11-10T23:10:59.643855Z","shell.execute_reply.started":"2022-11-10T23:10:58.448480Z","shell.execute_reply":"2022-11-10T23:10:59.642510Z"},"_kg_hide-input":true,"_kg_hide-output":true,"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"zone_rank_time_df = zone_rank_time_df.sort_values(by=\"normalized_trakus_index_bin\")\ng = sns.FacetGrid(zone_rank_time_df[zone_rank_time_df[\"position_at_finish\"] < 5], \n                  row=\"position_at_finish\",  \n                  col=\"normalized_trakus_index_bin\", \n                  height=2.5, \n                  aspect=1.5,\n                  margin_titles=True)\n\ndef draw_heatmap(*args, **kwargs):\n    data = kwargs.pop('data')\n    d = data.pivot(index=args[1], columns=args[0], values=args[2])\n    sns.heatmap(d, **kwargs)\n\ng.map_dataframe(draw_heatmap,  \"zone\", \"rank\", \"Count of horse\", cmap=\"flare\", cbar=False)\ng.set_axis_labels(\"Segment\", \"Rank\")\ng.set_titles(row_template='Position at finish: {row_name}', col_template=\"Segment: {col_name}\")\nplt.show()","metadata":{"execution":{"iopub.status.busy":"2022-11-11T00:19:27.885847Z","iopub.execute_input":"2022-11-11T00:19:27.886734Z","iopub.status.idle":"2022-11-11T00:19:34.518611Z","shell.execute_reply.started":"2022-11-11T00:19:27.886699Z","shell.execute_reply":"2022-11-11T00:19:34.517003Z"},"_kg_hide-input":true,"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"## Allowance Optional Claiming","metadata":{}},{"cell_type":"code","source":"allowanceOP_df = tracking_pos[tracking_pos[\"race_type_full\"] == \"Allowance Optional Claiming\"]\nzone_rank_time_df = (\n    allowanceOP_df\n    .groupby([\"position_at_finish\", \"zone\", \n              \"race_id\", \"program_number\", \"normalized_trakus_index_bin\"], as_index=False)\n    [\"rank\"].agg(pd.Series.mode)\n)\n\ntry:\n    zone_rank_time_df[\"rank\"] = zone_rank_time_df[\"rank\"].apply(lambda x: x.min()).astype(int)\nexcept AttributeError:\n    pass\n\nzone_rank_time_df = (zone_rank_time_df\n                .groupby([\"position_at_finish\", \"zone\", \"rank\", \"normalized_trakus_index_bin\"])\n                .count().max(axis=1))\n\nzone_rank_time_df = zone_rank_time_df.reset_index()\nzone_rank_time_df.rename(columns={0:\"Count of horse\"}, inplace=True)","metadata":{"execution":{"iopub.status.busy":"2022-11-10T23:11:06.770647Z","iopub.execute_input":"2022-11-10T23:11:06.770982Z","iopub.status.idle":"2022-11-10T23:11:07.998237Z","shell.execute_reply.started":"2022-11-10T23:11:06.770949Z","shell.execute_reply":"2022-11-10T23:11:07.997054Z"},"_kg_hide-input":true,"_kg_hide-output":true,"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"zone_rank_time_df = zone_rank_time_df.sort_values(by=\"normalized_trakus_index_bin\")\ng = sns.FacetGrid(zone_rank_time_df[zone_rank_time_df[\"position_at_finish\"] < 5], \n                  row=\"position_at_finish\",  \n                  col=\"normalized_trakus_index_bin\", \n                  height=2.5, \n                  aspect=1.5,\n                  margin_titles=True)\n\ndef draw_heatmap(*args, **kwargs):\n    data = kwargs.pop('data')\n    d = data.pivot(index=args[1], columns=args[0], values=args[2])\n    sns.heatmap(d, **kwargs)\n\ng.map_dataframe(draw_heatmap,  \"zone\", \"rank\", \"Count of horse\", cmap=\"flare\", cbar=False)\ng.set_axis_labels(\"Segment\", \"Rank\")\ng.set_titles(row_template='Position at finish: {row_name}', col_template=\"Segment: {col_name}\")\nplt.show()","metadata":{"execution":{"iopub.status.busy":"2022-11-11T00:19:34.520629Z","iopub.execute_input":"2022-11-11T00:19:34.521022Z","iopub.status.idle":"2022-11-11T00:19:41.259938Z","shell.execute_reply.started":"2022-11-11T00:19:34.520988Z","shell.execute_reply":"2022-11-11T00:19:41.258801Z"},"_kg_hide-input":true,"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"## Maiden Special Weight","metadata":{}},{"cell_type":"code","source":"msw_df = tracking_pos[tracking_pos[\"race_type_full\"] == \"Maiden Special Weight\"]\nzone_rank_time_df = (\n    msw_df\n    .groupby([\"position_at_finish\", \"zone\", \n              \"race_id\", \"program_number\", \"normalized_trakus_index_bin\"], as_index=False)\n    [\"rank\"].agg(pd.Series.mode)\n)\n\ntry:\n    zone_rank_time_df[\"rank\"] = zone_rank_time_df[\"rank\"].apply(lambda x: x.min()).astype(int)\nexcept AttributeError:\n    pass\n\nzone_rank_time_df = (zone_rank_time_df\n                .groupby([\"position_at_finish\", \"zone\", \"rank\", \"normalized_trakus_index_bin\"])\n                .count().max(axis=1))\n\nzone_rank_time_df = zone_rank_time_df.reset_index()\nzone_rank_time_df.rename(columns={0:\"Count of horse\"}, inplace=True)","metadata":{"execution":{"iopub.status.busy":"2022-11-10T23:11:14.350544Z","iopub.execute_input":"2022-11-10T23:11:14.350989Z","iopub.status.idle":"2022-11-10T23:11:16.716268Z","shell.execute_reply.started":"2022-11-10T23:11:14.350945Z","shell.execute_reply":"2022-11-10T23:11:16.715089Z"},"_kg_hide-input":true,"_kg_hide-output":true,"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"zone_rank_time_df = zone_rank_time_df.sort_values(by=\"normalized_trakus_index_bin\")\ng = sns.FacetGrid(zone_rank_time_df[zone_rank_time_df[\"position_at_finish\"] < 5], \n                  row=\"position_at_finish\",  \n                  col=\"normalized_trakus_index_bin\", \n                  height=2.5, \n                  aspect=1.5,\n                  margin_titles=True)\n\ndef draw_heatmap(*args, **kwargs):\n    data = kwargs.pop('data')\n    d = data.pivot(index=args[1], columns=args[0], values=args[2])\n    sns.heatmap(d, **kwargs)\n\ng.map_dataframe(draw_heatmap, \"zone\", \"rank\", \"Count of horse\", cmap=\"flare\", cbar=False)\ng.set_axis_labels(\"Segment\", \"Rank\")\ng.set_titles(row_template='Position at finish: {row_name}', col_template=\"Segment: {col_name}\")\nplt.show()","metadata":{"execution":{"iopub.status.busy":"2022-11-11T00:19:41.262257Z","iopub.execute_input":"2022-11-11T00:19:41.263312Z","iopub.status.idle":"2022-11-11T00:19:47.967280Z","shell.execute_reply.started":"2022-11-11T00:19:41.263274Z","shell.execute_reply":"2022-11-11T00:19:47.965964Z"},"_kg_hide-input":true,"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"# Conclusion\n\nFrom the analysis that we've done above, we found out the following\n- High placing horses tended to run more during the start and middle of the race onwards. \n- When there is a zone-change, horses tend to move to the left or the right early in the race. Towards the end of the race, there is always a change between front-left and front-right with more horses changing to front-right.\n- Most of the time, horses that win are already in front for most of the race. Stakes is one race type that is more unpredictable.\n\n## Suggestions\n\n**The strategic position at the start to be number 1 at the finish is zone front-left and try to stay in this position till the end of the race. It's obviously the shortest distance to run. However, if the jockey can't put the horse at the front-left, try to stay front-right. In case the jockey can't put the horse at the front, the right zone can be an option. Because most of the jockeys try to be on the left to run on the shortest path and overtake the others, that jams the left zone. So, staying on right and saving energy for the last 20% of the racing time can be another strategic plan to be the winner.**","metadata":{}}]}