Hjem Personlig finansiering Hvordan man finder antallet af elementer i en datastrøm - dummier

Hvordan man finder antallet af elementer i en datastrøm - dummier

Video: Curious Beginnings | Critical Role | Campaign 2, Episode 1 2024

Video: Curious Beginnings | Critical Role | Campaign 2, Episode 1 2024
Anonim

Selv om et Bloom-filter kan spore objekter, der kommer fra en strøm, kan det ikke fortælle, hvor mange objekter der er. En smule vektor fyldt af dem kan (afhængigt af antallet af hash og sandsynligheden for kollision) skjule det sande antal genstande, der er hashed på samme adresse.

At kende det forskellige antal objekter er nyttigt i forskellige situationer, f.eks. Når du vil vide, hvor mange forskellige brugere der har set en bestemt hjemmeside eller antallet af forskellige søgemaskiner. Lagring af alle elementer og finde duplikaterne blandt dem kan ikke fungere med millioner af elementer, især fra en strøm. Når du vil vide antallet af forskellige objekter i en strøm, skal du stadig stole på en hash-funktion, men tilgangen indebærer at tage en numerisk skitse.

Skitsering betyder at der er en tilnærmelse, der er en inexakt, men ikke fuldstændig forkert værdi som et svar. Tilnærmelse er acceptabel, fordi den reelle værdi ikke er for langt fra den. I denne smarte algoritme, HyperLogLog,, som er baseret på sandsynlighed og tilnærmelse, observerer du egenskaberne ved tal, der genereres fra strømmen. HyperLogLog stammer fra studierne af computerforskere Nigel Martin og Philippe Flajolet. Flajolet forbedrede deres første algoritme, Flajolet-Martin (eller LogLog-algoritmen) til den mere robuste HyperLogLog-version, som virker som denne:

  1. En hash konverterer hvert element modtaget fra strømmen til et tal.
  2. Algoritmen konverterer antallet til binære, den basale 2-standard, som computere bruger.
  3. Algoritmen tæller antallet af indledende nuller i det binære nummer og spor af det maksimale antal, det ser, hvilket er n.
  4. Algoritmen estimerer antallet af forskellige elementer, der er bestået i strømmen ved hjælp af n. Antallet af forskellige elementer er 2 ^ n.

For eksempel er det første element i strengen ordet hund. Algoritmen pakker den ind i en heltalværdi og konverterer den til binær, med et resultat af 01101010. Der vises kun en nul i begyndelsen af ​​nummeret, så algoritmen registrerer det som det maksimale antal nulstillende nuler set. Algoritmen ser så ordene papegøje og ulv,, hvis binære ækvivalenter er 11101011 og 01101110, hvilket efterlader n uændret. Når ordet cat passerer, er output imidlertid 00101110, så n bliver 2. For at estimere antallet af forskellige elementer beregner algoritmen 2 ^ n, det vil sige 2 ^ 2 = 4. Figuren viser denne proces.

Tæller kun ledende nuller.

Algoritmens trick er, at hvis din hash producerer tilfældige resultater, lige fordelt (som i et Bloom filter) ved at se på den binære repræsentation, kan du beregne sandsynligheden for, at en sekvens af nuller dukker op. Fordi sandsynligheden for at et enkelt binært tal skal være 0 er en ud af to, for at beregne sandsynligheden for sekvenser af nuller, multiplicerer du blot den 1/2 sandsynlighed så mange gange som længden af ​​sekvensen af ​​nuller:

  • 50 procent (1/2) sandsynlighed for tal begyndende med 0
  • 25 procent (1/2 * 1/2) sandsynlighed for tal begyndende med 00
  • 12. 5 procent (1/2 * 1/2 * 1/2) sandsynlighed for tal startende med 000
  • (1/2) ^ k sandsynlighed for tal, der starter med k nuller (du bruger beføjelser til hurtigere beregninger af mange multiplikationer af samme tal)

Jo færre tal, som HyperLogLog ser, jo større er upræcisionen. Nøjagtigheden øges, når du bruger HyperLogLog-beregningen mange gange ved hjælp af forskellige hashfunktioner og gennemsnitligt sammen svarene fra hver beregning, men hashing mange gange tager tid, og strømme er hurtige. Som et alternativ kan du bruge den samme hash, men dele strømmen i grupper (f.eks. Ved at adskille elementerne i grupper efterhånden som de ankommer ud fra deres ankomstordre), og for hver gruppe holder du styr på det maksimale antal nulstillende nuller. I sidste ende beregner du det skelne element estimat for hver gruppe og beregner det aritmetiske gennemsnit af alle estimaterne. Denne fremgangsmåde er stokastisk middelværdi og giver mere præcise estimater end at anvende algoritmen til hele strømmen.

