Data Data-Driven Team Building & Theorymon

Status
Not open for further replies.
Really cool concept. To me, this creates a possibility of a computer playing Pokemon like a human. Out of curiosity, how impossible would that be?

I wish I knew how to code so I could do stuff like this.
 
I attached the most recent update to my script. Here are the top few results it generated:
Team: ('Aegislash', 'Talonflame', 'Venusaur', 'Heatran', 'Conkeldurr', 'Mamoswine') ; Relative Prob: 1.0
Team: ('Talonflame', 'Venusaur', 'Heatran', 'Conkeldurr', 'Bisharp', 'Mamoswine') ; Relative Prob: 0.983756510516
Team: ('Aegislash', 'Talonflame', 'Venusaur', 'Heatran', 'Breloom', 'Mamoswine') ; Relative Prob: 0.966421036151
Team: ('Aegislash', 'Venusaur', 'Heatran', 'Conkeldurr', 'Latios', 'Mamoswine') ; Relative Prob: 0.956584751979
Team: ('Aegislash', 'Dragonite', 'Venusaur', 'Heatran', 'Conkeldurr', 'Mamoswine') ; Relative Prob: 0.955332494453
Team: ('Talonflame', 'Venusaur', 'Heatran', 'Breloom', 'Bisharp', 'Mamoswine') ; Relative Prob: 0.949232968402
Team: ('Talonflame', 'Venusaur', 'Heatran', 'Conkeldurr', 'Sylveon', 'Mamoswine') ; Relative Prob: 0.94527844914
Team: ('Talonflame', 'Excadrill', 'Venusaur', 'Heatran', 'Conkeldurr', 'Mamoswine') ; Relative Prob: 0.940396927782
Team: ('Aegislash', 'Venusaur', 'Heatran', 'Conkeldurr', 'Thundurus', 'Mamoswine') ; Relative Prob: 0.936177628366
Team: ('Aegislash', 'Talonflame', 'Heatran', 'Breloom', 'Conkeldurr', 'Mamoswine') ; Relative Prob: 0.935832019792
Team: ('Aegislash', 'Talonflame', 'Heatran', 'Breloom', 'Sylveon', 'Mamoswine') ; Relative Prob: 0.935421186685
Team: ('Greninja', 'Talonflame', 'Venusaur', 'Heatran', 'Conkeldurr', 'Mamoswine') ; Relative Prob: 0.933568583059
Team: ('Talonflame', 'Venusaur', 'Heatran', 'Conkeldurr', 'Thundurus', 'Mamoswine') ; Relative Prob: 0.926194616035
Team: ('Aegislash', 'Talonflame', 'Gliscor', 'Venusaur', 'Heatran', 'Mamoswine') ; Relative Prob: 0.925466288184
Team: ('Talonflame', 'Dragonite', 'Venusaur', 'Heatran', 'Conkeldurr', 'Mamoswine') ; Relative Prob: 0.921427082901
Team: ('Talonflame', 'Gliscor', 'Venusaur', 'Heatran', 'Conkeldurr', 'Mamoswine') ; Relative Prob: 0.920732565763
Team: ('Aegislash', 'Venusaur', 'Heatran', 'Breloom', 'Latios', 'Mamoswine') ; Relative Prob: 0.920452416057
Team: ('Aegislash', 'Talonflame', 'Heatran', 'Breloom', 'Gyarados', 'Mamoswine') ; Relative Prob: 0.919947410468
Team: ('Aegislash', 'Dragonite', 'Venusaur', 'Heatran', 'Breloom', 'Mamoswine') ; Relative Prob: 0.919696042633
Team: ('Talonflame', 'Venusaur', 'Heatran', 'Breloom', 'Conkeldurr', 'Mamoswine') ; Relative Prob: 0.916807857623
Team: ('Aegislash', 'Talonflame', 'Azumarill', 'Venusaur', 'Heatran', 'Mamoswine') ; Relative Prob: 0.916292115793
Team: ('Talonflame', 'Heatran', 'Breloom', 'Conkeldurr', 'Mawile', 'Mamoswine') ; Relative Prob: 0.915735603015
Team: ('Talonflame', 'Venusaur', 'Heatran', 'Breloom', 'Sylveon', 'Mamoswine') ; Relative Prob: 0.915730367723
Team: ('Venusaur', 'Heatran', 'Conkeldurr', 'Bisharp', 'Latios', 'Mamoswine') ; Relative Prob: 0.913421932261
Team: ('Talonflame', 'Azumarill', 'Venusaur', 'Heatran', 'Conkeldurr', 'Mamoswine') ; Relative Prob: 0.912294518987
Team: ('Talonflame', 'Venusaur', 'Heatran', 'Conkeldurr', 'Latios', 'Mamoswine') ; Relative Prob: 0.91217057109
Team: ('Aegislash', 'Talonflame', 'Azumarill', 'Heatran', 'Breloom', 'Mamoswine') ; Relative Prob: 0.909314541675
Team: ('Aegislash', 'Talonflame', 'Heatran', 'Breloom', 'Gardevoir', 'Mamoswine') ; Relative Prob: 0.909300729789
Very interesting how Mamoswine is on every single team even with an A- viability ranking and being 30th in actual usage (33rd mid ladder, 31st high). Is there any way for you to determine the ideal sets, or is it just using every possible move?

