Finding your ideal team, with math? (Destiny)

by ckamp, Friday, February 13, 2015, 18:39 (3382 days ago)
edited by ckamp, Friday, February 13, 2015, 18:56

So I was playing with Beardfade the other day and he had the idea to use Destiny's API to create a site/app or something that could compare your crucible performance as you played with various teammates. The end result would be a way to help you find your ideal teammate.

Great idea. But it has some challenges... How do you measure collaborative performance? I imagine it would use some sort of formula based upon a number of stats, but how do you construct that stat? Do you weight K/D? Combined (K/D) Maybe, but that may not account for teamwork, assists, etc. Do you weight wins? There is good reason to prioritize this category, but it doesn't help if the two of you are the good players on a team of randoms who are terrible.

Is there a way to use these stats in a way to generate a good picture of how you perform with various other players?

I was thinking of something like this:

Score range: 0-1. The closer to 1 the better.

1/3 is combined performance
1/3 is individual performance with that player
1/3 is based on win/loss stats

I know where some of the holes in the following formulas are, but it'd be helpful if there were other eyes on this so that you could spot any weak points or if you have different suggestions on how things could be weighted.

Combined Performance:

This is the spread of both of your total kills and deaths. Assists are ignored because this is a combined category so hopefully your assists with this person ended up in a kill for them (not perfect bc assists could go to other teammates, but...)

This is then run through an arctan function to normalize values between 0 and 1. A spread of 0 yields .5 Higher spreads push you closer to 0 or 1 depending on their value but you can never reach 0 or 1.

= (1/π)arctan[(player1kills-player1deaths)+(player2kills-player2deaths)]+0.5

Individual Performance:

This is your individual kill-death spread. This will differentiate your score from theirs. They could be great, and you could be less skilled so you may play best with them, but they may not play best with you or the other way around.

This is also run through the arctan function to normalize values.

*I'd like to add some weight to assists in this category but I don't know how to balance it.

= (1/π)arctan[player1kills-player1deaths]+0.5

Win/Loss factors:

Part of your score should reflect win/loss outcomes. I didn't want it to be entirely reflective of % (wins/totalgames) because this would bias people who've only played one game together (either full credit or no credit). I also didn't want it to be fully dependent on spread (wins-losses) because people who had more games together have a greater opportunity to increase this number). So I split it 50/50.

The first half rewards your immediate score giving it a range between 0 and 1. The second half rewards your score over time giving it a range between 0 and 1. These are both multiplied by 1/2 for a combined total between 0 and 1.

=(1/2)[2*wins/totalgames-1] + (1/2)(1/π)arctan[wins-losses]

Final formula:

Score =

1/3*((1/π)arctan[(player1kills-player1deaths)+(player2kills-player2deaths)]+0.5)
+
1/3*((1/π)arctan[player1kills-player1deaths]+0.5)
+
1/3*( (1/2)[2*wins/totalgames-1] + (1/2)(1/π)arctan[wins-losses])


Final thoughts:

The arctan function is used a lot to bring scores into a range between 0 and 1. It also gives more weight to changes that are closer to neutral than those on the extreme. ie it it is a lot easier to move from .5 to .6 than it is to move from .8 to .9. The formula has a heavy bias towards playing well together over time. For instance, if you play one game together and do well, you will still have a limit on the total k-d spread. But if you play well together over time, that # becomes bigger and bigger.

Are there other factors that should be accounted for? Should the weighting be different. Should the scale be larger (1-100) to make it more intelligible? How do we deal with the perception that 75% = C = average when this scale is neutral at 0.5? Does that matter?

And finally: would this type of information be valuable to you?


Complete thread:

 RSS Feed of thread