Huis Persoonlijke financiën Hoe het aantal elementen in een datastream te vinden - dummies

Hoe het aantal elementen in een datastream te vinden - dummies

Video: Web Apps of the Future with React by Neel Mehta 2024

Video: Web Apps of the Future with React by Neel Mehta 2024
Anonim

Hoewel een Bloom-filter objecten van een stream kan volgen, kan het niet zeggen hoeveel objecten er zijn. Een bitvector gevuld door enen kan (afhankelijk van het aantal hashes en de kans op een botsing) het ware aantal hash-objecten op hetzelfde adres verbergen.

Het aantal objecten kennen is handig in verschillende situaties, bijvoorbeeld wanneer u wilt weten hoeveel verschillende gebruikers een bepaalde websitepagina hebben gezien of het aantal verschillende zoekopdrachten voor zoekmachines. Het opslaan van alle elementen en het vinden van de duplicaten onder hen kan niet werken met miljoenen elementen, vooral afkomstig van een stream. Wanneer u het aantal verschillende objecten in een stream wilt weten, moet u nog steeds vertrouwen op een hash-functie, maar de aanpak bestaat uit het nemen van een numerieke schets.

Schetsen betekent een schatting maken, dat is een onnauwkeurige maar niet helemaal verkeerde waarde als antwoord. Benadering is acceptabel omdat de echte waarde er niet te ver van verwijderd is. In dit slimme algoritme, HyperLogLog, dat is gebaseerd op waarschijnlijkheid en benadering, observeert u de kenmerken van getallen die uit de stream zijn gegenereerd. HyperLogLog is afgeleid van de studies van computerwetenschappers Nigel Martin en Philippe Flajolet. Flajolet verbeterde hun oorspronkelijke algoritme, Flajolet-Martin (of het LogLog-algoritme), naar de robuustere HyperLogLog-versie, die zo werkt:

  1. Een hash converteert elk element dat van de stream is ontvangen naar een getal.
  2. Het algoritme converteert het getal naar binair, de standaardbasisnorm van 2 die door computers wordt gebruikt.
  3. Het algoritme telt het aantal initiële nullen in het binaire getal en tracks van het maximale aantal dat het ziet, dat is n.
  4. Het algoritme schat het aantal afzonderlijke elementen dat in de stroom is gepasseerd met behulp van n. Het aantal afzonderlijke elementen is 2 ^ n.

Het eerste element in de tekenreeks is bijvoorbeeld het woord. Het algoritme hashes het in een geheel getal en converteert het naar binair, met als resultaat 01101010. Er verschijnt slechts één nul aan het begin van het getal, dus het algoritme registreert het als het maximale aantal volgnullen. Het algoritme ziet dan de woorden papegaai en wolf, waarvan de binaire equivalenten 11101011 en 01101110 zijn, waardoor n ongewijzigd blijft. Wanneer het woord cat echter wordt doorgegeven, is de uitvoer 00101110, dus wordt n 2. Om het aantal afzonderlijke elementen te schatten, berekent het algoritme 2 ^ n, dat wil zeggen 2 ^ 2 = 4. De figuur toont dit proces.

Alleen voorloopnullen tellen.

De truc van het algoritme is dat als je hash willekeurige resultaten produceert, gelijk verdeeld (zoals in een Bloom-filter), door te kijken naar de binaire representatie, je de kans kunt berekenen dat een reeks nullen verschijnt. Omdat de kans dat een enkelvoudig binair getal 0 is één op twee is, vermenigvuldigt u die kans van 1/2 keer net zo vaak als de lengte van de reeks van nullen:

  • 50 procent voor het berekenen van de kans op reeksen nullen. (1/2) kans op getallen die beginnen met 0
  • 25 procent (1/2 * 1/2) kans op getallen die beginnen met 00
  • 12. 5 procent (1/2 * 1/2 * 1/2) kans voor getallen die beginnen met 000
  • (1/2) ^ k waarschijnlijkheid voor getallen die beginnen met k-nullen (je gebruikt krachten voor snellere berekeningen van veel vermenigvuldigingen van de hetzelfde nummer)

Hoe minder getallen die HyperLogLog ziet, hoe groter de onnauwkeurigheid. De nauwkeurigheid neemt toe wanneer u de HyperLogLog-berekening vele malen gebruikt met verschillende hash-functies en de antwoorden van elke berekening tezamen meet, maar hashing vele malen kost tijd en streams zijn snel. Als alternatief kunt u dezelfde hash gebruiken maar de stroom in groepen verdelen (zoals door de elementen in groepen te splitsen wanneer ze arriveren op basis van hun aankomstorder) en voor elke groep het maximale aantal volgnullen bij te houden. Uiteindelijk berekent u de afzonderlijke elementschatting voor elke groep en berekent u het rekenkundig gemiddelde van alle schattingen. Deze benadering is stochastisch middelen en biedt nauwkeuriger schattingen dan het toepassen van het algoritme op de hele stroom.