It also looks like most of these teams are primarily offensive (A lot of TFlame, Mamo, Loom, Conk, Lati, Bisharp) with a couple bulky defensive mons (Tran, Venusaur, and Sylveon) and solid core typings. Is there any way for this program to take into account more information that would allow it to make less offensive teams with more utility mons? It looks like Sylveon is the closest it gets to using anything like Skarm, Blissey, Quag, or other primarily defensive and support mons.

Very cool idea.

EDIT: A couple replays from one of the teams I liked (Mamo, Loom, Tran, Venu, TFlame, Aegi). Lower ladder, nothing special, just showing that its reasonably strong and has good switch ins to a lot of things.

1 | 2 | 3 | 4

The team for anyone who cares. Absolutely no effort went into the EVs.
Talonflame (F) @ Sky Plate
Ability: Gale Wings
EVs: 252 HP / 252 Atk / 4 Spe
Adamant Nature
- Brave Bird
- Flare Blitz
- U-turn
- Roost

Venusaur (F) @ Venusaurite
Ability: Chlorophyll
EVs: 252 HP / 4 Def / 252 SpA
Modest Nature
- Giga Drain
- Hidden Power [Fire]
- Sludge Bomb
- Synthesis

Heatran (F) @ Leftovers
Ability: Flash Fire
EVs: 252 HP / 4 SpA / 252 SpD
Calm Nature
- Protect
- Toxic
- Lava Plume
- Roar

Aegislash (F) @ Leftovers
Ability: Stance Change
EVs: 252 HP / 4 Atk / 252 SpD
Careful Nature
- King's Shield
- Sacred Sword
- Shadow Sneak
- Toxic

Mamoswine (F) @ Choice Scarf
Ability: Thick Fat
EVs: 4 HP / 252 Atk / 252 Spe
Jolly Nature
- Icicle Spear
- Earthquake
- Ice Shard
- Superpower

Breloom (F) @ Focus Sash
Ability: Technician
Shiny: Yes
EVs: 4 HP / 252 Atk / 252 Spe
Jolly Nature
- Bullet Seed
- Mach Punch
- Rock Slide
- Spore
 
Last edited:
Really cool concept. To me, this creates a possibility of a computer playing Pokemon like a human. Out of curiosity, how impossible would that be?

I wish I knew how to code so I could do stuff like this.
It is possible, but would be very difficult. Obviously Gamefreak has written some fairly simple AI around a computer playing. But actual competitive-level playing hasn't been done, as far as I know, and likely will not be.

Very interesting how Mamoswine is on every single team even with an A- viability ranking and being 30th in actual usage (33rd mid ladder, 31st high). Is there any way for you to determine the ideal sets, or is it just using every possible move?

It also looks like most of these teams are primarily offensive (A lot of TFlame, Mamo, Loom, Conk, Lati, Bisharp) with a couple bulky defensive mons (Tran, Venusaur, and Sylveon) and solid core typings. Is there any way for this program to take into account more information that would allow it to make less offensive teams with more utility mons? It looks like Sylveon is the closest it gets to using anything like Skarm, Blissey, Quag, or other primarily defensive and support mons.

Very cool idea.

EDIT: A couple replays from one of the teams I liked (Mamo, Loom, Tran, Venu, TFlame, Aegi). Lower ladder, nothing special, just showing that its reasonably strong and has good switch ins to a lot of things.

1 | 2 | 3 | 4

The team for anyone who cares. Absolutely no effort went into the EVs.
I don't think that ideal movesets would be possible using the current set of data. Of course elrod could give a more definitive answer, but I think the script is using the check/counter data that antar posted to calculate the likelihood that your Pokemon would be checked/countered, or could check/counter the opponent. But that data doesn't discern between sets, so we can't guess the likelihood that, say, Knock Off Landorus-I would be countered vs the likelihood that Calm Mind Landorus-I would.

It occurred to me that we could start checking new teams against teams that we already know to be very good. I don't know for sure that it would produce better, worse, or similar results, but it could certainly cut down on computation time. Edit: We'd have to make sure the teams are appropriately diverse so that they cannot be/are harder to counterteam.
 
