24. juni 2009 - 17:15Der er
5 kommentarer og 1 løsning
Hyppighed af events skal omsættes til en score
Jeg har et lidt mere matematisk problem, end et egentligt programmerings teknisk problem.
Jeg har en test opstilling, hvor mit program modtager nogle events. Jeg har brug for løbende at få en sammenlignlig 'score' for hvor mange hendelser jeg modtager.
Imidlbart er det let nok, det var bare frekvensen af hendelser jeg er interaseret i. Men jeg har også brug for at have ændringer i frekvensen med i min score.
Jeg har været i gang med selv at generere en funktion der kan give mig denne score:
score = løbendeGennemsnit(F * (1 + dF)) | for dF >= 0, for dF < 0 bruges dF=0
hvor F er Frekvens og dF er Differentieret frekvens
Meeeenn, er det nu lige nødagtigt det jeg vil??? jeg tænkte at det her (eller noget lignende) må da hedde noget i statistik sprog. Er der ikke en 'standartiseret' måde at gøre det her på?
Et exempel: Hvis nu jeg har en system, hvor mine event kommer med en stabil freqvens, lad os bare sige 1, er scoren 1. Hvis pludslig frekvensen stiger til 2, vil difference værdien stige til 1. Det jeg så ønsker er, at det men det samme skal give mig en høj score e.g. 8 (F=2*(1+dF=2)), i stedet for bare at sætte 8 ind i gennemsnits-beregningen. Lige så stille vil scoren så igen falde til 2. Ved godt at RMS måske vil kunne give min lidt, eller jeg vill kunne vægte de enkelte led i min formel, meeennn....?
hvis du har en endelig mængde af forskellige events (f.eks. event 1, 2 og 3) kan du løbende udregne hvor stor en procentdel hver af dem udgør ud at det samlede antal modtagende - det giver en god pointer om middelværdien på en mere simpelmåde... Du vedligeholder simpelthen tre værdier - en for hver event og så regner du ud fra det?
Jeg har (desværre) ikke rigtigt en endelig mængde, men jeg ved til et hvert tidspunkt hvorstor min er.
Ideen er rimelig god, jeg skla lige tænke lidt over det. Det eneste problem jeg ser er, at jeg ikke har noget der er sammenlignlig, e.g. hvis et modul for 5 minuter havde en score på 25 og nu har 30, ved jeg ikke rigtigt om det har reporteret flere events, eller om der er et andet modul der har forladt mig.
Så er det jo ved at være det jeg havde fra starten, altså bare en frekvens. Der mangler så stadig et difference led.
Noget i den her stil må være relativ godt:
a*F + b*dF/F
Hvor a og b er vægte af ledene. Det er en klasisk PD regulator, men så midler jeg resultatet over de sidste e.g. 10 samples. Ved at sætte b tilpas høj, kan jeg lave det ønskede øjeblikkelige store udslag ved frekvens ændringer.
Lukker her, alt det smarte matematik blev droppet, og det endte med at alle events blev vægtet ud fra hvem der sendte eventen, altså flere kilder kan godt have samme vægtning, og så deres events blive vægtet ens, uanset deres frekvens.
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.