For my PvE approach, I filtered the dataset for decks similar to our opponent’s deck (the rule I used was “decks with at least eight different card types”), and looked at which single card inclusion (zero vs. one-or-more) yielded the best win rate. Then I further filtered for matchups that included that card and looked at adding an additional copy of that card vs. adding a different card. I repeated this process until I had filled eight or so slots (I think I had AADEELLL____) and then filled the rest with generally-good diverse cards (PPSV).
For PvP, I guessed that lots of people would find similar Lotus ramp decks to my PvE deck, so I filtered the dataset for decks with a lot of Lotuses and a lot of Angels+Dragons+Emperors. I then used the same process as above to fill one card at a time until I had PPPPSSSS____. At this point, there were very few matchups in the dataset that passed the filters, so I wasn’t confident in how to finish the deck, but the process was weakly pointing to Emperor and Vigilante, and I wanted a bit more diversity, so I filled it out with EEEV.
Interesting! It looks to me like your initial algorithm was excellent but your ‘filling-out’ process may have shot you in the foot a little: both of your decks ended up sort of indecisive about whether to go for aggro or ramp. Your PVP deck would have done much better with more Pirates and Swords rather than switching over to Emperors, and your PVE deck would have done much better with more ramp stuff rather than switching to Pirates and Swords.
For my PvE approach, I filtered the dataset for decks similar to our opponent’s deck (the rule I used was “decks with at least eight different card types”), and looked at which single card inclusion (zero vs. one-or-more) yielded the best win rate. Then I further filtered for matchups that included that card and looked at adding an additional copy of that card vs. adding a different card. I repeated this process until I had filled eight or so slots (I think I had AADEELLL____) and then filled the rest with generally-good diverse cards (PPSV).
For PvP, I guessed that lots of people would find similar Lotus ramp decks to my PvE deck, so I filtered the dataset for decks with a lot of Lotuses and a lot of Angels+Dragons+Emperors. I then used the same process as above to fill one card at a time until I had PPPPSSSS____. At this point, there were very few matchups in the dataset that passed the filters, so I wasn’t confident in how to finish the deck, but the process was weakly pointing to Emperor and Vigilante, and I wanted a bit more diversity, so I filled it out with EEEV.
Interesting! It looks to me like your initial algorithm was excellent but your ‘filling-out’ process may have shot you in the foot a little: both of your decks ended up sort of indecisive about whether to go for aggro or ramp. Your PVP deck would have done much better with more Pirates and Swords rather than switching over to Emperors, and your PVE deck would have done much better with more ramp stuff rather than switching to Pirates and Swords.