Last edited:
Is there anyway that showdown could create some sort of computer ladder where the computers could send their teams and moves via IRC?
 
Last edited:
It is possible, but would be very difficult. Obviously Gamefreak has written some fairly simple AI around a computer playing. But actual competitive-level playing hasn't been done, as far as I know, and likely will not be.
The main thing the in-game AI lacks is a knowledge of when to switch out. Currently, it only switches if it's about to be KOed by Perish Song, or if it can do exactly zero damage to your current Pokemon in any way at all. Other than that, it's pretty advanced. When I was fighting the battle maison, I was abusing Aegislash's King's Shield, and after a while the AI started predicting my constant KSing. It was pretty interesting to see.

You're right, though; it likely will not be.
 
Really cool concept. To me, this creates a possibility of a computer playing Pokemon like a human. Out of curiosity, how impossible would that be?

I wish I knew how to code so I could do stuff like this.
I would imagine that if computers can beat professional chess players, it would be possible to program a computer that could compete with us. Of course, in chess everyone has the same "team" and since chess is far more popular, far more effort is put towards programming computer players.
 
I would imagine that if computers can beat professional chess players, it would be possible to program a computer that could compete with us. Of course, in chess everyone has the same "team" and since chess is far more popular, far more effort is put towards programming computer players.
Yeah, there's a concept called "perfect play" where (in general) the computer calculates the best possible move each turn. Figuring out how to calculate what the best move is is the tricky part. However, some games even humans can have perfect play in, the best example being Tic Tac Toe. Everyone (should) be able to tie with their opponent 100% of the time. Perfect play for Pokemon is probably not possible (for now, anyway) because of all the variables. Getting a computer to play decently is probably realistic if people with the appropriate skill level (both in programming and pokemon knowledge) worked on it.
 
Yeah, there's a concept called "perfect play" where (in general) the computer calculates the best possible move each turn. Figuring out how to calculate what the best move is is the tricky part. However, some games even humans can have perfect play in, the best example being Tic Tac Toe. Everyone (should) be able to tie with their opponent 100% of the time. Perfect play for Pokemon is probably not possible (for now, anyway) because of all the variables. Getting a computer to play decently is probably realistic if people with the appropriate skill level (both in programming and pokemon knowledge) worked on it.
Right. A really good computer player would still have a tough time because sometimes team matchups are totally against you. Also, I don't know how a computer could handle situations where you are in against a set up sweeper and have to choose between switching out and risking a set up and staying in and probably sacking your mon. My guess would be the computer would choose to stay in, as it wouldn't be able to risk a sweep. There are probably a lot of scenarios like that which could be exploited by someone who knows how the computer operates. Still, I'm sure answers would eventually be found if a ton of resources were poured into it.
 
the problem with the AI constantly choosing the lowest-risk option is that players would learn this, and be able to predict accordingly, like you said.

I would add more but this is kind of derailing the thread, so I suppose we should stop this off-topic discussion here.
 
Xerneas, no stealth rock on that team?
Is stealth rock no longer as important as it used to be (thanks to defog's buff)?
The script favors having at least one pokemon with a moveset typically have stealth rock at the moment.



I made two changes to how the script works:
1) It now considers the top 40 most used pokemon for your team.
2) It now uses the 1825+ pokemon usage percents, instead of the total.

I also modified it to allow us to query for teams containing sets of pokemon.
Give me a team, and I can let you know how the script thinks it compares with its favorites.
Give me a set of pokemon, and I can let you know what the script thinks the best teams containing that set would be.

