Casa Finanza personale Come trovare il numero di elementi in un flusso di dati - dummy

Come trovare il numero di elementi in un flusso di dati - dummy

Video: Il problema del massimo 2025

Video: Il problema del massimo 2025
Anonim

Anche se un filtro Bloom può tracciare oggetti provenienti da uno stream, non può sapere quanti oggetti ci sono. Un vettore di bit riempito da uno può (a seconda del numero di hash e della probabilità di collisione) nascondere il vero numero di oggetti sottoposti a hashing allo stesso indirizzo.

Conoscere il numero distinto di oggetti è utile in varie situazioni, ad esempio quando si desidera sapere quanti utenti distinti hanno visto una determinata pagina del sito Web o il numero di query distinte del motore di ricerca. Memorizzare tutti gli elementi e trovare i duplicati tra di loro non può funzionare con milioni di elementi, in particolare provenienti da uno stream. Quando si desidera conoscere il numero di oggetti distinti in uno stream, è comunque necessario fare affidamento su una funzione hash, ma l'approccio prevede l'utilizzo di uno schizzo numerico.

Disegnare significa prendere un'approssimazione, che è un valore inesatto ma non completamente sbagliato come risposta. Il ravvicinamento è accettabile perché il valore reale non è troppo lontano da esso. In questo algoritmo intelligente, HyperLogLog, che si basa sulla probabilità e sull'approssimazione, si osservano le caratteristiche dei numeri generati dallo stream. HyperLogLog deriva dagli studi degli scienziati informatici Nigel Martin e Philippe Flajolet. Flajolet ha migliorato il loro algoritmo iniziale, Flajolet-Martin (o l'algoritmo LogLog), nella versione più robusta di HyperLogLog, che funziona così:

  1. Un hash converte tutti gli elementi ricevuti dallo stream in un numero.
  2. L'algoritmo converte il numero in binario, lo standard numerico di base 2 utilizzato dai computer.
  3. L'algoritmo conta il numero di zeri iniziali nel numero binario e le tracce del numero massimo che vede, ovvero n.
  4. L'algoritmo stima il numero di elementi distinti passati nello stream utilizzando n. Il numero di elementi distinti è 2 ^ n.

Ad esempio, il primo elemento nella stringa è la parola dog. L'algoritmo lo inserisce in un valore intero e lo converte in binario, con un risultato di 01101010. All'inizio del numero appare solo uno zero, quindi l'algoritmo lo registra come il numero massimo di zeri finali visti. L'algoritmo vede quindi le parole pappagallo e lupo, i cui equivalenti binari sono 11101011 e 01101110, lasciando n invariato. Tuttavia, quando passa la parola cat, l'output è 00101110, quindi n diventa 2. Per stimare il numero di elementi distinti, l'algoritmo calcola 2 ^ n, cioè 2 ^ 2 = 4. La figura mostra questo processo.

Contando solo zeri iniziali.

Il trucco dell'algoritmo è che se il tuo hash produce risultati casuali, equamente distribuiti (come in un filtro Bloom), guardando la rappresentazione binaria, puoi calcolare la probabilità che appaia una sequenza di zeri. Poiché la probabilità che un singolo numero binario sia 0 è uno su due, per calcolare la probabilità di sequenze di zeri, basta moltiplicare la probabilità 1/2 quante volte la lunghezza della sequenza di zeri:

  • 50 percento (1/2) probabilità per i numeri che iniziano con 0
  • 25 percento (1/2 * 1/2) di probabilità per i numeri che iniziano con 00
  • 12. 5 percento (1/2 * 1/2 * 1/2) probabilità per i numeri che iniziano con 000
  • (1/2) ^ k probabilità per i numeri che iniziano con k zeri (si usano i poteri per calcoli più veloci di molte moltiplicazioni del stesso numero)

Minore è il numero di HyperLogLog, maggiore è l'imprecisione. L'accuratezza aumenta quando si utilizza il calcolo HyperLogLog più volte utilizzando diverse funzioni hash e si calcola la media delle risposte da ciascun calcolo, ma l'hashing richiede molte volte tempo e gli stream sono veloci. In alternativa, puoi utilizzare lo stesso hash ma dividere il flusso in gruppi (ad esempio separando gli elementi in gruppi non appena arrivano in base al loro ordine di arrivo) e per ogni gruppo, tieni traccia del numero massimo di zeri finali. Alla fine, si calcola la stima dell'elemento distinto per ciascun gruppo e si calcola la media aritmetica di tutte le stime. Questo approccio è la media stocastica e fornisce stime più precise rispetto all'applicazione dell'algoritmo all'intero flusso.

Come trovare il numero di elementi in un flusso di dati - dummy

Scelta dell'editore

Come salvare le immagini in un file immagine in R - dummies

Come salvare le immagini in un file immagine in R - dummies

Se vuoi pubblicare le tue risultati, è necessario salvare la trama in un file in R e quindi importare questo file grafico in un altro documento. Tuttavia, per la maggior parte del tempo, potresti semplicemente voler utilizzare la grafica R in modo interattivo per esplorare i tuoi dati. Per salvare un grafico su un'immagine ...

Come cercare più parole in R - dummies

Come cercare più parole in R - dummies

Quando si lavora con il testo in R, potrebbe essere necessario per trovare parole o motivi all'interno del testo. Immagina di avere una lista degli stati negli Stati Uniti e vuoi scoprire quali nomi di stato consistono in due parole. Per trovare sottostringhe, è possibile utilizzare la funzione grep (), che prende due argomenti essenziali: ...

Come cercare le singole parole in R - dummies

Come cercare le singole parole in R - dummies

Quando lavori con il testo, spesso tu può risolvere i problemi se riesci a trovare parole o motivi all'interno del testo. R rende questo facile da fare. Immagina di avere una lista degli stati negli Stati Uniti e vuoi scoprire quale di questi stati contiene la parola Nuovo. Per indagare su questo ...

Scelta dell'editore

Come calcolare le detrazioni e i crediti di imposta sugli investimenti immobiliari per l'esame di licenza immobiliare

Come calcolare le detrazioni e i crediti di imposta sugli investimenti immobiliari per l'esame di licenza immobiliare

Una detrazione fiscale è qualcosa che puoi vedere nell'esame di licenza immobiliare che puoi detrarre dal reddito di un investimento immobiliare per ridurre le tasse. Un credito d'imposta è qualcosa che puoi detrarre dalle tasse dovute. I governi federali e talvolta statali creano programmi che consentono crediti d'imposta o detrazioni per ...

Fattori economici che influenzano il valore per l'esame di licenza immobiliare - dummies

Fattori economici che influenzano il valore per l'esame di licenza immobiliare - dummies

Valore doesn ' semplicemente succede; le persone devono crearlo. La maggior parte di queste azioni personali che saranno trattate durante l'esame di licenza immobiliare, di solito chiamate influenze economiche, non sono altro che normali comportamenti umani. Il test pone due tipi di domande su questi principi o fattori economici. Vedrai domande sulle definizioni e ...

Come calcolare le aliquote fiscali per l'esame di licenza immobiliare - dummy

Come calcolare le aliquote fiscali per l'esame di licenza immobiliare - dummy

Pur calcolando la tassa le tariffe non sono qualcosa che devi sapere esattamente come fare per l'esame di licenza immobiliare, è qualcosa che devi capire in generale per rispondere a domande di non-matematica sul processo. Sapere come calcolare le tasse non è una cosa brutta da sapere, perché probabilmente si pagano le tasse di proprietà e ...

Scelta dell'editore

Suggerimenti per la registrazione Regole di gioco logiche sull'LSAT - manichini

Suggerimenti per la registrazione Regole di gioco logiche sull'LSAT - manichini

La maggior parte dei giochi di logica sull'LSAT hanno tre, quattro o cinque condizioni o regole che limitano il modo in cui giochi con i pezzi. Per ordinare i giochi, le restrizioni forniscono indizi su come i pezzi possono essere posizionati in relazione l'uno con l'altro. I tipi comuni di regole di ordinazione sono obiettivi, distanziatori e arrangiatori. Regole di destinazione I bersagli danno ...

Come gestire il tuo tempo con saggezza sul TASC - dummies

Come gestire il tuo tempo con saggezza sul TASC - dummies

Perché ogni sezione del TASC, oppure Prova l'esame di completamento secondario, ha un limite di tempo, vorrai essere consapevole di quanto tempo è passato mentre stai facendo il test. Un modo per gestire efficacemente il tuo tempo è semplicemente indossando un orologio. I centri di test potrebbero non avere sempre un orologio disponibile e ...

Rendendo più semplice il giorno di prova SSAT o ISEE - manichini

Rendendo più semplice il giorno di prova SSAT o ISEE - manichini

Non è possibile effettuare SSAT o ISEE più facile, ma puoi iniziare la giornata di test correttamente e renderlo più semplice e meno stressante, il che può portare a risultati migliori durante l'esame di ammissione. Ecco alcuni suggerimenti da tenere a mente al giorno del test SSAT o ISEE: riposati molto. La ...