Accueil Finances personnelles Comment trouver le nombre d'éléments dans un flux de données - mannequins

Comment trouver le nombre d'éléments dans un flux de données - mannequins

Vidéo: Comment avoir la Nocturno sur Fortnite Sauver Le Monde 2025

Vidéo: Comment avoir la Nocturno sur Fortnite Sauver Le Monde 2025
Anonim

Même si un filtre Bloom peut suivre les objets arrivant d'un flux, il ne peut pas dire combien il y a d'objets. Un vecteur bit rempli par un peut (en fonction du nombre de hashs et de la probabilité de collision) cacher le vrai nombre d'objets hachés à la même adresse.

La connaissance du nombre d'objets est utile dans diverses situations, par exemple lorsque vous souhaitez connaître le nombre d'utilisateurs distincts ayant consulté une page de site Web ou le nombre de requêtes de moteur de recherche distinctes. Stocker tous les éléments et trouver les doublons parmi eux ne peut pas fonctionner avec des millions d'éléments, en particulier venant d'un flux. Lorsque vous voulez connaître le nombre d'objets distincts dans un flux, vous devez toujours utiliser une fonction de hachage, mais l'approche consiste à prendre une esquisse numérique.

Esquisse signifie prendre une approximation, c'est une valeur inexacte mais pas complètement fausse comme réponse. L'approximation est acceptable car la valeur réelle n'est pas trop éloignée. Dans cet algorithme intelligent, HyperLogLog, basé sur la probabilité et l'approximation, vous observez les caractéristiques des nombres générés à partir du flux. HyperLogLog est issu des études des informaticiens Nigel Martin et Philippe Flajolet. Flajolet a amélioré son algorithme initial, Flajolet-Martin (ou l'algorithme LogLog), dans la version plus robuste de HyperLogLog, qui fonctionne comme ceci:

  1. Un hachage convertit chaque élément reçu du flux en un nombre.
  2. L'algorithme convertit le nombre en binaire, la norme numérique de base 2 que les ordinateurs utilisent.
  3. L'algorithme compte le nombre de zéros initiaux dans le nombre binaire et les traces du nombre maximum qu'il voit, qui est n.
  4. L'algorithme estime le nombre d'éléments distincts passés dans le flux en utilisant n. Le nombre d'éléments distincts est 2 ^ n.

Par exemple, le premier élément de la chaîne est le mot chien. L'algorithme le transforme en entier et le convertit en binaire, avec un résultat de 01101010. Seul un zéro apparaît au début du nombre, l'algorithme l'enregistre comme le nombre maximal de zéros finaux vus. L'algorithme voit alors les mots perroquet et loup, dont les équivalents binaires sont 11101011 et 01101110, laissant n inchangé. Cependant, lorsque le mot cat passe, la sortie est 00101110, donc n devient 2. Pour estimer le nombre d'éléments distincts, l'algorithme calcule 2 ^ n, c'est-à-dire 2 ^ 2 = 4. La figure montre ce processus.

Compter uniquement les zéros en tête.

L'astuce de l'algorithme est que si votre hash produit des résultats aléatoires, équitablement répartis (comme dans un filtre Bloom), en regardant la représentation binaire, vous pouvez calculer la probabilité qu'une séquence de zéros apparaisse. Parce que la probabilité qu'un nombre binaire unique soit 0 est une sur deux, pour calculer la probabilité de séquences de zéros, il suffit de multiplier cette probabilité 1/2 autant de fois que la longueur de la séquence de zéros:

  • 50% (1/2) probabilité pour les nombres commençant à 0
  • 25% (1/2 * 1/2) probabilité pour les nombres commençant par 00
  • 12. 5% (1/2 * 1/2 * 1/2) probabilité pour les nombres commençant à 000
  • (1/2) ^ k probabilité pour les nombres commençant par k zéros (vous utilisez les puissances pour les calculs plus rapides de nombreuses multiplications de la même nombre)

Moins il y a de chiffres visibles par HyperLogLog, plus grande est l'imprécision. La précision augmente lorsque vous utilisez le calcul HyperLogLog plusieurs fois en utilisant différentes fonctions de hachage et que vous calculez la moyenne des réponses de chaque calcul, mais le hachage de nombreuses fois prend du temps et les flux sont rapides. Vous pouvez également utiliser le même hachage, mais diviser le flux en groupes (par exemple, en séparant les éléments en groupes à leur arrivée en fonction de leur ordre d'arrivée) et, pour chaque groupe, suivre le nombre maximal de zéros de fin. En fin de compte, vous calculez l'estimation de l'élément distinct pour chaque groupe et calculez la moyenne arithmétique de toutes les estimations. Cette approche est un moyennage stochastique et fournit des estimations plus précises que l'application de l'algorithme à l'ensemble du flux.