30 best teams (according to the script):
Team: ('Aegislash', 'Heatran', 'Venusaur', 'Breloom', 'Mamoswine', 'Terrakion') ; Relative Prob: 1.0
Team: ('Aegislash', 'Heatran', 'Venusaur', 'Talonflame', 'Breloom', 'Mamoswine') ; Relative Prob: 0.987144625398
Team: ('Aegislash', 'Heatran', 'Landorus', 'Venusaur', 'Breloom', 'Mamoswine') ; Relative Prob: 0.985969251539
Team: ('Aegislash', 'Keldeo', 'Heatran', 'Venusaur', 'Talonflame', 'Mamoswine') ; Relative Prob: 0.981975826264
Team: ('Keldeo', 'Heatran', 'Bisharp', 'Venusaur', 'Talonflame', 'Mamoswine') ; Relative Prob: 0.981014994598
Team: ('Heatran', 'Bisharp', 'Venusaur', 'Talonflame', 'Breloom', 'Mamoswine') ; Relative Prob: 0.980367271528
Team: ('Aegislash', 'Heatran', 'Talonflame', 'Breloom', 'Mamoswine', 'Terrakion') ; Relative Prob: 0.963837137624
Team: ('Aegislash', 'Heatran', 'Venusaur', 'Gliscor', 'Mamoswine', 'Terrakion') ; Relative Prob: 0.960586458537
Team: ('Heatran', 'Bisharp', 'Venusaur', 'Breloom', 'Mamoswine', 'Terrakion') ; Relative Prob: 0.958575376095
Team: ('Aegislash', 'Keldeo', 'Heatran', 'Talonflame', 'Breloom', 'Mamoswine') ; Relative Prob: 0.958207607934
Team: ('Aegislash', 'Keldeo', 'Heatran', 'Venusaur', 'Mamoswine', 'Terrakion') ; Relative Prob: 0.956617143221
Team: ('Aegislash', 'Heatran', 'Landorus', 'Talonflame', 'Breloom', 'Mamoswine') ; Relative Prob: 0.95567742217
Team: ('Aegislash', 'Heatran', 'Landorus', 'Venusaur', 'Mamoswine', 'Terrakion') ; Relative Prob: 0.9545454645
Team: ('Heatran', 'Bisharp', 'Landorus', 'Venusaur', 'Breloom', 'Mamoswine') ; Relative Prob: 0.952856029934
Team: ('Heatran', 'Mawile', 'Landorus', 'Talonflame', 'Breloom', 'Mamoswine') ; Relative Prob: 0.952444046505
Team: ('Aegislash', 'Heatran', 'Talonflame', 'Ferrothorn', 'Breloom', 'Mamoswine') ; Relative Prob: 0.951826907204
Team: ('Aegislash', 'Heatran', 'Talonflame', 'Gyarados', 'Breloom', 'Mamoswine') ; Relative Prob: 0.949819389784
Team: ('Aegislash', 'Heatran', 'Chansey', 'Talonflame', 'Breloom', 'Mamoswine') ; Relative Prob: 0.949038748712
Team: ('Heatran', 'Mawile', 'Talonflame', 'Breloom', 'Mamoswine', 'Terrakion') ; Relative Prob: 0.948893435165
Team: ('Aegislash', 'Heatran', 'Latios', 'Venusaur', 'Breloom', 'Mamoswine') ; Relative Prob: 0.948548365107
Team: ('Aegislash', 'Heatran', 'Talonflame', 'Breloom', 'Mamoswine', 'Deoxys-Defense') ; Relative Prob: 0.946696516406
Team: ('Aegislash', 'Thundurus', 'Heatran', 'Venusaur', 'Breloom', 'Mamoswine') ; Relative Prob: 0.946618998023
Team: ('Keldeo', 'Heatran', 'Bisharp', 'Venusaur', 'Mamoswine', 'Terrakion') ; Relative Prob: 0.946570963003
Team: ('Aegislash', 'Keldeo', 'Heatran', 'Venusaur', 'Breloom', 'Mamoswine') ; Relative Prob: 0.945235824758
Team: ('Aegislash', 'Heatran', 'Azumarill', 'Venusaur', 'Mamoswine', 'Terrakion') ; Relative Prob: 0.945059841429
Team: ('Keldeo', 'Heatran', 'Mawile', 'Talonflame', 'Breloom', 'Mamoswine') ; Relative Prob: 0.944856357661
Team: ('Heatran', 'Bisharp', 'Talonflame', 'Breloom', 'Mamoswine', 'Terrakion') ; Relative Prob: 0.943191917651
Team: ('Aegislash', 'Heatran', 'Venusaur', 'Talonflame', 'Gliscor', 'Mamoswine') ; Relative Prob: 0.941876797924
Team: ('Aegislash', 'Heatran', 'Garchomp', 'Talonflame', 'Breloom', 'Mamoswine') ; Relative Prob: 0.940398976448
Team: ('Aegislash', 'Thundurus', 'Heatran', 'Landorus', 'Breloom', 'Mamoswine') ; Relative Prob: 0.940296460016


Give me lists of pokemon, and I can tell you how the script thinks teams with them compare (if those pokemon are among the 40 most used)!
 
Xerneas, no stealth rock on that team?
Is stealth rock no longer as important as it used to be (thanks to defog's buff)?
The script favors having at least one pokemon with a moveset typically have stealth rock at the moment.



I made two changes to how the script works:
1) It now considers the top 40 most used pokemon for your team.
2) It now uses the 1825+ pokemon usage percents, instead of the total.

I also modified it to allow us to query for teams containing sets of pokemon.
Give me a team, and I can let you know how the script thinks it compares with its favorites.
Give me a set of pokemon, and I can let you know what the script thinks the best teams containing that set would be.

