Go to Post Basically, it just doesn't matter. - Mark Pettit [more]
Home
Go Back   Chief Delphi > Competition > District Events
CD-Media   CD-Spy  
portal register members calendar search Today's Posts Mark Forums Read FAQ rules

 
Reply
Thread Tools Rate Thread Display Modes
  #1   Spotlight this post!  
Unread 31-03-2016, 18:39
rwodonnell rwodonnell is offline
Registered User
AKA: Rick O'Donnell
FRC #2876 (Devilbotz)
Team Role: Mentor
 
Join Date: Feb 2013
Rookie Year: 2011
Location: Burlington, MA, USA
Posts: 53
rwodonnell is a splendid one to beholdrwodonnell is a splendid one to beholdrwodonnell is a splendid one to beholdrwodonnell is a splendid one to beholdrwodonnell is a splendid one to beholdrwodonnell is a splendid one to beholdrwodonnell is a splendid one to behold
TamperMonkey script to analyze district standings and predict DCMP invitations

I wrote a TamperMonkey script that will run on the district standings page of your choice and make a very crude attempt at identifying those teams that are in, likely in, on the bubble, likely out and out.

It's located here: https://github.com/BHSRobotix/TamperMonkeyScripts

You need the Chrome extension TamperMonkey and the script at the github link above. I set it up for the New England district - if you want to use it elsewhere, you would have to modify the @match parameter on line 7 to match the URL for the district you are interested in.

The biggest reason I am bringing it to public attention is that I have no idea how to do a real statistical analysis, and so my system is very crude. I'd be interested in hearing how to better go about predicting teams' second event score and what the invitation cutoff might be. I've tried to modularize a little so people can just change the right functions but it's likely there is not enough or the right data being passed. I'm interested in feedback.
Reply With Quote
  #2   Spotlight this post!  
Unread 31-03-2016, 19:22
otherguy's Avatar
otherguy otherguy is offline
sparkE
AKA: James
FRC #2168 (The Aluminum Falcons)
Team Role: Mentor
 
Join Date: Feb 2010
Rookie Year: 2009
Location: CT
Posts: 434
otherguy is a splendid one to beholdotherguy is a splendid one to beholdotherguy is a splendid one to beholdotherguy is a splendid one to beholdotherguy is a splendid one to beholdotherguy is a splendid one to beholdotherguy is a splendid one to behold
Re: TamperMonkey script to analyze district standings and predict DCMP invitations

Per a recent (last?) team update, the NE district invite cutoff will be 64 teams.

That will be the top 64 teams by quality points unless a team that's outside of the top 64 gets an invite to champs through other means (district chairmans award). If that happens then I believe the cutoff by rank moves up.


I've done an analysis independently, and determined the cutoff would be around 63 quality pts.
I took the average difference in points scored for all teams who played two events. On average teams improve their first event score by 3pts.
For all teams that haven't played their 2nd event, I just took their first event score plus 3, then sorted all by pts.

This oversimplifies the problem, as some teams will compete in more than two events, the more they play the better they will likely perform. They'll end up pulling available points out of the pool available for teams who haven't played in two events yet... But the above method was a quick way I cane up with determining rank.
__________________
http://team2168.org

Last edited by otherguy : 31-03-2016 at 19:29.
Reply With Quote
  #3   Spotlight this post!  
Unread 01-04-2016, 03:50
SoftwareBug2.0's Avatar
SoftwareBug2.0 SoftwareBug2.0 is offline
Registered User
AKA: Eric
FRC #1425 (Error Code Xero)
Team Role: Mentor
 
Join Date: Aug 2004
Rookie Year: 2004
Location: Tigard, Oregon
Posts: 486
SoftwareBug2.0 has a brilliant futureSoftwareBug2.0 has a brilliant futureSoftwareBug2.0 has a brilliant futureSoftwareBug2.0 has a brilliant futureSoftwareBug2.0 has a brilliant futureSoftwareBug2.0 has a brilliant futureSoftwareBug2.0 has a brilliant futureSoftwareBug2.0 has a brilliant futureSoftwareBug2.0 has a brilliant futureSoftwareBug2.0 has a brilliant futureSoftwareBug2.0 has a brilliant future
Re: TamperMonkey script to analyze district standings and predict DCMP invitations

I think the numbers that you have are not terribly far off for New England.

I've also had a script to do this for some time. It's set up to automatically come up with estimates for any of the districts without any magic numbers. I've previously shared it here: http://www.chiefdelphi.com/forums/sh...3&postcount=13

Appearantly that's not easy to find though so I've put it on github: https://github.com/errorcodexero/standing_predictor I welcome pull requests.

For comparison, here's the output that I get:

