neil-lunn Jeg ønsket å beregne et rullende gjennomsnitt så i 3 måneders intervaller Jeg vil ta en dag og gjennomsnitt den dagen med de siste 3 måneders dataene, og deretter gjøre det gjennomsnittet for hver dag i 50 år de neste 50 årene Så Jeg tror at enkelte verdier vil overlappe for gjennomsnitt. Hvordan ville du gjøre dette med kart? Reduser i stedet at du ikke kan gjøre det med aggregeringsrammen. Jeg tror du har rett, jeg må sammenligne separate dokumenter. Takk mc. Aug 6 14 kl 12 ikke tro at aggregasjonsrammen kan gjøre dette for flere datoer i den nåværende versjonen 2 6, eller i det minste kan det ikke gjøres uten noen alvorlig gymnastikk. Årsaken er at aggregasjonsrørledningen behandler ett dokument om gangen og bare ett dokument, så det ville være nødvendig å på en eller annen måte opprette et dokument for hver dag som inneholder de forrige 3 måneders verdiene av relevant informasjon. Dette ville være som et gruppestadium som ville beregne gjennomsnittet, noe som betyr at det tidligere stadiet ville ha produsert ca 90 eksemplarer av hver dag s rec ord med noen kjennetegn som kan brukes til gruppen. Så jeg ikke ser en måte å gjøre dette på mer enn en dato om gangen i en enkelt aggregering, vil jeg gjerne være feil og må redigere fjern dette svaret hvis noen finner en måte å gjøre det på, selv om det er så komplisert at det ikke er praktisk. En PostgreSQL PARTITION type-funksjon ville gjøre jobben her, kanskje den funksjonen vil bli lagt til en dag. ansvaret 7. august klokken 14 på 17 49. så må du enten spørre om deler av dette og beregne det bevegelige gjennomsnittet i noen språk rubin, python, knutepunkt eller kjøre en samlet spørring for hvert intervall, er det virkelig den beste løsningen. Er det ikke bare feil, er det en bedre måte å gjøre dette med kart - redusere at jeg ikke kan tenke på mc 7 august 14 på 18 41. Jeg har ikke tenkt på kartreduksjon Generelt prøver jeg å unngå å bruke kartreduksjoner fordi det har en betydelig ytelsesstraff og ikke er så sikker siden du kjører egendefinert kode server-side Jeg vil prøve å tenke på det, eller kanskje noen andre vil lage mat opp en mr løsning wdberkeley Aug 7 14 på 18 44.Jeg tror jeg kan ha et svar på mitt eget spørsmål Kart Redusere ville gjøre det Første bruk avgir å kartlegge hvert dokument til det er naboer at det skal bli gjennomsnittet med, bruk deretter redusere til avg hver gruppe og at nye utvalg av gjennomsnitt bør være det bevegelige gjennomsnittet plott overtid siden det s ID ville være det nye datoperioden du bryr deg om. Jeg antar at jeg trengte å forstå kart-redusere bedre. For eksempel hvis vi ønsket å gjøre det i minnet senere kan vi lage samlinger. Det ser riktig ut. Denne funksjonaliteten er eksperimentell og kan endres eller fjernes helt i en fremtidig utgave. Elastic vil ta en best mulig tilnærming til å løse eventuelle problemer, men eksperimentelle funksjoner er ikke gjenstand for støtten SLA av offisielle GA-funksjoner. Gi en bestilt serie data, Flytte gjennomsnittlig aggregering vil skyve et vindu over dataene og avgi gjennomsnittsverdien av vinduet. For eksempel, gitt dataene 1, 2, 3, 4, 5, 6, 7 , 8, 9, 10 kan vi beregne en enkel movin g gjennomsnitt med Windows-størrelse på 5 som følger. Gjennomgang av gjennomsnitt er en enkel metode for å jevne sekvensielle data. Flytte gjennomsnitt blir vanligvis brukt på tidsbaserte data, for eksempel aksjekurser eller serverstatistikker. Utjevningen kan brukes til å eliminere høyfrekvente svingninger eller tilfeldige støy, noe som gjør det mulig å visualisere lavere frekvenstrender, for eksempel sesongmessighet. Den lineære modellen tilordner en lineær vekting til poeng i serien, slik at eldre datapoints, for eksempel de i begynnelsen av vinduet, bidrar til en lineær mindre mengde til totalt gjennomsnitt Den lineære vektingen bidrar til å redusere lagret bak dataene s, siden eldre punkter har mindre innflytelse. En lineær modell har ingen spesielle innstillinger for å konfigurere. Som den enkle modellen kan vinduets størrelse endre oppførselen til det bevegelige gjennomsnittet. For eksempel, et lite vindu vindu 10 vil nøye spore dataene og bare glatte ut småskala fluktuasjoner. Figur 3 Linjært glidende gjennomsnitt med vindu av størrelse 10. I kontrast er en lineær bevegelse gjennomsnittlig med større vinduvindu 100 vil utjevne alle høyere frekvensfluktuasjoner, og etterlater bare lavfrekvente, langsiktige trender. Det har også en tendens til å ligge bak de faktiske dataene med en betydelig mengde, men vanligvis mindre enn den enkle modellen. Figur 4 Linjær bevegelse gjennomsnitt med vindu av størrelse 100.Multiplikative Holt-Wintersedit. Multiplicative er spesifisert ved innstilling type mult Denne variasjonen er foretrukket når sesongmessige påvirkning er multiplisert med dataene dine E g hvis sesongmessige påvirkning er x5 dataene, i stedet for bare å legge til det. Standardverdiene for alfa og gamma er 0 3 mens beta er 0 1 Innstillingene aksepterer enhver flyt fra 0-1 inkludert Standardverdien av perioden er 1.Den multiplikative Holt-Winters-modellen kan minimeres. Multiplikative Holt-Winters fungerer ved å dele hvert datapunkt etter sesongverdien Dette er problematisk hvis noen av dataene dine er null, eller hvis det er hull i dataene, siden dette resulterer i en dividing-to-zero. For å bekjempe dette, taster mult Holt-Winters alle verdier es med en liten mengde 1 10 -10 slik at alle verdier er null. Dette påvirker resultatet, men bare minimalt Hvis dataene dine er null, eller du foretrekker å se NaN når null er oppstått, kan du deaktivere dette oppførsel med pad false. All den bevegelige gjennomsnittlige modellen støtter en prediksjonsmodus, som vil forsøke å ekstrapolere inn i fremtiden, gitt det nåværende glatte, glidende gjennomsnittet. Avhengig av modell og parameter, kan disse spådommene kanskje ikke være nøyaktige. Forutsetninger er aktivert av legger til en forutsigbar parameter for enhver bevegelig gjennomsnittlig aggregering, og spesifiserer antall spådommer du vil legge til i slutten av serien. Disse spådommene vil bli fordelt på samme intervaller som dine buckets. De enkle lineære og ewma-modellene produserer flate spådommer de hovedsakelig konvergerer på gjennomsnittet av den siste verdien i serien, og produserer en flat. Figur 11 Enkel glidende gjennomsnitt med vindu med størrelse 10, forutsi 50. I kontrast kan holtmodellen ekstrapolere basert på lokal eller glo ball konstante trender Hvis vi setter en høy beta-verdi, kan vi ekstrapolere basert på lokale konstante trender i dette tilfellet forutsigelsene går ned, fordi dataene på slutten av serien var på vei nedover. Figur 12 Holt-lineær glidende gjennomsnitt med et vindu på størrelse 100, forutsi 20, alfa 0 5, beta 0 8.I kontrast, hvis vi velger en liten beta, er prognosene basert på den globale konstante trenden. I denne serien er den globale trenden litt positiv, slik at prognosen gjør en skarp u-sving og begynner en positiv helling. Figur 13 Dobbel eksponentiell glidende gjennomsnitt med vindu med størrelse 100, forutsi 20, alfa 0 5, beta 0 1.Holtwinters-modellen har potensial til å levere de beste spådommene, siden den også inneholder sesongmessige svingninger i modellen. Figur 14 Holt-Winters glidende gjennomsnitt med vindu med størrelse 120, forutsi 25, alfa 0 8, beta 0 2, gamma 0 7, periode 30.A siden jeg skrev om beregning av glidende gjennomsnitt av levende data ved bruk av buffermetoden i reaktive utvidelser m ethod oppretter en buffer med oppdateringer som grenser deg, som utvikleren spesifiserer, og gir deg denne kjørerbufferen med hver senere oppdatering. Den nåværende oppdateringen vil være sist i bufferen, som lar deg beregne det inkluderende glidende gjennomsnittet, en hvor den siste faktoren er inkludert i resultatene. Når jeg måtte gjøre noe lignende med statiske data i et program som ikke brukte RX, hadde bud en veldefinert LINQ-basert datoperatør Til min overraskelse fant jeg at LINQ ikke gir en buffering metode ut av boksen Til min større overraskelse fant jeg at det var lett å implementere en Koden er under. Jeg ville ikke anta at vi bare ville utføre gjennomsnittlige aggregasjoner, derfor holdt jeg min løsning ganske generisk. Det ville være oppe til brukeren av min funksjon for å kode opp aggregasjonslogikken I dette innlegget vil jeg demonstrere gjennomsnittlige aggregasjoner, men brukeren av denne funksjonen vil kunne gjøre noe med et gitt sett av elementer. Først, la s definere en datastruktur, anrop ed Aggregation som ville bli brukt til å pakke opp originalen og legge til en ny AggregatedValue egenskapslinje 16 som vi ville bli befolket under aggregeringsprosessen Da definerer jeg et eksempel TimedDataPoint som ville bli brukt til å holde aksjekursene i mitt eksempel. Til slutt, la s definere en LINQ-funksjonen som ville buffer et sett med elementer i det opprinnelige settet og ville returnere et modifisert sett med færre elementer, hvor hvert element vil inneholde en aggregeringsverdi for det buffede settet. For å hevde suksess må jeg teste funksjonen For å spille med ekte tall, la oss få historien om ukentlig MSFT-avkastning fra yahoo La oss eksportere disse dataene for å utmerke seg og lage sett av bevegelige gjennomsnitt. Lukk pris for å teste våre data Her er hva regnearket skal se ut. Vi kan da opprette et utvalg datasett å representere de opprinnelige sluttprisene. Vi kan deretter teste vår funksjon, og jeg lager en flytende gjennomsnittsberegning på datasettet. Koden er nedenfor. Først lager jeg datasettet, og detter jeg gjennom datasettet, piper d ata i min aggregatfunksjon som igjen ringer meg tilbake og ber meg om å gjøre 2 viktige beslutninger.1 Skal det fortsette å buffere Linjer 60 og 71 2 Gitt en buffer gir en aggregering Linje 61 i første eksempel og linjer 74-82 i sekund. Utgangen av prøven bør samsvare med 6-dagers Avg-kolonnen i vedlagte regneark. Jeg fant denne aggregatfunksjonen veldig nyttig Håper du vil også.
No comments:
Post a Comment