Every other teambuilder ranks partners by how often they appear together(so why doesn't k2dex?)
If you've ever used Pikalytics, Smogon's usage stats, or almost any teambuilding site, you've seen a table like the one below. Pick a Pokémon, and it shows you the teammates it appears with most often. It's computed by the simplest possible method: go through every team in the data, and for every pair of Pokémon on it, add one to their shared count. That's co-occurrence, and it's the engine behind nearly every teambuilder except this one.
It's a powerful tool, but in principle it has a blind spot: co-occurrence can't tell the difference between two Pokémon that genuinely work together and two Pokémon that are simply both popular. If Garchomp is on half of all teams and Sinistcha is on another 40%, they'll land on the same team constantly, purely by chance, even if neither cares about the other, and the table reports that as "synergy" all the same.
The k2dex model is built to see past this. Instead of counting pairs, it fits a coupling between every pair of Pokémon that has to explain the team data as a whole, holding everything else constant. That's the difference between "how often do these two appear together?" and "do these two appear together more than their individual popularity would predict?" To see what that's worth, use the comparison below and let each method finish the team: counting fills the open slots with its top teammates, while k2dex runs the same sampler the completer uses and returns its single most-likely team.
Try a few, and you'd be justified in raising an eyebrow: both teams are usually sensible. At the level of which Pokémon, popularity and real synergy mostly point the same way, so counting is a strong baseline. k2dex's team is often a little tighter, earning a higher coherence (the total strength of the couplings holding it together) and landing closer to a team someone actually brought to a tournament, but that difference alone isn't significant enough to justify the advanced machinery of k2dex.
So, if counting works this well, why bother going further? Because co-occurrence isn't how real teams are built. The strongest teams aren't constructed by picking six synergistic Pokémon and slapping the most popular set on each. A good teambuilder, whether human or machine, needs to ensure that every Pokémon, item, ability, nature, move, and EV point is chosen holistically, each decision contributing to an overall goal.
The problems with co-occurrence surface as soon as you begin considering more of a Pokémon's attributes: item, ability, nature, and moves. Usage stats don't consider how these choices interact across Pokémon, while the Boltzmann learning employed by k2dex is designed to understand exactly these effects. Looking at items specifically: item can often define a Pokémon's role, and with it, everything about who it wants as a teammate.
For example, Charizard and Garchomp pair together quite well in Regulation M-B: Garchomp can spam its Earthquakes without fear, and Charizard can comfortably take Fairy or Ice moves intended to delete Garchomp, while Garchomp is a safe switch-in for the Rock, Water, and Electric moves that threaten Charizard. However, if Charizard is holding Charizardite X that relationship collapses: suddenly, Garchomp can't click Earthquake without threatening its partner with super-effective damage, and Charizard no longer resists Fairy moves and indeed now shares Garchomp's Dragon weakness. They also compete for the same slot: a strong, fast Dragon-type physical attacker. The k2dex model learns this relationship effortlessly, and the teams it builds reflect that understanding.
×
×
×
This is the piece no co-occurrence teambuilder can replicate, because the information simply isn't in the counts. To know that Charizardite X quietly breaks the Garchomp pairing, you have to model the item as part of the Pokémon, which is exactly what k2dex does. Some teambuilders treat Mega Pokémon separately from their base formes which does mitigate this problem, but only for Mega stones. Understanding how other items affect a Pokémon's role, such as the difference between Life Orb and Choice Scarf Basculegions, requires advanced modelling. That fact only becomes more true as you begin to consider abilities, natures, and moves, and is the driving philosophy behind k2dex.