Zuhause Persönliche Finanzen , Wie die Anzahl der Elemente in einem Datenstrom zu finden - Attrappen

, Wie die Anzahl der Elemente in einem Datenstrom zu finden - Attrappen

Video: ESOcast 124: Q&A with ESO's Outgoing Director General Tim de Zeeuw — Thoughts and reflections on ... 2025

Video: ESOcast 124: Q&A with ESO's Outgoing Director General Tim de Zeeuw — Thoughts and reflections on ... 2025
Anonim

Auch wenn ein Bloom-Filter Objekte verfolgen kann, die von einem Stream kommen, kann er nicht feststellen, wie viele Objekte dort vorhanden sind. Ein mit Einsen gefüllter Bitvektor kann (abhängig von der Anzahl der Hashes und der Kollisionswahrscheinlichkeit) die wahre Anzahl der Objekte verschlüsseln, die an der gleichen Adresse gehasht werden.

Die Kenntnis der eindeutigen Anzahl von Objekten ist in verschiedenen Situationen nützlich, z. B. wenn Sie wissen möchten, wie viele verschiedene Benutzer eine bestimmte Website-Seite oder die Anzahl verschiedener Suchmaschinen-Abfragen gesehen haben. Alle Elemente zu speichern und die Duplikate unter ihnen zu finden, kann nicht mit Millionen von Elementen arbeiten, insbesondere wenn sie aus einem Stream kommen. Wenn Sie wissen möchten, wie viele verschiedene Objekte in einem Stream vorhanden sind, müssen Sie sich dennoch auf eine Hash-Funktion verlassen. Bei diesem Ansatz wird jedoch eine numerische Skizze verwendet.

Skizzieren bedeutet, eine Näherung zu nehmen, also einen ungenauen, aber nicht völlig falschen Wert als Antwort. Näherung ist akzeptabel, da der reale Wert nicht zu weit davon entfernt ist. In diesem intelligenten Algorithmus, HyperLogLog,, der auf Wahrscheinlichkeit und Näherung basiert, beobachten Sie die Eigenschaften von Zahlen, die aus dem Datenstrom generiert werden. HyperLogLog leitet sich aus den Studien der Informatiker Nigel Martin und Philippe Flajolet ab. Flajolet verbesserte ihren anfänglichen Algorithmus, Flajolet-Martin (oder der loglog Algorithmus), in die robustere HyperLogLog Version, die wie folgt funktioniert:

  1. Ein Hash konvertiert jedes vom Stream empfangene Element in eine Zahl.
  2. Der Algorithmus konvertiert die Zahl in eine Binärdatei, den numerischen Standard der Basis 2, den Computer verwenden.
  3. Der Algorithmus zählt die Anzahl der Nullen in der Binärzahl und die Anzahl der Spuren, die er sieht, also n.
  4. Der Algorithmus schätzt die Anzahl der einzelnen Elemente, die mit n im Stream übergeben wurden. Die Anzahl der verschiedenen Elemente ist 2 ^ 999 n 999.
    Zum Beispiel ist das erste Element in der Zeichenkette das Wort
Hund.

Der Algorithmus es in einen ganzzahligen Wert Hashes und wandelt sie in binären, mit einem Ergebnis von 01101010. nur eine Null erscheint am Anfang der Zahl, so geht der Algorithmus zeichnet sie als die maximale Anzahl von Nullen gesehen. Der Algorithmus sieht dann die Worte Papagei und Wolf,, deren binären Äquivalente 11101011 und 01101110, n unverändert bleibt. Wenn jedoch das Wort cat verläuft, wird der Ausgang 00101110 ist, so wird n 2 die Anzahl der unterschiedlichen Elemente abzuschätzen, berechnet der Algorithmus 2 ^ n, das heißt, 2 ^ 2 = 4 ist. Die Abbildung zeigt diesen Vorgang. Nur führende Nullen zählen. Der Trick des Algorithmus ist, dass, wenn Ihr Hash zufällige Ergebnisse erzeugt, gleichmäßig verteilt (wie in einem Bloom-Filter), indem Sie die binäre Darstellung betrachten, können Sie die Wahrscheinlichkeit berechnen, dass eine Folge von Nullen erschien. Da die Wahrscheinlichkeit, dass eine einzelne Binärzahl 0 ist, eins zu zwei ist, multiplizieren Sie zum Berechnen der Wahrscheinlichkeit von Folgen von Nullen einfach die 1/2 Wahrscheinlichkeit so oft wie die Länge der Folge von Nullen:

