A Much Better Rating Of A Pokemon Than BST

Status
Not open for further replies.
When will you stop impressing us ._.;
bah, this thing is pretty accurate, but some stats don't come into play for some pokemon... like speed for dusknoir, it wants less of it; its the same with bronzong and the likes.

btw, chaos, we arent focusing on how good the pokemon is overall, right? maybe x-act will make another tier list and take into account other things, but he is just putting stats into tiers, not other factors.
 
I think the algorithm needs work if a ridiculously offensive threat like Deoxys-A is lumped in "Average" with nonsense like Swalot and Huntail.
Which is why two seperate lists, one with the 'Sweepiness' and one with the 'Tankiness' would be usefull. Deoxys-A would excel there, where it's defensive (in)capabilities are ignored, as they should be for it's niche.
 

X-Act

np: Biffy Clyro - Shock Shock
is a Site Content Manager Alumnusis a Programmer Alumnusis a Smogon Discord Contributor Alumnusis a Top Researcher Alumnusis a Top CAP Contributor Alumnusis a Top Tiering Contributor Alumnusis a Top Contributor Alumnusis a Smogon Media Contributor Alumnusis an Administrator Alumnus
I think what Kindred is saying is right. I'd actually go a step further and divide each Pokemon into four: physical tankiness, special tankiness, physical sweepiness and special sweepiness. Then a person can judge a Pokemon from these 4 numbers all by himself or herself, without a formula that unites them if he or she so wishes.
 

chaos

is a Site Content Manageris a Battle Simulator Administratoris a Programmeris a Smogon Discord Contributoris a Contributor to Smogonis an Administratoris a Tournament Director Alumnusis a Researcher Alumnus
Owner
I'll gladly research further on this so as to make it more optimal, if you will.

