2009-10-20 22 views
5

Tengo los siguientes jugadores, cada valor corresponde a un resultado en porcentaje de respuestas correctas en un juego determinado.Algoritmo para encontrar jugadores buenos y confiables

$players = array 
(
    'A' => array(0, 0, 0, 0), 
    'B' => array(50, 50, 0, 0), 
    'C' => array(50, 50, 50, 50), 
    'D' => array(75, 90, 100, 25), 
    'E' => array(50, 50, 50, 50), 
    'F' => array(100, 100, 0, 0), 
    'G' => array(100, 100, 100, 100), 
); 

Quiero ser capaz de recoger los mejores jugadores, pero también quiero tener en cuenta el grado de fiabilidad es un jugador (menos entropía = más fiable), hasta ahora no hemos llegado con la siguiente fórmula :

average - standard_deviation/2 

Sin embargo, no estoy seguro de si esta es una fórmula óptima y me gustaría escuchar su opinión al respecto. He estado pensando un poco más en este problema y he llegado a una fórmula ligeramente diferente, aquí está la versión revisada:

average - standard_deviation/# of bets 

Este resultado sería entonces ponderado para la próxima próxima votación , por ejemplo, una nueva apuesta del jugador C solo contaría como la mitad de una apuesta.

No puedo entrar en detalles aquí, pero este es un proyecto relacionados con el Wisdom of Crowds theory y la Delphi method y mi objetivo es predecir la mejor manera posible los siguientes resultados ponderación apuestas pasadas de varios jugadores.

Agradezco toda la entrada, gracias.

+2

tratando de elegir el mejor equipo de fútbol de fantasía? :) – Kip

+0

@Kip: No del todo, pero cerca. =) –

+1

Re a su idea adicional (en negrita). ¡Felicitaciones, casi has reinventado el error estándar de la media! Si usaba promedio - 2 * stdev/sqrt (numBets), tendría el límite inferior en el intervalo de confianza del 95% que rodea la media. Ese valor es una forma no del todo descabellada de seleccionar los mejores predictores. – Harlan

Respuesta

3

En primer lugar, no utilizaría la Desviación estándar si sus matrices de datos tienen solo unas pocas entradas. Use medidas estadísticas más sólidas como Mediana Desviación absoluta (MAD), del mismo modo es posible que desee probar utilizando la Mediana en lugar del Promedio.

Esto se debe a que, si su "conocimiento" de las apuestas de los jugadores se limita a unas pocas muestras, sus datos estarán dominados por valores atípicos, es decir, el jugador tendrá suerte/mala suerte. Los medios estadísticos pueden ser totalmente inapropiados en esas circunstancias y es posible que desee utilizar algún tipo de enfoque heurístico.

Supongo por sus enlaces, que de hecho no tiene la intención de elegir el mejor jugador, sino que basándonos en los jugadores el siguiente conjunto de respuestas "A" quiere predecir el conjunto correcto de respuestas "C" pesando " A "basado en el historial anterior de los jugadores.

Por supuesto, si hubiera una buena solución a este problema, podría hacer una matanza en el mercado de valores ;-) (El hecho de que nadie lo haga, debería ser una indicación de la existencia de tal solución) .

Pero volviendo a clasificar a los jugadores. Su problema principal es que usted (¿tiene que?) Tomar el porcentaje de respuestas correctas distribuidas equitativamente del 0--100%. Si la prueba contiene múltiples preguntas, este no es el caso. Me gustaría ver lo que un jugador completamente aleatorio "R" anota en la prueba y construir un número de confianza relativa basado en cuánto mejor/peor que "R" es un jugador real dado.

Digamos que, para cada ronda del juego, generamos un millón de jugadores aleatorios y observamos la distribución de los puntajes. Usa la distribución como un peso para los puntajes reales de los jugadores. Luego combine los puntajes ponderados usando MAD y calcule la Mediana - MAD/algún número, como ya sugirió.

+0

Excelente respuesta, pero en este caso, ¿por qué sería mejor usar MAD/mediana que la desviación estándar/promedio? –