50 Prozent (1/2) Wahrscheinlichkeit für Zahlen, die mit einer Wahrscheinlichkeit von 0

25 Prozent (1/2 * 1/2) beginnen, beginnend mit 00

  • 12. 5 Prozent (1/2 * 1/2 * 1/2) Wahrscheinlichkeit für Zahlen, die mit 000
  • (1/2) beginnen ^ k Wahrscheinlichkeit für Zahlen, die mit k Nullen beginnen (Sie verwenden Kräfte für schnellere Berechnungen von vielen Multiplikationen der gleiche Zahl)
  • Je weniger Zahlen HyperLogLog sieht, desto größer ist die Ungenauigkeit. Die Genauigkeit erhöht sich, wenn Sie die HyperLogLog-Berechnung viele Male mit verschiedenen Hash-Funktionen verwenden und die Antworten aus jeder Berechnung zusammen zählen, aber das Hashing dauert oft und die Datenströme sind schnell. Alternativ können Sie den gleichen Hash verwenden, aber den Stream in Gruppen aufteilen (z. B. durch Trennen der Elemente in Gruppen, wenn diese entsprechend ihrer Ankunftsreihenfolge ankommen), und für jede Gruppe verfolgen Sie die maximale Anzahl von nachgestellten Nullen. Am Ende berechnen Sie die eindeutige Elementschätzung für jede Gruppe und berechnen das arithmetische Mittel aller Schätzungen. Dieser Ansatz ist eine stochastische Mittelwertbildung und liefert präzisere Schätzungen als die Anwendung des Algorithmus auf den gesamten Datenstrom.
, Wie die Anzahl der Elemente in einem Datenstrom zu finden - Attrappen

Die Wahl des Herausgebers

Wie man Dateien in C ++ kopiert - Dummies

Wie man Dateien in C ++ kopiert - Dummies

Ah, eine Datei kopieren - etwas so einfaches, es passiert alles Zeit. Kopiere diese Datei dorthin; Kopieren Sie diese Datei hier. Aber was genau passiert, wenn Sie eine Datei kopieren? Sie erstellen tatsächlich eine neue Datei und füllen diese mit dem gleichen Inhalt wie die Originaldatei. Und wie machst du das? Nun, ...

Anleitung zum Erstellen eines Verzeichnisses in C ++ - Dummies

Anleitung zum Erstellen eines Verzeichnisses in C ++ - Dummies

Wenn Sie ein Verzeichnis erstellen möchten, können Sie das MKdir Funktion. Wenn die Funktion das Verzeichnis für Sie erstellen kann, gibt sie eine 0 zurück. Andernfalls wird ein Wert ungleich Null zurückgegeben. (Wenn Sie es ausführen, erhalten Sie eine -1, aber Ihre beste Wette - immer - ist es, gegen 0 zu testen.) Hier ist einige ...

Wie man eine einfache mathematische Vorlage in C ++ - Dummies

Wie man eine einfache mathematische Vorlage in C ++ - Dummies

Mit einer mathematischen Vorlage erstellt, die man normalerweise benötigt Zugriff auf eine Vielzahl von Berechnungen, aber nur jeweils eine oder zwei dieser Berechnungen. Zum Beispiel, wenn jemand Ihre Hypothek berechnet, muss er die Amortisationsrechnung nicht kennen. Die Person kann jedoch die Amortisationsberechnung benötigen, wenn Sie mit ...