Key:
Code:
in=will have enough points to make it in
out=won't make it
~in=probably going to have enough points
~out=probably won't have enough points
bubble=could easily go either way
Code:
Best-case points to make it to district cmp: 48
Worst-case points to make it to district cmp: 99
Best estimate: 62
{'bubble': 43, 'out': 32, '~in': 38, '~out': 61, 'in': 7}
0	in	1058 - PVC Pirates 
1	in	319 - Big Bad Bob 
2	in	78 - AIR STRIKE 
3	in	4905 - Andromeda One 
4	in	230 - Gaelhawks 
5	in	5813 - Morpheus 
6	in	1831 - Screaming Eagles 
7	~in	1768 - Robo Chiefs 
8	~in	228 - GUS Robotics 
9	~in	176 - Aces High 
10	~in	88 - TJ(Squared) 
11	~in	4048 - Redshift 
12	~in	190 - Gompei and the H.E.R.D. 
13	~in	1153 - Robo-Rebels 
14	~in	1729 - Team Inconceivable! 
15	~in	155 - The Technonuts 
16	~in	95 - Grasshoppers 
17	~in	4761 - The Robockets 
18	~in	131 - C.H.A.O.S. 
19	~in	2370 - iBots 
20	~in	2648 - Infinite Loop 
21	~in	5962 - perSEVERE 
22	~in	4909 - Bionics 
23	~in	1519 - Mechanical Mayhem 
24	~in	2876 - Devilbotz 
25	~in	558 - Elm City Robo Squad 
26	~in	2064 - The Panther Project 
27	~in	1124 - UberBots 
28	~in	5846 - Southcoast Corsairs 
29	~in	1512 - The Metal Vidsters 
30	~in	177 - Bobcat Robotics 
31	~in	2067 - Apple Pi 
32	~in	885 - THE GREEN TEAM 
33	~in	238 - Cruisin' Crusaders 
34	~in	125 - NUTRONs 
35	~in	195 - CyberKnights 
36	bubble	213 - The Dirty Birds 
37	~in	6153 - Blue Crew 
38	~in	1099 - DiscoTechs 
39	~out	5112 - The Gongoliers 
40	~out	1277 - The Robotomies 
41	~in	839 - Rosie Robotics 
42	~out	4055 - NRG4055 
43	~out	1735 - Green Reapers 
44	~out	246 - Overclocked 
45	~in	3930 - SMART Spruce Mountain Area Ro... 
46	~out	4151 - SCRAP 
47	~out	138 - Entropy 
48	~out	2342 - Team Phoenix 
49	bubble	6161 - Equilibrium 
50	~out	1786 - The Robotics Team 
51	~in	4564 - Orange Chaos 
52	~in	5687 - The Outliers 
53	~in	126 - Gael Force 
54	bubble	5686 - Wirecats 
55	~out	501 - The PowerKnights 
56	~out	4473 - Delta Prime 
57	~in	133 - B.E.R.T 
58	out	6201 - The Highlanders 
59	~out	348 - Norwell Robotics 
60	bubble	3461 - Operation PEACCE Robotics 
61	~in	175 - Buzz Robotics 
62	out	3958 - Schrodinger's Cat 
63	out	157 - AZTECHS 
64	bubble	2084 - Robots by the C 
65	out	4929 - Maroon Monsoon 
66	bubble	181 - Birds Of Prey 
67	out	2836 - Team Beta 
68	bubble	467 - The Colonials 
69	out	151 - Tough Techs 
70	bubble	5746 - Human Error 
71	out	3719 - STEM Whalers 
72	out	3205 - Patriots 
73	out	4311 - Swampscott Currents 
74	out	1721 - Tidal Force 
75	out	1071 - Team Max 
76	bubble	166 - Chop Shop 
77	bubble	1699 - Robocats 
78	bubble	3182 - Athena's Warriors 
79	out	1350 - The Rambots 
80	out	509 - Red Storm 
81	out	3323 - Potential Energy 
82	out	4097 - Devilbots 
83	bubble	2877 - LigerBots 
84	out	3236 - TRIFORCE 
85	bubble	3609 - Duct Tape Dragons 
86	out	4474 - Silver Circuit 
87	bubble	3467 - Windham Windup 
88	bubble	999 - MechaRAMS 
89	bubble	4557 - FullMetal Falcons 
90	bubble	58 - The Riot Crew 
91	out	178 - The 2nd Law Enforcers 
92	bubble	236 - Techno-Ticks 
93	out	4176 - Iron Tigers 
94	bubble	1100 - The T-Hawks 
95	bubble	5556 - Carriagetown Robotics 
96	out	4169 - Warrior Robotics 
97	bubble	5902 - The Wire Clippers 
98	bubble	172 - Northern Force 
99	out	5958 - Blue Wave Robotics 
100	bubble	3464 - Sim-City 
101	bubble	4908 - Duxbury Dragons 
102	bubble	2168 - Aluminum Falcons 
103	bubble	5752 - Beverly Panthers 
104	bubble	716 - Who'sCTEKS 
105	bubble	811 - Cardinals 
106	bubble	69 - HYPER 
107	bubble	6224 - The Saints 
108	bubble	5000 - Hammerheads 
109	out	1517 - The Lumberjacks 
110	out	1474 - Master Link Militia 
111	bubble	5422 - Stormgears FRC 
112	~out	5856 - Bullbots 
113	bubble	121 - Rhode Warriors 
114	bubble	237 - Black Magic Robotics 
115	bubble	1991 - Dragons 
116	bubble	4546 - ShockWave 
117	~out	5844 - Phoenix Tech 
118	bubble	1073 - The Force Team 
119	out	3566 - Gone Fishin' 
120	~out	5969 - English Skunkworks 
121	bubble	3146 - GRANBY GRUNTS 
122	bubble	4906 - The Collective 
123	out	5494 - Bizarbots Robotics 
124	bubble	2170 - Titanium Tomahawks 
125	out	5400 - WARP 
126	bubble	3654 - TechTigers 
127	out	1307 - Robosaints 
128	bubble	571 - Team Paragon 
129	bubble	3466 - Vikings Robotics 
130	out	97 - Bionic Beef 
131	~out	6172 - Team Jupiter 
132	~out	2713 - iRaiders 
133	out	1247 - Robotics of Kearsarge (ROK) 
134	out	1973 - Brighton Burning Tiger 
135	~out	5506 - Viking Landers 
136	~out	1740 - Ledyard Cyber Colonels 
137	~out	5491 - Cognitive Hazard 
138	~out	5471 - W.Hi.R.R. 
139	~out	5459 - Ipswich TIGERS (Technologicall... 
140	~out	3525 - The Nuts & Bolts of Fury 
141	~out	5122 - robOTies 
142	~out	2079 - 4H ALARM Robotics 
143	~out	4572 - BArlow RobAutics 
144	~out	3623 - Terror Bots 
145	~out	5735 - Control Freaks 
146	~out	5563 - Phalanx 
147	out	5163 - The Aluminum Warriors 
148	~out	3780 - Robot Unicorns 
149	~out	4925 - The Resistance 
150	~out	1922 - Oz-Ram 
151	out	1027 - Project Jabberwocky 
152	~out	2785 - Prometheus 
153	~out	1289 - Gearheadz 
154	~out	3634 - Spark City 
155	~out	2262 - Robo-Panthers 
156	~out	4628 - Sintian Robotics 
157	~out	5633 - Hyde Phoenix 
158	~out	4796 - Cyber Dragons 
159	~out	1761 - STEAMpunk Tigers 
160	~out	173 - RAGE (Robotics And Gadget Engi... 
161	~out	4041 - Iron Tigers 
162	~out	2423 - The KwarQs 
163	~out	4042 - Murphy's Lawyers 
164	~out	4555 - Sprocketology 
165	~out	1965 - Firebirds 
166	~out	3718 - Junkyard Battalion 
167	~out	5129 - Digital Devils 
168	~out	3451 - The ANOMALY 
169	~out	1757 - Wolverines 
170	~out	5347 - Gryphons 
171	~out	3597 - Robo-Rangers 
172	~out	3585 - Rogue Robots of 4-H 
173	~out	3104 - The Cyber Rams 
174	~out	5265 - Radical Impact 
175	~out	4987 - MegaRams 
176	~out	4958 - Robocats 
177	~out	2523 - Tech Storm 
178	~out	5142 - Robo Dominators 
179	~out	3555 - Aluminati 
180	~out	663 - Robonauts
Reply With Quote
  #4   Spotlight this post!  
Unread 01-04-2016, 08:46
rwodonnell rwodonnell is offline
Registered User
AKA: Rick O'Donnell
FRC #2876 (Devilbotz)
Team Role: Mentor
 
Join Date: Feb 2013
Rookie Year: 2011
Location: Burlington, MA, USA
Posts: 53
rwodonnell is a splendid one to beholdrwodonnell is a splendid one to beholdrwodonnell is a splendid one to beholdrwodonnell is a splendid one to beholdrwodonnell is a splendid one to beholdrwodonnell is a splendid one to beholdrwodonnell is a splendid one to behold
Re: TamperMonkey script to analyze district standings and predict DCMP invitations

Quote:
Originally Posted by SoftwareBug2.0 View Post
I've also had a script to do this for some time. It's set up to automatically come up with estimates for any of the districts without any magic numbers.
It's your posts that inspired me to do it with TamperMonkey, and in fact I tried to use your methodology but I struggled to understand the Python code. I only vaguely know the language. I did copy your 5 classifications.

While your posts are awesome and much appreciated, I thought it would be neat to go to the district rankings page and have them automatically do what I wanted right in the browser - the beauty of Grease - er - TamperMonkey. (The original name is so much better!)

My son is taking Python - with your permission, when I get a chance (probably next season at this point) I will, with his help, translate your algorithm into Javascript.
Reply With Quote
  #5   Spotlight this post!  
Unread 01-04-2016, 13:23
SoftwareBug2.0's Avatar
SoftwareBug2.0 SoftwareBug2.0 is offline
Registered User
AKA: Eric
FRC #1425 (Error Code Xero)
Team Role: Mentor
 
Join Date: Aug 2004
Rookie Year: 2004
Location: Tigard, Oregon
Posts: 486
SoftwareBug2.0 has a brilliant futureSoftwareBug2.0 has a brilliant futureSoftwareBug2.0 has a brilliant futureSoftwareBug2.0 has a brilliant futureSoftwareBug2.0 has a brilliant futureSoftwareBug2.0 has a brilliant futureSoftwareBug2.0 has a brilliant futureSoftwareBug2.0 has a brilliant futureSoftwareBug2.0 has a brilliant futureSoftwareBug2.0 has a brilliant futureSoftwareBug2.0 has a brilliant future
Re: TamperMonkey script to analyze district standings and predict DCMP invitations

Quote:
Originally Posted by rwodonnell View Post
It's your posts that inspired me to do it with TamperMonkey, and in fact I tried to use your methodology but I struggled to understand the Python code. I only vaguely know the language. I did copy your 5 classifications.

While your posts are awesome and much appreciated, I thought it would be neat to go to the district rankings page and have them automatically do what I wanted right in the browser - the beauty of Grease - er - TamperMonkey. (The original name is so much better!)

My son is taking Python - with your permission, when I get a chance (probably next season at this point) I will, with his help, translate your algorithm into Javascript.
I wonder if there's some way that we could combine our efforts. Putting them inline with the results webpage is definately more elegant than my output. At the same time, I have no idea how to run a TamperMonkey script, and I bet I'm not the only one. I'm not sure what the easiest way is to let people get results is.

How do you run a TamperMonkey script anyway? I tried installing it and got a page that looked IDE-like so I copied your code in but then I wasn't sure what to do next.

I haven't been keeping up on the latest Javascript stuff, so I feel like there's probably some security rules that will prevent this, but is it possible to make a webpage that loads a remote page and then parses it? Can you make an iframe and then mess with its contents? Could this be done with just a normal webpage?

I feel like the less barriers to entry for someone running the script the more useful it will be. For example, I don't know whether anyone besides me has tried to run my script despite it being publicly available for years. I wonder if ultimately the right thing is to put a CGI script together on a server someplace.

What do you think? Either way, feel free to copy the algorithm. And I know it's a little sparse on comments so I'm happy to answer questions about what it's doing.
Reply With Quote
  #6   Spotlight this post!  
Unread 02-04-2016, 17:08
rwodonnell rwodonnell is offline
Registered User
AKA: Rick O'Donnell
FRC #2876 (Devilbotz)
Team Role: Mentor
 
Join Date: Feb 2013
Rookie Year: 2011
Location: Burlington, MA, USA
Posts: 53
rwodonnell is a splendid one to beholdrwodonnell is a splendid one to beholdrwodonnell is a splendid one to beholdrwodonnell is a splendid one to beholdrwodonnell is a splendid one to beholdrwodonnell is a splendid one to beholdrwodonnell is a splendid one to behold
Re: TamperMonkey script to analyze district standings and predict DCMP invitations

Quote:
Originally Posted by SoftwareBug2.0 View Post
How do you run a TamperMonkey script anyway? I tried installing it and got a page that looked IDE-like so I copied your code in but then I wasn't sure what to do next.
Once you install a script on your local copy of TamperMonkey, it should run automatically when you go to a page whose URL matches the @match line in the script. So go to the url that the match field says and it should run. If it doesn't, click on the TamperMonkey extension's icon - it should at least indicate that there is a script that can run. Obviously that matching URL is a little specific, and it should be made more general to work for all districts.

Quote:
Originally Posted by SoftwareBug2.0 View Post
I feel like the less barriers to entry for someone running the script the more useful it will be.
I think you're right about this. The TamperMonkey extension is a little work - first you have to install the extension, then you have to go and find matching scripts. It's fun but what would be better is, as you suggest, a web page. There is an API available to pull this data from FRC, so that would probably make the most sense.
Reply With Quote
Reply


Thread Tools
Display Modes Rate This Thread
Rate This Thread:

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Forum Jump


All times are GMT -5. The time now is 18:22.

The Chief Delphi Forums are sponsored by Innovation First International, Inc.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Copyright © Chief Delphi