+0

Si sus datos tienen una n baja (es decir, puntos de datos), entonces la desviación estándar (s) y el promedio (media) no son muy confiables. Por ejemplo, la desviación estándar (s_m) de la media es s/sqrt (n). Si tiene n = 4 como en su ejemplo, la media en sí misma solo es exacta al 50% de los datos. En estas situaciones, MAD y Median son más robustas. Además, usar s y mean requiere que usted asuma una distribución normal para las respuestas de cualquier jugador con el tiempo. Este puede o no ser el caso dependiendo de la configuración del juego y su opinión sobre la toma de decisiones humanas. – Timo

4

¿Sería bueno un Bayesian Probablity Formula?

Creo que sí. Aquí hay un enlace a otro sitio que es un poco menos matemático al respecto: http://www.experiment-resources.com/bayesian-probability.html

Básicamente está pronosticando la probabilidad de que cada jugador obtenga el puntaje más alto en la siguiente ronda. Esto es lo que las probabilidades bayesianas comen en el desayuno.

Probabilidades bayesianas ya están en uso en video games (advertencia: archivo .doc) para determinar cosas como esta.

+0

He solucionado el error, pero recuerde la probabilidad! = Probabilidad cuando se habla de estadísticas. – nlucaroni

+0

Parece demasiado complicado para mis habilidades matemáticas, ¿quizás no te importaría mostrarme un ejemplo en (pseudo) código? –

1

Creo que puede tener razón en que quiere algún tipo de combinación lineal de los dos factores, pero creo que necesitaríamos saber más acerca de lo que hace para saber cuáles serían las constantes reales ...

+0

Gracias por su aporte, por favor revise mi actualización. Si necesita más información solo diga la palabra. –

3

Hm. Esto haría que un jugador (100,100,100,60) sea calificado peor que un jugador (85,85,85,85). ¿Por qué no tomar también en cuenta el% de puntos totales?

Me gusta: porcentaje de puntos totales (por ejemplo, 0..1) multiplicado por su cálculo actual.

+0

Gracias por su respuesta, por favor revise mi actualización. –

7

No se puede obtener una fórmula óptima si no se ha cuantificado lo que es mejor. Necesita averiguar cómo desea comparar la consistencia con el promedio. Por ejemplo, una opción sería estimar el puntaje que el jugador alcanzará un determinado porcentaje de juegos. Esto requiere algún tipo de modelo de la distribución de probabilidad de la puntuación de los jugadores. Por ejemplo, si suponemos que los puntajes de los jugadores siguen la distribución normal, entonces la fórmula dada calcula el puntaje que el jugador superará aproximadamente el 70% del tiempo.

+0

La cuestión es que no tengo idea de qué es mejor, comencé solo con el promedio, pero pensé que introducir la desviación también podría ser una buena idea ... Por favor revisa mi actualización para tener una idea de lo que intento hacer, tal vez esto aportaría más información sobre mi pregunta. –

1

Bueno, el "simple extensión" es sólo la adición de un peso y unos límites:

media (jugador) - min (superior, peso * entropía (el jugador))

Sin embargo, dada la conjunto de datos actual, podría no estar preocupado con el "porcentaje de respuesta correcta" sino mirar la diferencia de puntuación por juego, si esa es una opción.

2

¿Has considerado usar la mediana? Se considera un valor más robust statistic (menos afectado por valores atípicos) que el promedio. En sus datos, obtiene medianas de: 0, 25, 50, 82.5, 50, 50, 100.

¿Eso parece ser lo que intuitivamente quiere? Estoy de acuerdo con otros en que no hay una "respuesta correcta" aquí.

+0

Lo siento por una pregunta tan básica, pero ¿cómo puedo determinar la mediana? –

+1

(google es tu amigo!) Para cada jugador, ordena la matriz, luego, si hay un número impar de valores, elige la del medio, de lo contrario elige el promedio de los dos medios. Cualquier biblioteca de estadística también tendrá una función mediana. – Harlan

Cuestiones relacionadas