2009-10-20 16 views
5

Mam następujących graczy, każda wartość odpowiada wynikowi w procentach poprawnych odpowiedzi w danej grze.Algorytm szukania dobrych, niezawodnych graczy

$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), 
); 

Chcę być w stanie odebrać najlepszych graczy, ale chcę też brać pod uwagę w jaki sposób niezawodny gracz jest (mniej entropia = bardziej wiarygodne), do tej pory mam wymyślić wzoru :

average - standard_deviation/2 

Jednak nie jestem pewien, czy jest to optymalna formuła i chciałbym usłyszeć twoje przemyślenia na ten temat. Myślałam trochę więcej na ten problem i mam wymyślić nieco innej formule, tutaj jest to poprawiona wersja:

average - standard_deviation/# of bets 

Wynik ten będzie następnie ważone dla następnego nadchodzącym głosowaniu , więc na przykład nowy zakład od gracza C będzie liczony jako połowa zakładu.

nie mogę wchodzić w szczegóły tutaj, ale jest to projekt związany z Wisdom of Crowds theory i Delphi method a moim celem jest, aby przewidzieć jak najlepiej kolejne wyniki przeszłe zakłady o masie od kilku graczy.

Doceniam wszystkie dane wejściowe, dziękuję.

+2

próbuje wybrać najlepszą drużynę piłkarską fantasy? :) – Kip

+0

@Kip: Nie całkiem, ale blisko. =) –

+1

Ponownie (pogrubiony) dodatkowy pomysł. Gratulacje, już prawie odkryłeś standardowy błąd średniej! Jeśli użyłeś średniej - 2 * stdev/sqrt (numBets), będziesz miał dolną granicę przedziału ufności 95% otaczającego średnią. Ta wartość jest nie do końca nieuzasadnionym sposobem wyboru najlepszych predyktorów. – Harlan

Odpowiedz

3

Po pierwsze, nie użyłbym standardowego odchylenia, jeśli macierze danych mają tylko kilka wpisów. Użyj bardziej solidnych miar statystycznych, takich jak Median Absolute Direction (MAD), podobnie możesz chcieć przetestować używając Median zamiast Average.

Wynika to z faktu, że jeśli twoja "wiedza" o zakładach graczy jest ograniczona do kilku próbek, twoje dane będą zdominowane przez wartości odstające, tj. Gracz ma szczęście/pecha. Środki statystyczne mogą być całkowicie nieodpowiednie w tych okolicznościach i możesz chcieć zastosować jakąś formę heurystycznego podejścia.

Zakładam też z twoich linków, że w rzeczywistości nie zamierzasz wybrać najlepszego gracza, ale raczej w oparciu o graczy następny zestaw odpowiedzi "A" chce przewidzieć prawidłowy zestaw odpowiedzi "C" przez ważenie " "Na podstawie wcześniejszych osiągnięć gracza.

Oczywiście, gdyby istniało dobre rozwiązanie tego problemu, można dokonać zabójstwa na giełdzie ;-) (Fakt, że nikt tego nie robi, powinien wskazywać na istnienie takiego rozwiązania) .

Ale wracając do rankingu graczy. Twoim głównym problemem jest to, że musisz (musisz) wziąć procent prawidłowych odpowiedzi równomiernie rozłożonych od 0 do 100%. Jeśli test zawiera wiele pytań, to na pewno nie jest. Spojrzałbym na to, co zupełnie losowy gracz "R" uzyskał na teście i zbudował względną pewność siebie na podstawie tego, o ile lepiej/gorzej od "R" danego prawdziwego gracza.

Powiedz, że w każdej rundzie gry generujesz milion losowych graczy i przyglądasz się rozkładowi wyników. Wykorzystaj rozkład jako wagę do prawdziwych wyników graczy. Następnie połącz ważone wyniki za pomocą MAD i obliczyć Median - MAD/jakiś numer, jak już zasugerowałeś.

+0

Świetna odpowiedź, ale w tym przypadku dlaczego lepiej byłoby użyć MAD/Median niż Standardowe odchylenie/średnia? –

+0

