Ok thanks for the help

# More Yomi Data

**Nopethebard**#142

I’m not on it yet but my question is “should I have heard of more than maybe 5% of these people?”

**vengefulpickle**#145

Yeah, most of the > 1700 folks were gone when I started (about 1.5 years ago, I guess?), and we’ve had more attrition since then.

**CKR**#148

@mysticjuicer is a .

I know it. He knows it. Through some sort of devil magic, he still convinces me to attack.

**vengefulpickle**#150

Ok, last dump of this data for a while, I think. This is for a model weighted towards more skill players. The character charts are based on win chance against best player with their best character (assuming an even matchup).

## Character Skill Levels

## A-C

## D-F

## G-I

## J-L

## M-O

## P-R

## S-U

## V-Z

## Most Even MUs

Character | Counterpick |
---|---|

## The Model

```
data {
int<lower=0> NG; // Number of games
int<lower=0> NM; // Number of matchups
int<lower=0> NP; // Number of players
int<lower=0> NC; // Number of characters
int<lower=0, upper=1> win[NG]; // Did player 1 win game
int<lower=1, upper=NM> mup[NG]; // Matchup in game
vector<lower=0, upper=1>[NG] non_mirror; // Is this a mirror matchup: 0 = mirror
int<lower=1, upper=NC> char1[NG]; // Character 1 in game
int<lower=1, upper=NC> char2[NG]; // Character 2 in game
int<lower=1, upper=NP> player1[NG]; // Player 1 in game
int<lower=1, upper=NP> player2[NG]; // Player 1 in game
vector[NG] elo_logit; // Player 1 ELO-based logit win chance
vector[NG] obs_weights;
}
parameters {
vector[NM] mu; // Matchup value
vector<upper=0>[NP] char_skill[NC]; // Player skill at character
real elo_logit_scale; // elo_logit scale
}
transformed parameters {
vector[NG] player_char_skill1;
vector[NG] player_char_skill2;
vector[NG] win_chance_logit;
for (n in 1:NG) {
player_char_skill1[n] = char_skill[char1[n], player1[n]];
player_char_skill2[n] = char_skill[char2[n], player2[n]];
}
win_chance_logit = (player_char_skill1 - player_char_skill2) + non_mirror .* mu[mup] + elo_logit_scale * elo_logit;
}
model {
for (n in 1:NC) {
char_skill[n] ~ std_normal();
}
mu ~ normal(0, 0.5);
elo_logit_scale ~ std_normal();
for (n in 1:NG) {
target += bernoulli_logit_lpmf(win[n] | win_chance_logit[n]) * obs_weights[n];
}
}
generated quantities{
vector[NG] log_lik;
vector[NG] win_hat;
for (n in 1:NG) {
log_lik[n] = bernoulli_logit_lpmf(win[n] | win_chance_logit[n]) * obs_weights[n];
win_hat[n] = bernoulli_logit_rng(win_chance_logit[n]);
}
}
```

**thehug0naut**#152

Awesome work here. The latest few MU charts are

I’m not clear on which charts this affects and how that is different to before? Were previous charts looking at win chance vs the average player?

**vengefulpickle**#153

It’s actually just about the scale of the y axis. The previous icicle charts had a scale with units of logits. Easy to sum up with other logit values, but hard to really understand. The last set converts those to win probabilites, but has to do that by assuming certain other conditions (because the “value” of a logit is non-linear in win-chance scale).

**vengefulpickle**#154

I just can’t help myself, this project keeps pulling me back in.

I just published http://vengefulpickle.com/yomi-skill/

It’s in need of better legend, but you can play with it now. Try putting your handle into the Player box, and your upcoming IYL opponent into the Opponent box. The upper end of the bar chart gives the probability that each matchup has a particular win rate (and the color gives the overall expected win-rate for that MU). Hovering over the bars will break down the details.

The lower half of the bar chart gives the player-adjusted versions of those same probabilities. This factors in your skill in a character, your opponents skill in the character, and your relative Elo levels (as of the last time the model was run).

Have fun!

**mysticjuicer**#156

Same. I enter player and opponent name but when I click ‘graph’ nothing happens. Tried on Chrome and Internet Explorer.

**ArthurWynne**#157

And third time is not the charm, either.

Edit: Actually it was!

It worked for me, and it looks beautiful. It just takes a long time to load and gives no indication that it’s in progress. But great work, @vengefulpickle!

**vengefulpickle**#158

Oh, yeah, it definitely has some processing time. I’ll put “spinner” on the todo-list. And possibly a message display in the case that something does blow up.

Until then, if there are errors, they’ll show up in the developer console (`Ctrl+Shift+K`

in Firefox, `Ctrl+Shift+I`

in Chrome), and I’d love to get them (either in this thread or in PM).

**vengefulpickle**#160

Done! There’s now a loading spinner, and it’s the Yomi arrows. (That took me longer to implement than I really want to admit, and most of it was just making it so that the arrows actually spun around their center…)