30 best teams (according to the script):
Team: ('Aegislash', 'Heatran', 'Venusaur', 'Breloom', 'Mamoswine', 'Terrakion') ; Relative Prob: 1.0
Team: ('Aegislash', 'Heatran', 'Venusaur', 'Talonflame', 'Breloom', 'Mamoswine') ; Relative Prob: 0.987144625398
Team: ('Aegislash', 'Heatran', 'Landorus', 'Venusaur', 'Breloom', 'Mamoswine') ; Relative Prob: 0.985969251539
Team: ('Aegislash', 'Keldeo', 'Heatran', 'Venusaur', 'Talonflame', 'Mamoswine') ; Relative Prob: 0.981975826264
Team: ('Keldeo', 'Heatran', 'Bisharp', 'Venusaur', 'Talonflame', 'Mamoswine') ; Relative Prob: 0.981014994598
Team: ('Heatran', 'Bisharp', 'Venusaur', 'Talonflame', 'Breloom', 'Mamoswine') ; Relative Prob: 0.980367271528
Team: ('Aegislash', 'Heatran', 'Talonflame', 'Breloom', 'Mamoswine', 'Terrakion') ; Relative Prob: 0.963837137624
Team: ('Aegislash', 'Heatran', 'Venusaur', 'Gliscor', 'Mamoswine', 'Terrakion') ; Relative Prob: 0.960586458537
Team: ('Heatran', 'Bisharp', 'Venusaur', 'Breloom', 'Mamoswine', 'Terrakion') ; Relative Prob: 0.958575376095
Team: ('Aegislash', 'Keldeo', 'Heatran', 'Talonflame', 'Breloom', 'Mamoswine') ; Relative Prob: 0.958207607934
Team: ('Aegislash', 'Keldeo', 'Heatran', 'Venusaur', 'Mamoswine', 'Terrakion') ; Relative Prob: 0.956617143221
Team: ('Aegislash', 'Heatran', 'Landorus', 'Talonflame', 'Breloom', 'Mamoswine') ; Relative Prob: 0.95567742217
Team: ('Aegislash', 'Heatran', 'Landorus', 'Venusaur', 'Mamoswine', 'Terrakion') ; Relative Prob: 0.9545454645
Team: ('Heatran', 'Bisharp', 'Landorus', 'Venusaur', 'Breloom', 'Mamoswine') ; Relative Prob: 0.952856029934
Team: ('Heatran', 'Mawile', 'Landorus', 'Talonflame', 'Breloom', 'Mamoswine') ; Relative Prob: 0.952444046505
Team: ('Aegislash', 'Heatran', 'Talonflame', 'Ferrothorn', 'Breloom', 'Mamoswine') ; Relative Prob: 0.951826907204
Team: ('Aegislash', 'Heatran', 'Talonflame', 'Gyarados', 'Breloom', 'Mamoswine') ; Relative Prob: 0.949819389784
Team: ('Aegislash', 'Heatran', 'Chansey', 'Talonflame', 'Breloom', 'Mamoswine') ; Relative Prob: 0.949038748712
Team: ('Heatran', 'Mawile', 'Talonflame', 'Breloom', 'Mamoswine', 'Terrakion') ; Relative Prob: 0.948893435165
Team: ('Aegislash', 'Heatran', 'Latios', 'Venusaur', 'Breloom', 'Mamoswine') ; Relative Prob: 0.948548365107
Team: ('Aegislash', 'Heatran', 'Talonflame', 'Breloom', 'Mamoswine', 'Deoxys-Defense') ; Relative Prob: 0.946696516406
Team: ('Aegislash', 'Thundurus', 'Heatran', 'Venusaur', 'Breloom', 'Mamoswine') ; Relative Prob: 0.946618998023
Team: ('Keldeo', 'Heatran', 'Bisharp', 'Venusaur', 'Mamoswine', 'Terrakion') ; Relative Prob: 0.946570963003
Team: ('Aegislash', 'Keldeo', 'Heatran', 'Venusaur', 'Breloom', 'Mamoswine') ; Relative Prob: 0.945235824758
Team: ('Aegislash', 'Heatran', 'Azumarill', 'Venusaur', 'Mamoswine', 'Terrakion') ; Relative Prob: 0.945059841429
Team: ('Keldeo', 'Heatran', 'Mawile', 'Talonflame', 'Breloom', 'Mamoswine') ; Relative Prob: 0.944856357661
Team: ('Heatran', 'Bisharp', 'Talonflame', 'Breloom', 'Mamoswine', 'Terrakion') ; Relative Prob: 0.943191917651
Team: ('Aegislash', 'Heatran', 'Venusaur', 'Talonflame', 'Gliscor', 'Mamoswine') ; Relative Prob: 0.941876797924
Team: ('Aegislash', 'Heatran', 'Garchomp', 'Talonflame', 'Breloom', 'Mamoswine') ; Relative Prob: 0.940398976448
Team: ('Aegislash', 'Thundurus', 'Heatran', 'Landorus', 'Breloom', 'Mamoswine') ; Relative Prob: 0.940296460016