Jeśli twoje dane mają niski n (to znaczy punkty danych), to odchylenia standardowe i średnia (średnia) nie są zbyt wiarygodne. Np. Odchylenie standardowe (s_m) średniej to s/sqrt (n). Jeśli masz n = 4 jak w twoim przykładzie, to średnia sama w sobie jest dokładna tylko do 50% danych. W takich sytuacjach MAD i Median są bardziej niezawodne. Również użycie s i średnia wymaga przyjęcia normalnej dystrybucji, aby dać graczom odpowiedzi na przestrzeni czasu. Może tak być, ale nie musi, w zależności od konfiguracji gry i twojego poglądu na temat podejmowania decyzji przez ludzi. – Timo

4

Czy Bayesian Probablity Formula pasuje do rachunku?

Myślę, że tak. Oto link do innej witryny, która jest trochę mniej matematyczna: http://www.experiment-resources.com/bayesian-probability.html

Zasadniczo przewidujesz prawdopodobieństwo, że każdy gracz zdobędzie najwyższą w następnej rundzie. To właśnie prawdopodobieństwo bayesa je na śniadanie.

Prawdopodobieństwa Bayesa są już w użyciu w video games (ostrzeżenie: plik .doc), aby określić takie rzeczy.

+0

Naprawiłem błąd, ale pamiętaj o prawdopodobieństwie! = Probabilty, gdy mówisz o statystykach. – nlucaroni

+0

Wydaje się zbyt skomplikowane dla moich umiejętności matematycznych, może nie miałbyś nic przeciwko pokazaniu mi przykładu w (pseudo) kodzie? –

1

myślę, że może mieć rację, że chcesz jakąś liniowej kombinacji dwóch czynników, ale myślę, że musimy wiedzieć więcej o tym, co robisz, aby wiedzieć, co byłoby faktyczne stałe ...

+0

Dziękujemy za wiadomość, sprawdź moją aktualizację. Jeśli potrzebujesz więcej informacji, powiedz słowo. –

3

Hm. To spowodowałoby, że gracz (100,100,100,60) byłby gorszy od gracza (85 815 885). Dlaczego nie wziąć również% wszystkich punktów?

Podobny wynik: liczba punktów procentowych ogółem (na przykład 0,1) pomnożona przez bieżące obliczenia.

+0

Dziękuję za odpowiedź, sprawdź moją aktualizację. –

7

Nie można uzyskać optymalnej formuły, jeśli nie określono ilościowo tego, co jest lepsze. Musisz dowiedzieć się, jak chcesz zważyć spójność względem średniej. Na przykład jedną z opcji byłoby oszacowanie wyniku, jaki gracz osiągnie w danym procencie gier. Wymaga to pewnego rodzaju modelu rozkładu prawdopodobieństwa wyniku gracza. Na przykład, jeśli przyjmiemy, że wyniki graczy są zgodne z rozkładem normalnym, to twoja formuła oblicza, jaki wynik uzyska gracz w ponad 70% przypadków.

+0

Chodzi o to, że nie mam pojęcia, co jest lepsze, zacząłem tylko od średniej, ale myślałem, że wprowadzenie odchylenia może być również dobrym pomysłem ... Sprawdź moją aktualizację, aby dowiedzieć się, co próbuję nie, może to przyniesie lepszy wgląd w moje pytanie. –

1

Cóż, "proste rozszerzenie" jest po prostu dodanie masy i granice:

przeciętnie (gracz) - min (górny, waga * entrophy (odtwarzacz))

Biorąc jednak pod uwagę obecny zestaw danych, może nie zajmować się "procentem prawidłowej odpowiedzi" tak bardzo, jak patrząc na różnicę wyniku na grę, jeśli jest to opcja.

2

Czy rozważałeś użycie tylko mediany? Jest uważany za bardziej robust statistic (mniejszy wpływ odstających) niż średnia. W twoich danych otrzymujesz medianę: 0, 25, 50, 82,5, 50, 50, 100.

Czy intuicyjnie tego chcesz? Zgadzam się z innymi, że nie ma tutaj "właściwej odpowiedzi".

+0

Przepraszam za tak podstawowe pytanie, ale jak określić medianę? –

+1

(google jest twoim przyjacielem!) Dla każdego gracza, posortuj tablicę, a następnie, jeśli istnieje nieparzysta liczba wartości, wybierz środkową, w przeciwnym razie wybierz średnią z dwóch środkowych. Każda biblioteka statystyczna będzie miała również funkcję mediany. – Harlan

Powiązane problemy