Hjem Personlig finansiering Hvordan å finne antall elementer i en datastrøm - dummier

Hvordan å finne antall elementer i en datastrøm - dummier

Video: 52. WiFi Mobile Broadband on a Boat 2024

Video: 52. WiFi Mobile Broadband on a Boat 2024
Anonim

Selv om et Bloom-filter kan spore objekter som kommer fra en strøm, kan det ikke fortelle hvor mange objekter det er. En bit vektor fylt av de kan (avhengig av antall hashes og sannsynligheten for kollisjon) gjemme det sanne antall objekter som har hashed på samme adresse.

Å vite det forskjellige antall objekter er nyttig i ulike situasjoner, for eksempel når du vil vite hvor mange forskjellige brukere har sett en bestemt nettside eller antall forskjellige søkemotorforespørsler. Lagring av alle elementene og å finne duplikatene blant dem kan ikke fungere med millioner av elementer, spesielt fra en strøm. Når du vil vite antall forskjellige objekter i en strøm, må du fortsatt stole på en hashfunksjon, men tilnærmingen innebærer å ta en numerisk skisse.

Sketching betyr å ta en tilnærming, som er en inexakt, men ikke helt feil verdi som et svar. Tilnærming er akseptabelt fordi den virkelige verdien ikke er for langt fra den. I denne smarte algoritmen, HyperLogLog, som er basert på sannsynlighet og tilnærming, observerer du egenskapene til tall som genereres fra strømmen. HyperLogLog kommer fra studier av datavitenskapsmenn Nigel Martin og Philippe Flajolet. Flajolet forbedret sin første algoritme, Flajolet-Martin (eller LogLog-algoritmen), til den mer robuste HyperLogLog-versjonen, som virker slik:

  1. En hash konverterer hvert element mottatt fra strømmen til et tall.
  2. Algoritmen konverterer nummeret til binær, basen 2-numerisk standard som datamaskiner bruker.
  3. Algoritmen teller antall innledende nuller i binærnummeret og sporene til det maksimale antallet det ser, som er n.
  4. Algoritmen anslår antall forskjellige elementer som er passert i strømmen ved hjelp av n. Antall forskjellige elementer er 2 ^ n.

For eksempel er det første elementet i strengen ordet hund. Algoritmen pakker den inn i en heltallverd og konverterer den til binær, med et resultat av 01101010. Bare ett null vises i begynnelsen av nummeret, slik at algoritmen registrerer det som det maksimale antall nulpunktet sett. Algoritmen ser da ordene papegøye og ulv, hvis binære ekvivalenter er 11101011 og 01101110, og etterlater n uendret. Når ordet cat passerer, er utgangen imidlertid 00101110, slik at n blir 2. For å beregne antall forskjellige elementer beregner algoritmen 2 ^ n, det vil si 2 ^ 2 = 4. Figuren viser denne prosessen.

Teller bare ledende nuller.

Algoritmenes knep er at hvis din hash produserer tilfeldige resultater, like fordelt (som i et Bloom filter), ved å se på binærrepresentasjonen, kan du beregne sannsynligheten for at en sekvens nuller dukket opp. Fordi sannsynligheten for et enkelt binært tall til å være 0 er en i to, for å beregne sannsynligheten for sekvenser av nuller, multipliserer du bare den 1/2-sannsynligheten så mange ganger som lengden på sekvensen av nuller:

  • 50 prosent (1/2) sannsynlighet for tall som begynner med 0
  • 25 prosent (1/2 * 1/2) sannsynlighet for tall som begynner med 00
  • 12. 5 prosent (1/2 * 1/2 * 1/2) sannsynlighet for tall som starter med 000
  • (1/2) ^ k sannsynlighet for tall som starter med k nuller (du bruker krefter for raskere beregninger av mange multiplikasjoner av samme tall)