Hvordan man finder antallet af elementer i en datastrøm - dummier

Valg af editor

Hvad er nyt i Microsoft Word 2016? - dummies

Hvad er nyt i Microsoft Word 2016? - dummies

Udgivelsen af ​​Microsoft Word i 2016 er funktionel pakket og kan prale af evnen til at forenkle arbejdsgange og forene arbejdsgrupper. Hvad det betyder for dig er, at det er et meget lettere produkt at bruge i forhold til tidligere versioner. Med funktionelle ændringer, der er indbygget i knapper og faner af Word 2016s båndformede proceslinje, har den ...

Word 2010 Tastaturgenveje - Dummies

Word 2010 Tastaturgenveje - Dummies

Word 2010 tilbyder en række nyttige tastaturgenveje til hurtigt at udføre opgaver. Her er nogle genveje til almindelig Word-formatering, redigering og fil- og dokumentopgaver. Word 2010 Formatering Genveje Kommando Genvej Bånd Placering Fed Ctrl + B Startside Fane, Skrifttype Gruppe Kursiv Ctrl + I Startside, Skriftgruppe Understrege Ctrl + U Startside Fane, Skriftgruppe Center Ctrl + E ...

Word 2007 For Dummies Cheat Sheet - dummies

Word 2007 For Dummies Cheat Sheet - dummies

Word 2007 ser anderledes ud, men tilbyder stadig de praktiske Word hæfteklammer som f.eks. tastaturgenveje til at hjælpe dig med at oprette, formatere, indsætte ting i og flytte gennem dine Word-dokumenter. Og Word 2007 tilbyder også et par nye funktioner, der hjælper dig med at håndtere din tekstbehandling med lethed.

Valg af editor

ASVAB Montering af objekter Subtest: Shapes - dummies

ASVAB Montering af objekter Subtest: Shapes - dummies

Mange mennesker kan finde den anden type montering af objekter problem på ASVAB lettere end forbindelsesproblemerne. Denne type problem er meget som et puslespil, medmindre det ikke resulterer i et billede af Frihedsgudinden eller et kort over USA. Der er også en heck of a ...

ASVAB Aritmetisk Reasoning Subtest: Viser Sammenligninger med Ratioer - Dummies

ASVAB Aritmetisk Reasoning Subtest: Viser Sammenligninger med Ratioer - Dummies

Du skal vide, hvordan du arbejde med forhold for den aritmetiske begrundelse subtest af ASVAB. Et forhold viser et forhold mellem to ting. For eksempel, hvis Margaret investerede i hendes tatoveringslokale i forholdet 2: 1 (eller 2 til 1) til hendes forretningspartner Julie, satte Margaret $ 2 for hver ...

ASVAB Auto & Shop Information Undertest: Drilling, Punching og Gouging Tools - dummies

ASVAB Auto & Shop Information Undertest: Drilling, Punching og Gouging Tools - dummies

Nej, det handler ikke om hånd-til-hånd kamp træning fra grundlæggende træning. Imidlertid vil ASVAB teste din viden om, hvor praktisk du er med boring, stansning og gouging-værktøjer. Masters i butikskunst gør ofte huller i det materiale, de arbejder med for at opbygge det perfekte fuglehus (eller hvad de arbejder på). ...

Valg af editor

EMT-eksamen: Sådan arbejder du med et team under et nødsituation

EMT-eksamen: Sådan arbejder du med et team under et nødsituation

Arbejder helt alene som en EMT er ekstremt sjælden. Selv under disse omstændigheder vil du sandsynligvis interagere med andre sundhedspleje- og offentlige sikkerhedsudbydere på et eller andet tidspunkt under et opkald. Mere sandsynligt vil du fungere som medlem af et hold. Det kan være en enkelt partner, et brandmandsbesætningsmedlem eller endda en nødsituation ...

EMT-eksamen: Sådan dokumenterer du dine tilfælde - dummier

EMT-eksamen: Sådan dokumenterer du dine tilfælde - dummier

Til eksamen og i feltet EMT er forpligtet til at dokumentere, hvad du observerede om patienten og miljøet, de resultater, du vurderede, den omhu du gav, og eventuelle ændringer i patientens tilstand, mens du var i din pleje. Dokumentation kan ske enten på papirformularer eller elektronisk med en computer, bærbar computer, ...