Die Wahl des Herausgebers

ASVAB: Lesen für die Studie - Dummies

ASVAB: Lesen für die Studie - Dummies

Lesen für die Zwecke des Studiums der ASVAB ist eine andere Art des Lesens. Leseverständnis erfordert nur, dass Sie Informationen lange genug im Kurzzeitgedächtnis speichern, um einige Sekunden später eine Frage zu beantworten. Zum Lesen für die Zwecke des Studiums müssen Sie wichtige Informationen in Ihr Langzeitgedächtnis einpflegen - ...

ASVAB Mathematik Wissenspraxis: Ungleichungen - Dummies

ASVAB Mathematik Wissenspraxis: Ungleichungen - Dummies

Als wäre Algebra nicht anspruchsvoll genug, einige Fragen zur Der Subtest Mathematik auf dem ASVAB wird auch eine Ungleichheit einwerfen - nur um sicherzustellen, dass Sie aufmerksam sind. Wie erkennst du eine Ungleichheit? Halten Sie Ausschau nach Fragen mit mehr als oder weniger als Symbolen oder nach Graphen, die eine Zahlenlinie mit einem ...

ASVAB Mathematische Wissenspraxis: Fraktionen - Dummies

ASVAB Mathematische Wissenspraxis: Fraktionen - Dummies

Der Subtest Mathematikwissen auf dem ASVAB wird Fragen beinhalten, die Sie fragen mit Teilen eines Ganzen oder Fraktionen arbeiten. Diese Fragen können das Multiplizieren, Dividieren, Addieren, Subtrahieren und Konvertieren von Brüchen beinhalten, ähnlich den folgenden Übungsfragen. Übungsfragen Welche Fraktionen sind nicht gleichwertig? Gegeben einfach den Ausdruck. Antworten und Erklärungen Das richtige ...

Die Wahl des Herausgebers

Hinzufügen von Flash-Audio- und Videodateien in Dreamweaver - Dummies

Hinzufügen von Flash-Audio- und Videodateien in Dreamweaver - Dummies

Adobe besitzt sowohl Flash als auch Dreamweaver Daher finden Sie großartige Unterstützung für Flash-Dateien in Dreamweaver. Das Dialogfeld "FLV einfügen" erleichtert das Festlegen von Parametern für Flash. Dreamweaver erkennt sogar automatisch die Größe von Flash-Videodateien. Sie können Flash auch zum Erstellen und Einfügen von Audiodateien verwenden, wobei nur der Player angezeigt wird.

Einstellen von Bildhelligkeit und -kontrast in Dreamweaver - Dummies

Einstellen von Bildhelligkeit und -kontrast in Dreamweaver - Dummies

Dreamweaver bietet Werkzeuge zum Erstellen von Bildern Einstellungen, einschließlich der Helligkeit und des Kontrastes. Durch die Anpassung der Bildhelligkeit können Sie die Gesamtlichtmenge in einem Bild ändern. Kontrast steuert den Unterschied zwischen hellen und dunklen Bereichen eines Bildes. Wenn Sie die Dreamweaver-Bearbeitungswerkzeuge verwenden, wird das Bild dauerhaft geändert, wenn die Seite ...

Hinzufügen von Bildern zu Ihrer Website in Dreamweaver - Dummies

Hinzufügen von Bildern zu Ihrer Website in Dreamweaver - Dummies

Wenn Sie Ihrer Website ein Bild hinzufügen, erscheint anfangs fast magisch, weil der Prozess mit Dreamweaver so einfach ist. Die Herausforderung bei Webgrafiken besteht darin, sie nicht zu Ihren Seiten hinzuzufügen, sondern gut aussehende Bilder zu erstellen, die schnell im Browser Ihres Viewers geladen werden. Sie benötigen ein anderes Programm wie Photoshop, Photoshop Elements oder Fireworks, um ...