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 ... 2024

Video: ESOcast 124: Q&A with ESO's Outgoing Director General Tim de Zeeuw — Thoughts and reflections on ... 2024
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

Optimierung sozialer Medien: Anpassung von Inhalten an Specialty Channels - Dummies

Optimierung sozialer Medien: Anpassung von Inhalten an Specialty Channels - Dummies

Eine der besten Möglichkeiten, um Zusätzliche Meilenzahl von Ihren Sozialmedieninhalt ist, sie umzupacken und sie auf verschiedenen Kanälen freizugeben. Wenn Sie einen Blogbeitrag haben und den Beitrag direkt über Social Sharing bewerben, können Sie diesen Blogpost in eine herunterladbare PDF-Datei umwandeln. Wenn die ...

Social-Media-Optimierung: SMART Marketing - Dummies

Social-Media-Optimierung: SMART Marketing - Dummies

Wenn Sie Ihre Social Media-Ziele definiert haben, haben Sie Ihr Ziel identifiziert Zielgruppe und fand heraus, wo sie auf Social-Media-Kanälen zu finden sind, nutzte die Daten aus Analyse-Programmen, um die optimale Zeit zu bestimmen, um in sozialen Medien aktiv zu sein, und eine umfassende Social-Media-Verhaltenspolitik setzen Sie sind bereit, zu bewegen ...

Social Media Optimierung: Was Sie über Semantic Markup wissen sollten - Dummies

Social Media Optimierung: Was Sie über Semantic Markup wissen sollten - Dummies

Wenn Sie möchten Um mit Ihrer Social-Media-Optimierungsstrategie wirklich erfolgreich zu sein, müssen Sie etwas über semantisches Markup wissen. Einfach gesagt ist semantisches Markup ein standardisierter Weg, um Code zu schreiben, der eine Webseite für dumme Maschinen wie Suchmaschinen leicht verständlich macht. Es ist eine Möglichkeit, den Inhalt einer Webseite mit Anmerkungen zu versehen ...

Die Wahl des Herausgebers

Online-Community-Manager sollten ihre Ausbildung ausweiten - Dummies

Online-Community-Manager sollten ihre Ausbildung ausweiten - Dummies

Haben Sie keine Angst, etwas Neues zu lernen. Dies kann bedeuten, dass Sie Artikel über Ihre Branche, die Marke und das Online-Community-Management lesen. Dies kann bedeuten, dass Sie nach Bildung suchen, die es Ihnen ermöglicht, Ihre Community besser zu betreiben. Es schadet nie, grundlegendes Web- oder Blog-Design zu kennen und auf dem neuesten Stand der Technik zu bleiben. Außerdem ...

Online-Community-Manager sollten mit Beispiel führen - Dummies

Online-Community-Manager sollten mit Beispiel führen - Dummies

Ihre Community orientiert sich an Ihnen. Wenn du schwörst und nistest, werden die Mitglieder wissen, dass dieses Verhalten in Ordnung ist. Wenn Sie aber jeden Morgen fröhlich grüßen, folgen sie Ihrem Beispiel. Sogar Leute, die von Drama und Negativität angezogen werden, werden sich entweder an der guten Miene beteiligen, oder sie werden so müde ...

Online Community-Manager Bleiben Sie auf dem neuesten Stand der Trends - dummies

Online Community-Manager Bleiben Sie auf dem neuesten Stand der Trends - dummies

Ob es sich um Ihre Online-Community handelt oder nicht müssen Sie sich der Marktentwicklung bewusst sein. Was kaufen Leute? Wie kommunizieren sie online? Geben sie mehr oder weniger Geld aus? Welche Lebensmittel, Gadgets oder Moden sind rein oder raus? Um auf dem neuesten Stand der Trends zu bleiben, sollten Sie wissen, was und was so ist.

Die Wahl des Herausgebers

Kennenlernen der Aufgabenleiste in Outlook 2007 - dummies

Kennenlernen der Aufgabenleiste in Outlook 2007 - dummies

Ausblick 2007 eine neue Funktion namens To-Do-Leiste, die alle Dinge, die Sie tun müssen, zusammenfasst und sie in einem Bereich auf der rechten Seite des Outlook-Bildschirms anzeigt. Das Ziel der To-Do-Leiste ist es, Ihnen mitzuteilen, was Sie auf einen Blick tun müssen, anstatt ...

ÄNdern der Größe einer Notiz in Outlook 2013 - Hinweise für Dummies

ÄNdern der Größe einer Notiz in Outlook 2013 - Hinweise für Dummies

In Outlook 2013 befolgen alle Regeln dass andere Windows-Boxen folgen, also wenn Sie ein alter Hase beim Verschieben und Ändern der Größe von Boxen in Windows sind, werden Sie in Ordnung sein. Wenn Sie mit Windows und Dialogfeldern noch nicht vertraut sind, machen Sie sich keine Sorgen - Notizen lassen sich genauso einfach in der Größe ändern wie zum Schreiben und Lesen. Ändern ...

Kennenlernen von Ansichten in Outlook 2007 - Dummys

Kennenlernen von Ansichten in Outlook 2007 - Dummys

In Outlook 2007 verfügt jedes Outlook-Modul über eine eigene Auswahl von Ansichten. Jede Art von Ansicht ist so organisiert, dass ein bestimmtes Merkmal Ihrer Informationen auf den ersten Blick sichtbar wird. Sie können die Art ändern, wie Sie eine Ansicht anzeigen, indem Sie sie sortieren, filtern oder gruppieren. Sie können mit Ansichten nicht falsch gehen, weil Sie ...