Jo færre tallene som HyperLogLog ser, desto større er upresisjonen. Nøyaktighet øker når du bruker HyperLogLog-beregningen mange ganger ved hjelp av forskjellige hashfunksjoner og gjennomsnittlig sammen svarene fra hver beregning, men hashing mange ganger tar tid og strømmer er raske. Som et alternativ kan du bruke samme hash, men dele strømmen i grupper (for eksempel ved å skille elementene inn i grupper etter hvert som de kommer etter deres ankomstordre), og for hver gruppe holder du oversikt over det maksimale antall nulpunkter. Til slutt beregner du det distinkte elementestimatet for hver gruppe og beregner det aritmetiske gjennomsnittet av alle estimatene. Denne tilnærmingen er stokastisk gjennomsnittlig og gir mer presise estimater enn å anvende algoritmen til hele strømmen.

Hvordan å finne antall elementer i en datastrøm - dummier

Redaktørens valg

Hvordan å stable og gruppereformer i Word 2013 - dummies

Hvordan å stable og gruppereformer i Word 2013 - dummies

Enkeltformer kan noen ganger være nyttige i en dokument, men den virkelige kraften til Word 2013's Shapes-funksjonen kan bli funnet ved å kombinere figurer for å lage mer komplekse tegninger og logoer. Du kan stable formene oppå hverandre og kontrollere rekkefølgen de vises i stakken. Når du har ...

Hvordan du angir punktavstand i Word 2013 - dummies

Hvordan du angir punktavstand i Word 2013 - dummies

Word 2013 lar deg legge til "luft" til plass før eller etter eller i midten av avsnittene dine. I midten av avsnittet har du linjeavstand. Før og etter avsnittet kommer punktavstand. Hvordan sette linjeavstanden Endre linjeavstanden legger til ekstra mellomrom mellom alle tekstlinjer ...

Slik starter du et nytt dokument i Word 2007 - dummies

Slik starter du et nytt dokument i Word 2007 - dummies

Starter et nytt dokument i Word 2007 er lett. Hvis du nettopp har startet Word 2007 og vil åpne et tomt dokument, kan du følge tre enkle trinn.

Redaktørens valg

Slik oppretter du en AWS Administrator User - Dummies

Slik oppretter du en AWS Administrator User - Dummies

Opprett Administrator-gruppen er det første trinnet for å sikre at din AWS (Amazon Web Services) -kontoen er fortsatt trygg. Det neste trinnet er å opprette en konto for deg selv og tilordne den til administratorgruppen, slik at du har full tilgang til de administrative funksjonene i din AWS-konto. Følgende trinn beskriver hvordan ...

Vurderer AWS-støttede plattformer - dummies

Vurderer AWS-støttede plattformer - dummies

Hvis du ikke har behandlet AWS eller skyen ennå, du kan være fristet til å tenke på plattformer som en bestemt kombinasjon av gjenstander. For eksempel, når du ser ditt eget lokale oppsett, har du en server som kjører et bestemt operativsystem og har et bestemt sett med maskinvareressurser. Systemet har en bestemt ...

Lage skuffer på Amazon Web Services - dummies

Lage skuffer på Amazon Web Services - dummies

Når du er den stolte eieren av Amazon Web Services (AWS ) konto, det er på tide å gjøre noe nyttig, som å lage en bøtte. Start med å sjekke ut dine S3-ressurser. For å gjøre det, klikk S3-lenken på startsiden for AWS Management Console, som vist her: Du er tatt til en side som lar deg administrere ...

Redaktørens valg

Slik bruker du Eye-Fi med Evernote-dummies

Slik bruker du Eye-Fi med Evernote-dummies

Et selskap kalt Eye-Fi gjør det mulig å Koble kameraet ditt med Evernote, selv uten å koble kameraet til datamaskinen. Følg disse trinnene for å bruke Eye-Fi: Følg instruksjonene som følger med Eye-Fi-kortet for å konfigurere en Eye-Fi-konto. Sett inn Eye-Fi-kortet i kameraet. Slå på kameraet ditt. ...

Hvordan man merker på Evernote for datamaskiner og tabletter - dummies

Hvordan man merker på Evernote for datamaskiner og tabletter - dummies

Hele poenget med å lagre nyttig informasjon er for å kunne finne den senere. Tagging i Evernote er fundamentalt lik for alle plattformer og er ekstremt nyttig når du dash om å prøve å skrive inn notater på hvilken enhet du bruker på den tiden. For å lage en tagg for et notat på en datamaskin eller ...