(Hopefully Shuckle doesn't end up having Fantastic stats though.)
Thanks. Just to clear up any misunderstandings, I don't think the algorithm is bad, I was just giving suggestions on how I think it could be improved :)

As for Shuckle - I'd say Shuckle is a pathological case. I don't think it's distribution of stats is necessarily bad, just that it's movepool doesn't do anything for it. After all, we aren't taking movepool into consideration, right? There is a lot you could do with those stats, given a blank slate, and I think that's what is important to acknowledge since the CaP project is basically given a blank slate. However, it wouldn't be ranked as highly as Blissey because Blissey DOES have some sweepiness - it's just a special-oriented sweepiness, which would make the physical factor matter less.

Mantine is a similar case. It's stat distribution isn't bad, it just gets fucked over by typing, which shouldn't be considered since we have a blank slate.
 

DougJustDoug

Knows the great enthusiasms
is a Site Content Manageris a Top Artistis a Programmeris a Forum Moderatoris a Top CAP Contributoris a Battle Simulator Admin Alumnusis a Smogon Discord Contributor Alumnusis a Top Tiering Contributor Alumnusis an Administrator Alumnus
Moderator
Initially, I thought chaos was beating the wrong drum, but the points he made later in his post made a lot of sense to me.

If this is purely an evaluation of stats, then Blissey should be very good -- if not amongst the very best in the entire game. Her stats are so incredibly efficient for what she does -- that she is almost broken. Her movepool is almost irrelevant. In fact, Blissey has a HUGE movepool. But other than Softboiled, Twave, and maybe Seismic Toss -- the rest is pretty much filler and gimmick moves. BLISSEY IS HER STATS. Almost her entire competitive usefulness is represented in her stats alone. And from a competitive standpoint she is in the highest echelons of OU, and has been argued to be uber. Any statistics evaluation algorithm that does not rate Blissey's stats at or near the very top - is probably not set up properly.

Breaking it up into four measurements is OK, by allowing the human brain to interpret the combined effect. But, it just seems like there should be some way to numerically derive the combined value. Unfortunately, I have no idea how that should be done.
 
Maybe you could do something where the Tankiness is more important as the speed lowers? In the sense that like, Deoxys has a really high Speed, and so the Tankiness doesnt' matter. Blissey's speed isn't as high, so the Tankiness is more relevant? Of course that isn't the only thing that matters, but I feel that that's one point at which this formula could be improved.
 

X-Act

np: Biffy Clyro - Shock Shock
is a Site Content Manager Alumnusis a Programmer Alumnusis a Smogon Discord Contributor Alumnusis a Top Researcher Alumnusis a Top CAP Contributor Alumnusis a Top Tiering Contributor Alumnusis a Top Contributor Alumnusis a Smogon Media Contributor Alumnusis an Administrator Alumnus
That would make Giratina's, Cresselia's and Uxie's tankiness not important since they have good speed though. :( Lugia and Deoxys-D too.
 
Right, that's why I didn't actually specify any formulae, cause they'd not work. If a pokemon has a good tankiness, then the speed shouldn't really affect it too much. I think the biggest thing is that unlike offensive stats, speed affects how much every stat matters.

How about this. Let's say Tankiness is the overall measure of how well it takes hits. Then, I think I'm justified in proposing that we include the Speed in your definition of tankiness. Let's say there's a pokemon with 100/100/100 defensive stats. It can take hits pretty well, and so it's ok if it takes a hit or two. At the same time we'd say that a pokemon with 1/1/1 defenses is incredibly bad at tanking hits. But if it has a really high speed then it can to some extent 'tank' better in the sense that it's going to take less hits. Does this make sense?
 

X-Act

np: Biffy Clyro - Shock Shock
is a Site Content Manager Alumnusis a Programmer Alumnusis a Smogon Discord Contributor Alumnusis a Top Researcher Alumnusis a Top CAP Contributor Alumnusis a Top Tiering Contributor Alumnusis a Top Contributor Alumnusis a Smogon Media Contributor Alumnusis an Administrator Alumnus
Whoa, I know why Blissey is ranked so low.

This ranking uses 31 IV, neutral natures and ZERO EVs in all stats. Blissey with 0 Defense EVs is actually quite bad!

You know, I do feel better already.

The cool thing is that normalized base stats can also use stats with EVs. When I put 252 EVs in Def for Blissey, its ranking jumped from 224 to 407. Not bad just by allocating 252 EVs in Def.
 
Whoa, I know why Blissey is ranked so low.

This ranking uses 31 IV, neutral natures and ZERO EVs in all stats. Blissey with 0 Defense EVs is actually quite bad!

You know, I do feel better already.

The cool thing is that normalized base stats can also use stats with EVs. When I put 252 EVs in Def for Blissey, its ranking jumped from 224 to 407. Not bad just by allocating 252 EVs in Def.
But then the ranking is assuming an intelligent use of EVs, thus not measuring raw stats anymore. And you are comparing Blissey with 252 EVs on a key stat with every other pokémon with no EVs at all. Taking IVs into account is a given because, from a competitive standpoint, they're really part of the base stats, since we assume IVs maxed. But EV distribution needs a choice, and that's something stats alone can't measure.

Listing physical and special tankiness and sweepiness is the way to go, in my opinion. Much better than a look at the base stats, and much more specific than combining all of them. They say how proficient is each pokémon at very comparable aspects, so it's easy to tell how good are a pokémon stats by seeing how each category ranks among the rest.
 

DougJustDoug

Knows the great enthusiasms
is a Site Content Manageris a Top Artistis a Programmeris a Forum Moderatoris a Top CAP Contributoris a Battle Simulator Admin Alumnusis a Smogon Discord Contributor Alumnusis a Top Tiering Contributor Alumnusis an Administrator Alumnus
Moderator
Perhaps when combining individual measurments, the ranking in a category could affect the amount that measurement contributes to the overall score. Very high rankings would have a multiplied impact on the combined total. Average or low rankings would have no multiplier.

Basically, if you are very, very good at something -- that adds more to your overall effectiveness than being bad detracts from your overall effectiveness. I don't know what multiplier should be used and at what point the "accelerator" should kick in.
 
The most obvious weighting is a linear one: I'll call the 4 stats PT, ST, PS and SS. Then the ranking could be:

Rank = PT*(PT/(PT+ST+PS+SS)) + ST*(ST/(PT+ST+PS+SS)) + PS*(PT/(PT+ST+PS+SS)) + SS*(PT/(PT+ST+PS+SS)) = (PT^2 + ST^2 + PS^2 + SS^2)/(PT+ST+PS+SS)

However, we can't use the formula in this form, since the defensive and offensive ratings have different magnitudes because of the way they are calculated. Since I'm adding them, that's important. And there isn't a factor that is constant throughout all base stats that can make them equal, either (for example, the ratio between phisical tankiness and sweepiness on a base 50 HP 50 Attack, 50 Defense and 50 Speed pokémon is 33, while on a 100/100/100/100 pokémon it is only 23.


So, yeah, all of this means I don't know how to weigh them properly. Damn.
 

X-Act

np: Biffy Clyro - Shock Shock
is a Site Content Manager Alumnusis a Programmer Alumnusis a Smogon Discord Contributor Alumnusis a Top Researcher Alumnusis a Top CAP Contributor Alumnusis a Top Tiering Contributor Alumnusis a Top Contributor Alumnusis a Smogon Media Contributor Alumnusis an Administrator Alumnus
I think I have a big eureka moment right now. I think I've managed to made the rating even better.

Not only that. I also found a formula for knowing whether a Pokemon is offensive, defensive or balanced, and another one for knowing whether a Pokemon is physical, special or both.

I'll be testing them tomorrow to be sure that they're fine, and then I'll post them tomorrow. It's also almost 1am here and I need to go to bed.
 

dekzeh

B is for BRUTUS
is a Tournament Director Alumnusis a Forum Moderator Alumnusis a Past WCoP Champion
I wonder if it would be possible to get the 'best' EV spread for each pokemon (the one who gives it the best overall stats, according to this algorithm), and then make a list considering every pokemon has the 'best' possible EV spread.
That would be way more accurate I think...

Not sure if you understood what I mean, my english isn't that good and sometimes I just can't say exactly what I want to say >_>
 
Mabye use the Speed thingy as a multiplier against Tankiness and Sweepiness? EG If it's got a speed thingy of .87, then multiply the sweepiness by 1.13? and .87 against the tankiness.
 
From looking at it, I don't see why a chart is needed for the speed factor. (base_speed - 10)/140 looks like it would work just fine. I'd suggest testing it.

I think that a good rating would be the expected number of opponents a pokemon can take down before fainting.

Code:
Let DH = expected number of hits needed to take down the pokemon
Let AH = expected number of hits the pokemon needs to take down an opponent

R = SF*(DH/AH) + (1-SF)*((DH-1)/AH)
R = (SF*DH + (1-SF)*(DH-1))/AH
R = (DH+SF-1)/AH
I don't know exactly how to calculate AH and DH but I've seen X-Act throw around 630/(SpA + Atk) for AH so it's probably quite simple.

Anyway, the rationale is as follows: if you are the fastest, you will hit as many times as you get hit, so if you kill in 2 hits and get killed in 1 hits, you will take down 0.5 pokemon; if you kill in 3 hits and get killed in 2 hits, you will take down 0.66 pokemon. And so on. On the other hand, if you are slower, you will hit one LESS times than you get hit: if you kill in 2 hits and get killed in 1 hit, you will not even get the chance to attack. Hence the (DH-1) term. Since SF is the probability that you are faster, you just linearly combine the two cases.

Now, the problem is, this only works well when AH > DH... indeed, if you are faster and take down pokemon in 1 hit and get taken down in 2 hits, technically, you'll take down more than 2 pokemon because the pokemon you faint can't fight back and the next in the line is unlikely to get priority. Basically you get freebies. But this does not really matter, for when AH < DH we can calculate the number of instances of the pokemon the opponent can take down:

Code:
R1 = (DH+SF-1)/AH # number of opponents you can beat
R2 = (AH-SF)/DH # number of you your opponent can beat

# and now we compare AH to DH to choose a rating!
R = when AH > DH then R1-1
    when AH == DH then 0
    when AH < DH then 1-R2
This gives a rating that is negative for bad pokemon and positive for good pokemon. More precisely, it ranges from -1 to 1 if we carefully avoid such absurdities as pokemon fainting in less than one turn or taking less than one turn to KO an opponent.

Also, to refine the rating, you could calculate ratings for each type combination to multiply to DH and AH. Basically, the expected type modifier. Which you can further refine by considering the expected power of special/physical attacks of that type.

Note: I have to mention that I have not tested the rating. I don't plan to either, though I kind of wonder if it does work.
 

X-Act

np: Biffy Clyro - Shock Shock
is a Site Content Manager Alumnusis a Programmer Alumnusis a Smogon Discord Contributor Alumnusis a Top Researcher Alumnusis a Top CAP Contributor Alumnusis a Top Tiering Contributor Alumnusis a Top Contributor Alumnusis a Smogon Media Contributor Alumnusis an Administrator Alumnus
The post above is roughly the way that the rating I posted works.

My rating basically works as follows:

Rating is proportional to the average damage done to all Pokemon divided by the average damage received from all Pokemon

So if Rating > 1 you stand to deal more damage than you're expected to take, and vice-versa if Rating < 1. Of course, the rating I posted was normalized to have a better number than just a decimal, but you get the gist.

Both of these (average damage done to all Pokemon and average damage received from all Pokemon) take Speed considerations basically in the same way as Brain's does.

The thing is that after I simplified everything, the equation turned out to divide neatly into a product of two functions: one that involves only HP, Def and SpD, and one that involves only Atk, SpA and Spe.

What you wrote Brain will result into a rating that's similar to mine, I think. It will also give Blissey too low a rank due to its low Defense, and I think will suffer from the same anomalies.

About the speed factor, (base-10)/140 overestimates the speed factor by quite a large margin for base speeds lower than 50 if you use the normalized Spe stat instead of the base Spe. If you use the real base Spe, it then underestimates most of the speed factors larger than 50. ._.
 
This is really quite clever, and I commend you.

However, I think the math behind stats only plays a [large] part in how good a Pokemon is, and the types/weaknesses/movepool plays the other part. For example, two Pokemon may have the same range in stats on this list, but one may have fewer weaknesses and/or a much better movepool that would warrant a slight increase in how 'good' it is.

I think you should try to integrate at least the number weaknesses and the type coverage of its STAB moves into the equation somehow.
 

chaos

is a Site Content Manageris a Battle Simulator Administratoris a Programmeris a Smogon Discord Contributoris a Contributor to Smogonis an Administratoris a Tournament Director Alumnusis a Researcher Alumnus
Owner
This is really quite clever, and I commend you.

However, I think the math behind stats only plays a [large] part in how good a Pokemon is, and the types/weaknesses/movepool plays the other part. For example, two Pokemon may have the same range in stats on this list, but one may have fewer weaknesses and/or a much better movepool that would warrant a slight increase in how 'good' it is.

I think you should try to integrate at least the number weaknesses and the type coverage of its STAB moves into the equation somehow.
"we know"
 
I think this is a wonderful thing you have made here. First off, people need to realize this is not a way to rate pokemon, and nobody said it was. It's a way to rate their stats, and it's a good one. The only problem I see is that Sweepiness and Tankiness are combined into a grand total, because when your sweepiness is good your tankiness is less relevant so it shouldn't be bringing your overall stat ranking down. I think it would be better if the higher your sweepiness the less your tankiness contributes to the total score, in an inverse relationship.
 
Status
Not open for further replies.

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

Top