Acasă Finanțe personale Cum se găsește numărul de elemente într-un flux de date - dummies

Cum se găsește numărul de elemente într-un flux de date - dummies

Video: Biblical Series I: Introduction to the Idea of God 2024

Video: Biblical Series I: Introduction to the Idea of God 2024
Anonim

Chiar dacă un filtru Bloom poate urmări obiectele care sosesc dintr-un flux, nu poate spune câte obiecte există. Un vector de biți umplut de unul poate (în funcție de numărul de hash-uri și de probabilitatea de coliziune) să ascundă adevăratul număr de obiecte care au fost rulate la aceeași adresă.

Cunoașterea numărului distinct de obiecte este utilă în diferite situații, cum ar fi când doriți să știți cât de mulți utilizatori distinși au văzut o anumită pagină de site sau numărul de interogări distincte ale motorului de căutare. Stocarea tuturor elementelor și găsirea duplicatelor dintre ele nu pot funcționa cu milioane de elemente, în special provenind dintr-un flux. Când doriți să cunoașteți numărul obiectelor distincte dintr-un flux, trebuie să mai utilizați o funcție hash, dar abordarea presupune luarea unei schițe numerice.

Schițarea înseamnă a face o aproximare, adică o valoare inexactă, dar nu complet greșită, ca răspuns. Aproximarea este acceptabilă deoarece valoarea reală nu este prea departe de ea. În acest algoritm inteligent, HyperLogLog, care se bazează pe probabilitate și aproximație, observați caracteristicile numerelor generate de flux. HyperLogLog derivă din studiile cercetătorilor de calculatoare Nigel Martin și Philippe Flajolet. Flajolet și-a îmbunătățit algoritmul inițial, Flajolet-Martin (sau algoritmul LogLog), în versiunea HyperLogLog mai robustă, care funcționează astfel:

  1. Un hash transformă fiecare element primit din flux într-un număr.
  2. Algoritmul convertește numărul în binar, standardul numeric de bază 2 folosit de calculatoare.
  3. Algoritmul numără numărul de zerouri inițiale din numărul binar și piese ale numărului maxim pe care îl vede, adică n.
  4. Algoritmul estimează numărul de elemente distincte transferate în flux folosind n. Numărul elementelor distincte este de 2 ^ n.

De exemplu, primul element din șir este cuvântul câine. Algoritmul îl cochetează într-o valoare întregă și îl convertește în binar, cu un rezultat de 01101010. La începutul numărului apare doar un zero, astfel încât algoritmul îl înregistrează ca numărul maxim de zerouri care au urmat. Algoritmul vede apoi cuvintele papagal și lup, ale căror echivalente binare sunt 11101011 și 01101110, lăsând n neschimbate. Cu toate acestea, atunci când cuvântul cat trece, ieșirea este 00101110, deci n devine 2. Pentru a estima numărul de elemente distincte, algoritmul calculează 2 ^ n, adică 2 ^ 2 = 4. Figura arată acest proces.

Numărați numai zerouri.

Trunchiul algoritmului este că dacă hash produce rezultate aleatoare, distribuite în mod egal (ca într-un filtru Bloom), prin analizarea reprezentării binare, puteți calcula probabilitatea ca o succesiune de zerouri să apară. Deoarece probabilitatea ca un singur număr binar să fie 0 este unul din două, pentru a calcula probabilitatea secvențelor de zerouri, trebuie să multiplicați probabilitatea de 1/2 de câte ori lungimea secvenței de zerouri:

  • 50% (1/2) probabilitate pentru numere începând cu 0
  • 25% (1/2 * 1/2) probabilitate pentru numere începând cu 00
  • 12. 5% (1/2 * 1/2 * 1/2) probabilitate pentru numere începând cu 000
  • (1/2) ^ k probabilitate pentru numere care încep cu k zerouri (utilizați puteri pentru calcule mai rapide a mai multor multiplicări ale același număr)

Cu cât sunt mai puține numere pe care le vede HyperLogLog, cu atât mai mare este imprecizia. Acuratețea crește atunci când utilizați calculul HyperLogLog de mai multe ori utilizând diferite funcții de tip hash și media împreună răspunsurile de la fiecare calcul, dar hashing-ul de multe ori durează timp și fluxurile sunt rapide. Ca o alternativă, puteți utiliza același hash, dar împărțiți fluxul în grupuri (cum ar fi separarea elementelor în grupuri în momentul în care acestea sosesc pe baza comenzii lor de sosire), iar pentru fiecare grup, țineți evidența numărului maxim de zerouri care urmează. În cele din urmă, calculați estimarea elementului distinct pentru fiecare grup și calculați media aritmetică a tuturor estimărilor. Această abordare este o mediere stocastică și oferă estimări mai precise decât aplicarea algoritmului la întreg fluxul.