Give me lists of pokemon, and I can tell you how the script thinks teams with them compare (if those pokemon are among the 40 most used)!
SR might have been good, Im not sure why I didnt give it to anything on the team. On Mamoswine I felt like I needed the fighting coverage, but I think running Rocks on Heatran over Protect could have helped.

Very interesting how when you use the higher percentage of the ladder the usage of Terrakion (and Landorus to a lesser degree) suddenly jumps drastically, and even replaces Talonflame on the top team.

It might be cool to see what it builds if you dont allow certain things on the team. Removing Venusaur, Heatran, and/or Mamoswine for instance should drastically change the teams it builds.
 
Hmm.
I'll have it simply save the entire output onto a spreadsheet that I can upload. Given that it'll be a list I'll I'll share with everyone, I decided to increase the team-candidates to the top 50 pokemon.
For opponents, it is looking at the 70 most used pokemon.

EDIT:
Given that a spreadsheet listing 15,890,700 teams is probably unwieldy, I'll truncate it to only listing the 5,000 teams it considers strongest.
It may be done by tomorrow afternoon (unfortunately, the last time I tried this many, it crashed eight hours in due to running out of memory).

Hopefully some of those 5,000 won't include the Venausaur/Heatran/Mamoswine core!
Is there another strong core that I could query, to see if it'll come up with results that don't include it?
 
Last edited:
Hmm.
I'll have it simply save the entire output onto a spreadsheet that I can upload. Given that it'll be a list I'll I'll share with everyone, I decided to increase the team-candidates to the top 50 pokemon.
For opponents, it is looking at the 70 most used pokemon.

EDIT:
Given that a spreadsheet listing 15,890,700 teams is probably unwieldy, I'll truncate it to only listing the 5,000 teams it considers strongest.
It may be done by tomorrow afternoon (unfortunately, the last time I tried this many, it crashed eight hours in due to running out of memory).

Hopefully some of those 5,000 won't include the Venausaur/Heatran/Mamoswine core!
Is there another strong core that I could query, to see if it'll come up with results that don't include it?
You have to have it make all of the teams and find the ones without those pokemon, you cant just remove them as options for the team (or at least filter out the results including those pokemon)? I dont know the details of your system of course so maybe thats a stupid question, but it seems like you shouldnt necessarily need to sort through the teams manually.

You could check -Clone-s suggestion for some cores. I wasnt thinking of anything in particular, I just am curious as to why mons like Blissey, Clefable, and/or Skarmory arent on the list, even when theyre obviously very versatile and strong mons (albiet not offensively).
 
Blissey is the 60th most used, so she wasn't included. Expanding it to the top 50, and Conkeldurr is back and Pinsir was considered as an option for the first time:
Team: ('Aegislash', 'Heatran', 'Venusaur', 'Talonflame', 'Mamoswine', 'Conkeldurr') ; Relative Prob: 1.0
Team: ('Heatran', 'Bisharp', 'Venusaur', 'Talonflame', 'Mamoswine', 'Conkeldurr') ; Relative Prob: 0.995704889438
Team: ('Aegislash', 'Heatran', 'Venusaur', 'Mamoswine', 'Terrakion', 'Conkeldurr') ; Relative Prob: 0.981680200784
Team: ('Aegislash', 'Heatran', 'Landorus', 'Venusaur', 'Mamoswine', 'Conkeldurr') ; Relative Prob: 0.977327642084
Team: ('Aegislash', 'Heatran', 'Venusaur', 'Breloom', 'Mamoswine', 'Terrakion') ; Relative Prob: 0.97731425977
Team: ('Aegislash', 'Heatran', 'Venusaur', 'Mamoswine', 'Conkeldurr', 'Kyurem-Black') ; Relative Prob: 0.974428635534
Team: ('Aegislash', 'Heatran', 'Breloom', 'Mamoswine', 'Terrakion', 'Pinsir') ; Relative Prob: 0.972719375407
Team: ('Heatran', 'Bisharp', 'Breloom', 'Mamoswine', 'Terrakion', 'Pinsir') ; Relative Prob: 0.967395660123
Team: ('Aegislash', 'Thundurus', 'Heatran', 'Venusaur', 'Mamoswine', 'Conkeldurr') ; Relative Prob: 0.964796454964
Team: ('Aegislash', 'Heatran', 'Venusaur', 'Talonflame', 'Breloom', 'Mamoswine') ; Relative Prob: 0.964750518857
The spreadsheet was too large to attach, but I uploaded it to google docs here.