Comment trouver le nombre d'éléments dans un flux de données - mannequins

Le choix des éditeurs

Conventions de dénomination pour Ruby on Rails - mannequins

Conventions de dénomination pour Ruby on Rails - mannequins

Vous utilisez Ruby on Rails pour créer un site Web application ou application de base de données Web, ce qui est très intelligent de votre part. En fonction de ce que vous utilisez (une application, une relation un-à-plusieurs ou une relation plusieurs-à-plusieurs), vous utilisez différentes variantes des protocoles d'attribution de noms Rails, qui sont expliquées dans les sections suivantes. Ruby Naming for ...

En orbite, panoramique et zoom dans la vue 3D de Blender - mannequins

En orbite, panoramique et zoom dans la vue 3D de Blender - mannequins

En essayant de naviguer dans un espace en trois dimensions à travers un écran bidimensionnel comme un écran d'ordinateur, vous ne pouvez pas interagir avec cet espace 3D virtuel exactement comme vous le feriez dans le monde réel, ou espace de vie. La meilleure façon de visualiser le travail en 3D à travers un programme comme Blender est d'imaginer la vue 3D comme vos yeux ...

Déplacement de clips sur la timeline dans Final Cut Pro HD - Ficelles

Déplacement de clips sur la timeline dans Final Cut Pro HD - Ficelles

Final Cut Pro HD Timeline vous permet d'organiser tous vos clips vidéo et audio afin qu'ils racontent l'histoire que vous voulez raconter. Pour comprendre le fonctionnement de la Timeline, imaginez-la comme une page de partitions, mais plutôt que de placer des notes de musique de différentes durées (noires, demi-notes, ...

Le choix des éditeurs

Contrôle et modification de l'associativité des dimensions dans AutoCAD - Dummies

Contrôle et modification de l'associativité des dimensions dans AutoCAD - Dummies

Lorsque vous ajoutez des dimensions en sélectionnant des objets ou en utilisant l'accrochage aux objets Pour sélectionner des points sur les objets, AutoCAD crée normalement des dimensions associatives, qui sont connectées aux objets et se déplacent avec eux. C'est le cas dans les nouveaux dessins créés à l'origine dans toute version d'AutoCAD à partir de 2002. Si vous ...

Copie de styles de cote existants dans AutoCAD 2008 - mannequins

Copie de styles de cote existants dans AutoCAD 2008 - mannequins

Si vous avez la chance de travailler dans un bureau Quelqu'un a mis en place des styles de cotes qui conviennent à votre secteur d'activité et à votre projet. Vous pouvez le copier et ainsi éviter de devoir créer vos propres styles de cote. (Un style de cote - ou dimstyle pour faire court - est une collection de paramètres de dessin appelée dimension ...

En choisissant un style d'édition AutoCAD -

En choisissant un style d'édition AutoCAD -

Dans AutoCAD vous passez généralement plus de temps à éditer que dessiner des objets. C'est en partie parce que le processus de conception et de rédaction est, par nature, sujet à des changements, et aussi parce que AutoCAD vous permet de modifier facilement les objets proprement. AutoCAD propose trois styles d'édition: Commande-première Sélection-première Objet-direct (poignée) AutoCAD fait référence à l'édition de commandes comme verbe-nom ...

Le choix des éditeurs

Praxis Examen d'éducation élémentaire - Présentations orales - mannequins

Praxis Examen d'éducation élémentaire - Présentations orales - mannequins

Parce que les élèves doivent généralement donner des présentations orales en classe , vous rencontrerez probablement une question sur ce sujet dans l'examen Praxis Elementary Education. Plus formelles que les discussions de groupe, les présentations orales ont leurs propres règles pour le conférencier. Lorsque vous donnez une présentation en classe, il y a plusieurs ...

Praxis Examen d'éducation élémentaire - Littérature et texte d'information - mannequins

Praxis Examen d'éducation élémentaire - Littérature et texte d'information - mannequins

L'examen Praxis Elementary Education sur la littérature et le texte d'information, c'est-à-dire la fiction et la non-fiction. Vous devrez donc vous familiariser avec les différents genres d'écriture. La compréhension du texte est un processus qui se produit au fil du temps.

Praxis Examen d'éducation élémentaire - Connaissance phonologique - mannequins

Praxis Examen d'éducation élémentaire - Connaissance phonologique - mannequins

Vous rencontrerez probablement une ou deux questions qui impliquent des questions phonologiques sensibilisation à l'examen Praxis Elementary Education. La conscience phonologique est une compétence large impliquant la reconnaissance de son. Les lecteurs débutants commencent par apprendre les sons individuels, ou phonèmes, dans des mots parlés. Par exemple, le mot chat a trois phonèmes: / c / / a / / t /. Un lecteur débutant apprend ...