Hoe het aantal elementen in een datastream te vinden - dummies

Bewerkers keuze

Hoe u uw LinkedIn-profiel kunt vermarkten voor de markt - dummies

Hoe u uw LinkedIn-profiel kunt vermarkten voor de markt - dummies

Wanneer het komt om het voordeel dat u van LinkedIn krijgt te maximaliseren, bent u uw grootste pleitbezorger. Hoewel je netwerk van connecties je helpt te groeien, gebeurt veel van je marketing zonder dat je erbij betrokken bent. Nadat je je profiel hebt aangemaakt, worden die en andere LinkedIn-activiteit van je gelezen en beoordeeld door de ...

Hoe u uw LinkedIn-netwerk kunt bouwen voordat u naar een nieuwe stad gaat - dummies

Hoe u uw LinkedIn-netwerk kunt bouwen voordat u naar een nieuwe stad gaat - dummies

Deze dagen, wanneer u naar een nieuwe stad moet verhuizen, kunt u er veel plannen voor maken op LinkedIn en op internet. Je kunt de buurten onderzoeken, de schoolsystemen bekijken en online naar huizen gaan. Je kunt een stap verder gaan als je van plan bent om naar een andere ...

Hoe u uw LinkedIn-contactinstellingen controleert - dummies

Hoe u uw LinkedIn-contactinstellingen controleert - dummies

U zeker wilt dat u de juiste instellingen selecteert contactinstellingen voor uw LinkedIn-profiel. Als u bijvoorbeeld op zoek bent naar een nieuwe baan, wilt u er zeker van zijn dat de optie voor Carrièremogelijkheden is gecontroleerd. Wanneer u klaar bent om uw contactinstellingen te controleren, volgt u deze stappen: Ga naar ...

Bewerkers keuze

Canon EOS Rebel XS / 1000D voor Dummy's Cheat Sheet - dummies

Canon EOS Rebel XS / 1000D voor Dummy's Cheat Sheet - dummies

Uw Canon EOS Rebel XS / 1000D heeft alle functies die u kunt gebruiken om fantastische foto's te maken. Je moet de beeldmodus instellen op het onderwerp van je foto en de Canon EOS Rebel XS / 1000D laat je volledig of gedeeltelijk automatisch gaan met de belichtingsinstellingen.

Canon Rebel T3-serie camera's: Live-modus Autofocus in Live View - dummies

Canon Rebel T3-serie camera's: Live-modus Autofocus in Live View - dummies

Live-modus Met autofocus kunt u de focus instellen op uw Canon EOS Rebel T3 of T3i zonder tijdelijk het voorbeeld van de monitor te verliezen. Bovendien, in plaats van het selecteren van negen autofocuspunten, verplaatst u eenvoudig een enkel scherpstelpunt over uw onderwerp. Aan de andere kant is de autofocus van de Live-modus merkbaar langzamer dan in de Quick-modus, en ...

Bewerkers keuze

Wijzigt Hoe tekstgrootte te wijzigen in Word 2016 - dummies

Wijzigt Hoe tekstgrootte te wijzigen in Word 2016 - dummies

Tekstgrootte wordt ingesteld in uw Word 2016 document gebaseerd over de meting van de oude letterzetter, ook wel punten genoemd. Hier zijn enkele aandachtspunten waarmee u rekening moet houden bij het opmaken van tekst in Word: hoe groter de puntgrootte, hoe groter de tekst. De meeste gedrukte tekst is 10 of 12 punten lang. Koppen zijn meestal 14 ...

Grammatica controleren in Word 2007 - dummies

Grammatica controleren in Word 2007 - dummies

Naast het controleren op correcte spelling, kunt u met Word 2007 ook om uw documenten te bewijzen om grammaticale fouten te voorkomen. U kunt de grammaticasuggesties van Word bekijken terwijl u door het document bladert, of u kunt een traditionele spellingcontrole uitvoeren. Word biedt u zelfs de kans om de gemarkeerde fout te onderzoeken en meer te leren van ...

Spelling controleren terwijl u typt in Word 2013 - dummies

Spelling controleren terwijl u typt in Word 2013 - dummies

Woord 2013 heeft een interne bibliotheek vol met ontelbare woorden, allemaal correct gespeld. Telkens wanneer u een woord typt, wordt het vergeleken met dat woordenboek. Wanneer het woord niet wordt gevonden, wordt dit als verdacht gemarkeerd in uw document. Het merk is een rode zigzaglijn. Mijn advies: blijf typen. Laat de "rode zigzag van een ...