I wonder if it has a bias in favor of pokemon weak to stealth rock? Perhaps I could add something punishing the inclusion of too many of those without a spinner/defogger.
I am also wondering if there is a bias in favor of infrequently used pokemon. Perhaps a lack of counter data is letting them look better than they are. I might have been too generous in cases of ignorance.

I could simply remove Heatran/Venosaur/Mamoswine as options. Might do that in a bet.

Anyway, top three teams for each of the cores listed in the opening post in the thread -Clone- linked us (relative probs are compared to those listed above/in the spreadsheet):
Charizard + Keldeo + Aegislash:
Team: ('Aegislash', 'Keldeo', 'Heatran', 'Charizard', 'Breloom', 'Mamoswine') ; Relative Prob: 0.80360417714
Team: ('Aegislash', 'Keldeo', 'Heatran', 'Charizard', 'Talonflame', 'Mamoswine') ; Relative Prob: 0.802793322063
Team: ('Aegislash', 'Keldeo', 'Thundurus', 'Heatran', 'Charizard', 'Mamoswine') ; Relative Prob: 0.796994799701

Deoxys-D + Aegislash + Bisharp:
Team: ('Aegislash', 'Keldeo', 'Heatran', 'Bisharp', 'Venusaur', 'Deoxys-Defense') ; Relative Prob: 0.827434024769
Team: ('Aegislash', 'Bisharp', 'Talonflame', 'Breloom', 'Mamoswine', 'Deoxys-Defense') ; Relative Prob: 0.814476139211
Team: ('Aegislash', 'Keldeo', 'Bisharp', 'Venusaur', 'Deoxys-Defense', 'Kyurem-Black') ; Relative Prob: 0.804829652244

Deoxys-D + Aegislash + Thundurus:
Team: ('Aegislash', 'Thundurus', 'Heatran', 'Breloom', 'Mamoswine', 'Deoxys-Defense') ; Relative Prob: 0.885109030778
Team: ('Aegislash', 'Thundurus', 'Heatran', 'Venusaur', 'Deoxys-Defense', 'Conkeldurr') ; Relative Prob: 0.873409960876
Team: ('Aegislash', 'Thundurus', 'Heatran', 'Mamoswine', 'Deoxys-Defense', 'Conkeldurr') ; Relative Prob: 0.869300791581

Talonflame + Pinsir:
Team: ('Aegislash', 'Heatran', 'Talonflame', 'Breloom', 'Mamoswine', 'Pinsir') ; Relative Prob: 0.931515221807
Team: ('Heatran', 'Bisharp', 'Talonflame', 'Breloom', 'Mamoswine', 'Pinsir') ; Relative Prob: 0.929622521548
Team: ('Heatran', 'Bisharp', 'Talonflame', 'Mamoswine', 'Pinsir', 'Conkeldurr') ; Relative Prob: 0.924406664493

Greninja + Mawile + Dragonite:
Team: ('Heatran', 'Mawile', 'Greninja', 'Dragonite', 'Breloom', 'Mamoswine') ; Relative Prob: 0.814118499041
Team: ('Heatran', 'Mawile', 'Greninja', 'Dragonite', 'Breloom', 'Hippowdon') ; Relative Prob: 0.78724448635
Team: ('Heatran', 'Mawile', 'Greninja', 'Dragonite', 'Breloom', 'Deoxys-Defense') ; Relative Prob: 0.786182446643

Gothitelle + Gyarados:
Team: ('Heatran', 'Talonflame', 'Gyarados', 'Breloom', 'Mamoswine', 'Gothitelle') ; Relative Prob: 0.797306307231
Team: ('Aegislash', 'Heatran', 'Gyarados', 'Breloom', 'Mamoswine', 'Gothitelle') ; Relative Prob: 0.794602553334
Team: ('Heatran', 'Gyarados', 'Breloom', 'Mamoswine', 'Sylveon', 'Gothitelle') ; Relative Prob: 0.765941055183

Politoed + Deoxys-S:
Team: ('Heatran', 'Deoxys-Speed', 'Breloom', 'Mamoswine', 'Pinsir', 'Politoed') ; Relative Prob: 0.821923618056
Team: ('Heatran', 'Deoxys-Speed', 'Mamoswine', 'Pinsir', 'Conkeldurr', 'Politoed') ; Relative Prob: 0.806076202966
Team: ('Aegislash', 'Heatran', 'Deoxys-Speed', 'Breloom', 'Mamoswine', 'Politoed') ; Relative Prob: 0.805762687802

Gardevoir + Bisharp + Heatran:
Team: ('Heatran', 'Bisharp', 'Talonflame', 'Breloom', 'Mamoswine', 'Gardevoir') ; Relative Prob: 0.902123782755
Team: ('Heatran', 'Bisharp', 'Breloom', 'Mamoswine', 'Terrakion', 'Gardevoir') ; Relative Prob: 0.875028941378
Team: ('Heatran', 'Bisharp', 'Latios', 'Breloom', 'Mamoswine', 'Gardevoir') ; Relative Prob: 0.863636403841