Cum se găsește numărul de elemente într-un flux de date - dummies

Alegerea editorilor

Administrator de rețea: Zone de căutare inversă - dummies

Administrator de rețea: Zone de căutare inversă - dummies

Interogări DNS obișnuite sunt interogări de căutare înainte corespunde unui nume de domeniu complet calificat. O căutare inversă este opusul unei căutări forward: returnează numele de domeniu complet calificat al unei gazde pe baza adresei sale IP. Căutările inverse sunt posibile din cauza unui domeniu special numit ...

Rețea Elemente de bază: Clienți și servere - manechine

Rețea Elemente de bază: Clienți și servere - manechine

Computerul de rețea care conține hard disk-urile, imprimantele și alte resurse care sunt partajate cu alte calculatoare de rețea se numește un server. Acest termen vine în repetate rânduri, deci trebuie să-l amintiți. Scrie-o pe spatele mâinii tale stângi. Orice computer care nu este un server este numit client. Aveți ...

Retea Bazele: Poduri - dummies

Retea Bazele: Poduri - dummies

O punte este un dispozitiv care conecteaza doua retele astfel incat sa actioneze ca si cum ar fi o rețea. Podurile sunt utilizate pentru a împărți o rețea mare în două rețele mai mici din motive de performanță. Vă puteți gândi la un pod ca pe un repetor inteligent. Repetoarele ascultă semnale care coboară pe un cablu de rețea, amplifică ...

Alegerea editorilor

ÎMprumuta și tweak idei de la alte comunități online - dummies

ÎMprumuta și tweak idei de la alte comunități online - dummies

, Mai degrabă decât să ia ideile altcuiva complet pentru dvs. comunitate online, încercați să riffați pe aceeași idee, dar nu atât de mult încât este evident că nu sunteți creierul din spatele brainstorming-ului. Idei sunt acolo pentru a lua, dar nu ar fi mai degrabă văzute ca cineva inovatoare, nu cineva care scours pe web ...

Branding Blogul tău

Branding Blogul tău

Branding blog-ul tău merge mult spre a face dacă este ușor de recunoscut pentru cititorii tăi. Când vedeți un punct roșu în interiorul unui cerc roșu, ce magazin vine în minte? Ce zici de acele arcuri de aur? Un nume de marcă apare în minte atunci când vedeți simbolul swoosh? La fel ca magazinele populare, restaurantele și încălțămintea ...

Construiți un Blog Mama care este Sellable - dummies

Construiți un Blog Mama care este Sellable - dummies

Dacă obiectivul pe termen lung este de a vinde blogul dvs. ar trebui să o construiască cu acest scop în minte. Evitați asocierea prea intensă a blogului cu marca dvs. personală. Un blog care poate fi valoros cu orice scriitor la cârma trebuie să îndeplinească majoritatea, dacă nu toate, următoarele criterii: Blogul este concentrat ...

Alegerea editorilor

Cum să creați o nouă campanie de anunțuri LinkedIn - dummies

Cum să creați o nouă campanie de anunțuri LinkedIn - dummies

LinkedIn oferă servicii de publicitate pentru afacerea dvs. Dacă vă decideți să utilizați LinkedIn ca instrument de marketing, va trebui doar să obțineți o nouă campanie de anunțuri în lucrări. Când sunteți gata să începeți o nouă campanie, urmați acești pași:

Opțiuni de filtrare pentru anunțul dvs. LinkedIn - manechine

Opțiuni de filtrare pentru anunțul dvs. LinkedIn - manechine

Ce opțiuni de filtrare aveți pentru anunțul dvs. LinkedIn? Alte rețele de publicitate vă permit să filtrați publicul vizat de câteva atribute cunoscute ale persoanei care vă va vedea anunțul, sexul și locația membrilor din public. LinkedIn vă permite să faceți un pas mai departe permițându-vă ...

Oferind și primind viziuni pe LinkedIn - manechine

Oferind și primind viziuni pe LinkedIn - manechine

Deși mulți oameni cred că "Nu este ceea ce știi, știi, "care este unul dintre principalele motive pentru care LinkedIn este atât de valoros, mulți oameni (recrutorii, angajații, directorii executivi, investitorii și altele) sunt foarte interesați de ceea ce știi. În mod logic, oamenii care vă cunosc cel mai bine sunt oamenii din rețeaua dvs., care ...