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 2025

Video: 52. WiFi Mobile Broadband on a Boat 2025
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 du samler ressurser i Minecraft - dummies

Hvordan du samler ressurser i Minecraft - dummies

Du kan samle ressurser på flere måter for Minecraft-strukturen - noen er mer effektiv enn andre. Her finner du noen forskjellige måter å samle materialer på for din struktur. Du har et par forskjellige alternativer når det gjelder gruvedrift. Hver har sine fordeler og ulemper, så det er opp til ...

Hvordan bygge Minecraft-kretser og -maskiner med Minecart-spor - dummier

Hvordan bygge Minecraft-kretser og -maskiner med Minecart-spor - dummier

Minecart og skinner er Minecraft-funksjoner ofte brukt til å transportere spillere. Men de kan også utføre mange mekaniske egenskaper bedre enn de vanlige redstone-elementene. Minecarts er enheter som kan rulle raskt langs minecartskinner. De kan svinge, gå opp og ned skråninger, og til og med spore (selv om de lider mye ...

Hvordan bygge din første Minecraft Garden - dummies

Hvordan bygge din første Minecraft Garden - dummies

Se hvordan du oppretter en vakker hage i Minecraft ved å planlegge riktig layout, få en rekke unike planter, og organisere plass.

Redaktørens valg

Markedet ditt mobilnettsted til media - dummies

Markedet ditt mobilnettsted til media - dummies

IPhone og iPad er varme emner i media i disse dager. Når du er ferdig med å designe nettstedet ditt for disse nye medieenhetene, ikke glem å markedsføre dem til tradisjonelle medier. Tiltrekke medieoppmerksomhet til mobilwebområdet ditt er ikke i motsetning til å tiltrekke det til noen annen virksomhet. Trikset er å fortelle et godt ...

Gjør skannede dokumenter søkbare og redigerbare - dummies

Gjør skannede dokumenter søkbare og redigerbare - dummies

Når du skanner et dokument direkte til en PDF-fil, Acrobat fanger all tekst og grafikk på hver side som om de alle var bare ett stort grafisk bilde. Dette er bra så langt det går, bortsett fra at det ikke går veldig langt fordi du ikke kan redigere eller søke i PDF-dokumentet ...

Markedet med SMS-meldinger - dummies

Markedet med SMS-meldinger - dummies

Lengden på SMS- begrenset til 160 tegn, så reklamemeldingen din må være kort og søt. Disse meldingene kan inneholde lenker til nettsteder eller klikk for å ringe meldinger: Du klikker på SMS, slik at telefonen ringer. SMS-kampanjer er mye enklere å håndtere enn ...

Redaktørens valg

Rediger, endre farge eller fjern Photoshop Shape Layers - dummies

Rediger, endre farge eller fjern Photoshop Shape Layers - dummies

Bruk formlag i Photoshop Creative Suite 5 når målet med designet ditt er å integrere vektormodeller og pikseldata sømløst. Når du har opprettet et formlag, kan du redigere formen, endre fargen eller fjerne laget helt. Rediger en form Som Adobe Illustrator, gir Photoshop både et valg av sti ...

Oppdag Photoshops malerverktøy - dummies

Oppdag Photoshops malerverktøy - dummies

Ingenting i Photoshop CC gir deg mer presis kontroll over fargen i bildet ditt enn ved bruk av blyantpenningen verktøy med en 1-piks pensel. Husk at bildet ditt består av mange småfargede firkanter (piksler), og at fargen på de enkelte firkantene er det som gir utseendet til et tre eller et ...

Forbedre portretter i Photoshop CC - dummier

Forbedre portretter i Photoshop CC - dummier

Forbedre detaljer som å avklare motivets briller i Photoshop CC kan hjelpe bildene dine og portretter ser det mye bedre ut. Whitening tennene er et annet godt triks for å lyse opp bildene dine. Deklarende briller i Photoshop Eyeglasses kan være fotografens mareritt! Refleksjonene fra glass er vanligvis spekulative høydepunkter - det vil si områder av ren ...