Heatran + Venusaur:
lol

Hippowdon + Slowbro + Zapdos:
Team: ('Breloom', 'Mamoswine', 'Zapdos', 'Slowbro', 'Pinsir', 'Hippowdon') ; Relative Prob: 0.800387096783
Team: ('Mamoswine', 'Zapdos', 'Slowbro', 'Pinsir', 'Conkeldurr', 'Hippowdon') ; Relative Prob: 0.787896575367
Team: ('Bisharp', 'Mamoswine', 'Zapdos', 'Slowbro', 'Pinsir', 'Hippowdon') ; Relative Prob: 0.77858138838

Tornadus-Therrian was the 63rd most used, so I couldn't search for it in the Slowbro + Amoonguss core. Guess it isn't too popular.

Tyranitar + Excadrill:
Team: ('Heatran', 'Tyranitar', 'Excadrill', 'Talonflame', 'Breloom', 'Mamoswine') ; Relative Prob: 0.853231407305
Team: ('Heatran', 'Tyranitar', 'Excadrill', 'Breloom', 'Mamoswine', 'Sylveon') ; Relative Prob: 0.822340611367
Team: ('Heatran', 'Tyranitar', 'Latios', 'Excadrill', 'Breloom', 'Mamoswine') ; Relative Prob: 0.816846255785

Gardevoir + Gliscor:
Team: ('Heatran', 'Talonflame', 'Breloom', 'Gliscor', 'Mamoswine', 'Gardevoir') ; Relative Prob: 0.867340743561
Team: ('Aegislash', 'Heatran', 'Breloom', 'Gliscor', 'Mamoswine', 'Gardevoir') ; Relative Prob: 0.845547405971
Team: ('Aegislash', 'Heatran', 'Gliscor', 'Mamoswine', 'Terrakion', 'Gardevoir') ; Relative Prob: 0.840522965435

Heatran + Azumarill + Latios:
Team: ('Aegislash', 'Heatran', 'Azumarill', 'Latios', 'Breloom', 'Mamoswine') ; Relative Prob: 0.886614955038
Team: ('Heatran', 'Mawile', 'Azumarill', 'Latios', 'Breloom', 'Mamoswine') ; Relative Prob: 0.87579450105
Team: ('Heatran', 'Bisharp', 'Azumarill', 'Latios', 'Breloom', 'Mamoswine') ; Relative Prob: 0.863418590501

Heatran + Azumarill + Latias:
Team: ('Aegislash', 'Heatran', 'Azumarill', 'Latias', 'Breloom', 'Mamoswine') ; Relative Prob: 0.854247235396
Team: ('Heatran', 'Mawile', 'Azumarill', 'Latias', 'Breloom', 'Mamoswine') ; Relative Prob: 0.847896898009
Team: ('Aegislash', 'Heatran', 'Azumarill', 'Venusaur', 'Latias', 'Mamoswine') ; Relative Prob: 0.838589702081

Chansey + Skarmory wasn't listed in the thread, but:
Team: ('Aegislash', 'Heatran', 'Chansey', 'Skarmory', 'Breloom', 'Mamoswine') ; Relative Prob: 0.846912840961
Team: ('Heatran', 'Chansey', 'Skarmory', 'Talonflame', 'Breloom', 'Mamoswine') ; Relative Prob: 0.81709965885
Team: ('Heatran', 'Bisharp', 'Chansey', 'Skarmory', 'Breloom', 'Mamoswine') ; Relative Prob: 0.811361693065


EDIT: A couple comments on the results above:
Interesting to see that for the latios/latias teams, for the top two the only difference in -ios vs -ias, but the third team is quite different.
It definitely rates latios as stronger than latias.
The script definitely rates mamoswine extremely highly. All but five of the teams above contained it.

I'm glad you like it Lucario! Comments like that help give me the motivation to spend the time on things like this. :)
 
Could you post your updated code? I don't know Python, but I'd like to see what all I can do with it. I may convert it to Java if you're okay with that.

Edit: Also, I've been interested in this idea for a long time. I've wanted to do this exact thing for about a year, just haven't had the time with work and school.
 
It also uses three files you can find here.
The June 1825 usage statics, saved as "ou-1825_use_june.txt", and the 1500 and 1825 chaos .json data saved as "oujune.json" and "ou-1825june.json", respectively.

Feel free to convert the code to java, or modify it in any other way you'd like.
 

Attachments

Status
Not open for further replies.

Users Who Are Viewing This Thread (Users: 1, Guests: 0)

Top