PHPMem v2.0.1

Version
1.6.45
Uptime
18 days 9 hours 58 minutes 24 seconds

Memory

Total
512MB
Used
12,33MB (2.41%)
Free
499,67MB

Keys

Current
13 424
Total (since start)
40 994
Evictions
0
Reclaimed
762
Expired Unfetched
0
Evicted Unfetched
0

Connections

Current
3 / 1 024 max
Total
245 885
Rejected
0
llm:8688ae7dff28797171fb87eaabfb2988ffca91ce56227f31523a5d915d1f2afd
TTL 3 days 20 hours 25 minutes 53 seconds Size 2,63KB Export
Edit
Yes. **Court surface** is the most natural segmentation, and the data backs it up. Match round, tournament and rank band are useful secondary cuts. ## Surface: the primary segmentation `raw.raw_kaggle` has a `Surface` column with four real values (Hard, Clay, Grass, Carpet). The four groups differ clearly in size, serve style and typical player rank: | Surface | Rows | Avg aces | Avg double faults | Avg player rank | |---|---|---|---|---| | Hard | 117,571 | 5.88 | 2.97 | 311 | | Clay | 107,650 | 3.38 | 2.81 | 361 | | Grass | 9,479 | 7.57 | 3.17 | 151 | | Carpet | 2,477 | 7.94 | 3.11 | 517 | - **Serve behaviour:** Grass and carpet are fast surfaces, with about 7.6–7.9 aces per match. Clay is slow, at about 3.4 aces. Hard sits in between at about 5.9. - **Field strength:** Grass matches have a much lower average rank number (151), meaning stronger players. Carpet has the highest (517). Carpet is also a tiny, largely historical slice with only 2,477 rows. - **Size imbalance:** Hard and clay make up about 95% of the rows. Any model or comparison will be dominated by them, so treat grass and carpet results cautiously. - **Gap to handle:** 28 rows have a blank surface. Exclude them or label them "unknown". The same `Surface` field exists in `raw.return_kaggle` and `raw.serve_kaggle`, so the segmentation applies to serve and return statistics as well. The tables share no verified join key, so each one has to be segmented separately. ## Secondary segmentations These come from the dataset's classifier columns. I did not profile them in this session. - **Round (`Rd`, about 14 values):** early rounds versus finals. This shows whether form changes as a tournament progresses. - **Tournament (about 3,963 distinct values):** too fine-grained to use directly. It is better rolled up into tournament tiers or grouped by surface. - **Opponent and player rank (`Rk`, `vRk`):** continuous, so bucket them into bands such as top 10, top 50 and 100+. The serve and return profiles are built to be compared against opponents of different rank. - **Time (`Date`, year):** season or era, for example the pre-2013 carpet era versus recent years. `serve_kaggle` goes back to 2006, while the other two tables start in 2013. - **Player (`Name`):** `raw.players_man_` has 462 players, which allows career-level or match-count tiers. A good starting framework is **Surface × Round**, optionally with a rank band. The gold tables `raw_kaggle_by_Surface_Rd`, `return_kaggle_by_Surface_Rk` and `serve_kaggle_by_Surface_Rd` already hold these cuts pre-aggregated.