2011-09-22 9 views
7

Estoy buscando crear un sistema de clasificación para los usuarios en un sitio de juegos.Porcentaje de victorias ponderadas por el número de juegos jugados

El sistema debe basarse en un porcentaje de victorias ponderado, siendo el elemento ponderado el número de juegos jugados.

Por ejemplo:

55 victorias y 2 derrotas = 96% porcentaje de victorias

1 Consigue y 0 pérdidas = 100% porcentaje de victorias

El primer registro debe rango más alto debido a que tienen una mayor número de victorias. Estoy seguro de que las matemáticas son súper simples, simplemente no puedo entenderlo. ¿Alguien puede ayudar?

Respuesta

4

ELO es más completo, ya que considera que la fuerza del oponente al anotar una victoria o pérdida, pero si los oponentes se emparejan al azar un enfoque de efecto simple y muy es:

(WINS + constante * Promedio de victorias% de todos los jugadores)/(Wins + Losses + constant)

Así que con 0 juegos la fórmula es el promedio para todos los jugadores, ya que aumenta el número de juegos jugados, la fórmula converge en el registro real. La constante determina qué tan rápido lo hace y probablemente pueda salirse con la suya eligiendo algo entre 5 y 20.

-1

sí, es "súper simple":

Percentage = Wins * 100.0/(Wins + Losses) 

Para redondear a un entero que suelen utilizar round o Math.round (pero no se ha especificado un lenguaje de programación).

El valor podría ser ponderado del número de victorias, utilizando la relación dada:

Rank = Wins * Wins/(Wins + Losses) 

pero hay otros sistemas que entienden mejor el problema, como Elo (ver mi comentario).

+0

Hola, gracias por la respuesta. Creo que esa es la fórmula básica para el porcentaje de victorias, pero no tiene en cuenta el elemento ponderado. 1 * 100/1 = 100 y por lo tanto mayor que el primer registro.Quizás mi unidad final de clasificación no debería ser un porcentaje para esto, sino un número entero que se me ocurre a través de algún proceso. –

+0

Bueno, ¿qué podría considerarse un peso? La cantidad de juegos jugados no sería ya que eso ya se refleja en la proporción de victorias y derrotas en mi respuesta. Yo diría que un mejor peso sería el nivel de habilidad de los oponentes contra los que jugó el jugador (por ejemplo, una proporción de victorias y derrotas). Pero este problema ya está resuelto, por ejemplo, en el sistema de clasificación de Elo (haga una búsqueda en la web para ese término). –

+0

Claro, veré el Elo. He estado viendo RPI y BCS como ejemplos de deportes también. Creo que voy a pensar un poco más sobre cómo y por qué quiero hacer esto y me pondré en contacto contigo. Gracias por la ayuda. –

0

Otra posibilidad sería mi respuesta al How should I order these “helpful” scores?. Básicamente, use el número de victorias para determinar el rango de posibilidades probables para la probabilidad de que el jugador gane un juego, luego tome el extremo inferior. Esto hace que 55-2 venza 1-0 para cualquier elección razonable del nivel de confianza. (Sin una razón para hacer lo contrario, sugiero configurarlo al 50% - ver la publicación para los detalles, que en realidad son muy simples.)

Como pequeña nota técnica: He visto algunas sugerencias para use el intervalo de Wald en lugar de Agresti-Coull. Prácticamente, dan los mismos resultados para grandes entradas. Pero hay buenas razones para preferir Agresti-Coull si la cantidad de juegos es pequeña. (Por cierto, se me ocurrió esta idea por mi cuenta — aunque seguramente no fui el primero — y solo después descubrí que era algo estándar.)

0

¿Qué le parece puntuación = (puntos por ganancia) * (número de victorias) + (puntos por pérdida) * (número de pérdidas), donde los puntos por victoria son algunos números positivos y los puntos por pérdida son algunos números negativos, elegidos para que funcionen bien para su aplicación.

Cuestiones relacionadas