Lar Finanças Pessoais Como encontrar o número de elementos em um fluxo de dados - manequins

Como encontrar o número de elementos em um fluxo de dados - manequins

Vídeo: EXCEL 2016 - Localizando um nome dentro de células e consolidando dados 2025

Vídeo: EXCEL 2016 - Localizando um nome dentro de células e consolidando dados 2025
Anonim

Mesmo que um filtro Bloom possa rastrear objetos que chegam de um fluxo, ele não pode dizer quantos objetos existem. Um pequeno vetor preenchido por um pode (dependendo do número de hashes e da probabilidade de colisão) ocultar o número real de objetos que estão sendo escondeu no mesmo endereço.

Conhecer o número distinto de objetos é útil em várias situações, como quando você quer saber quantos usuários distintos viram uma determinada página do site ou o número de consultas distintas do mecanismo de pesquisa. Armazenar todos os elementos e encontrar as duplicatas entre eles não pode funcionar com milhões de elementos, especialmente provenientes de um fluxo. Quando você quer saber o número de objetos distintos em um fluxo, você ainda precisa confiar em uma função de hash, mas a abordagem envolve a tomada de um esboço numérico.

Esboçar significa tomar uma aproximação, que é um valor inexato, porém não completamente errado, como uma resposta. A aproximação é aceitável porque o valor real não está muito longe disso. Neste algoritmo inteligente, HyperLogLog, que é baseado na probabilidade e na aproximação, você observa as características dos números gerados a partir do fluxo. O HyperLogLog deriva dos estudos de cientistas informáticos Nigel Martin e Philippe Flajolet. A Flajolet melhorou seu algoritmo inicial, Flajolet-Martin (ou o algoritmo LogLog), na versão HyperLogLog mais robusta, que funciona assim:

  1. Um hash converte cada elemento recebido do fluxo em um número.
  2. O algoritmo converte o número em binário, o padrão numérico da base 2 que os computadores usam.
  3. O algoritmo conta o número de zeros iniciais no número binário e as faixas do número máximo que vê, que é n.
  4. O algoritmo estima o número de elementos distintos passados ​​no fluxo usando n. O número de elementos distintos é 2 ^ n.

Por exemplo, o primeiro elemento na string é a palavra cão. O algoritmo o corta em um valor inteiro e converte-o em binário, com o resultado de 01101010. Somente um zero aparece no início do número, então o algoritmo o registra como o número máximo de zeros à esquerda vistos. O algoritmo então vê as palavras papagaio e lobo, cujos equivalentes binários são 11101011 e 01101110, deixando n inalterados. No entanto, quando a palavra cat passa, a saída é 00101110, então n se torna 2. Para estimar o número de elementos distintos, o algoritmo calcula 2 ^ n, ou seja, 2 ^ 2 = 4. A figura mostra esse processo.

Contando apenas os zeros à esquerda.

O truque do algoritmo é que, se o seu hash estiver produzindo resultados aleatórios, distribuídos igualmente (como em um filtro Bloom), ao analisar a representação binária, você pode calcular a probabilidade de aparecer uma seqüência de zeros. Como a probabilidade de um único número binário ser 0 é uma em duas, para calcular a probabilidade de seqüências de zeros, basta multiplicar essa 1/2 probabilidade quantas vezes o comprimento da seqüência de zeros:

  • 50 por cento (1/2) de probabilidade para números que começam com 0
  • 25 por cento (1/2 * 1/2) de probabilidade para números que começam com 00
  • 12. Probabilidade de 5 por cento (1/2 * 1/2 * 1/2) para números que começam com 000
  • (1/2) ^ k probabilidade para números que começam com k zeros (você usa poderes para cálculos mais rápidos de muitas multiplicações do mesmo número)

Quanto menor os números que o HyperLogLog vê, maior a imprecisão. A precisão aumenta quando você usa o cálculo HyperLogLog muitas vezes usando diferentes funções de hash e, em média, juntas as respostas de cada cálculo, mas hashing muitas vezes leva tempo, e os fluxos são rápidos. Como alternativa, você pode usar o mesmo hash, mas dividir o fluxo em grupos (por exemplo, separando os elementos em grupos à medida que eles chegam com base no seu pedido de chegada) e para cada grupo, você acompanha o número máximo de zeros à direita. No final, você calcula a estimativa do elemento distinto para cada grupo e calcula a média aritmética de todas as estimativas. Esta abordagem é a média estocástica e fornece estimativas mais precisas do que aplicar o algoritmo ao fluxo inteiro.

Como encontrar o número de elementos em um fluxo de dados - manequins

Escolha dos editores

Noções básicas do arquivo de dados Flashback da Oracle 12c - dummies

Noções básicas do arquivo de dados Flashback da Oracle 12c - dummies

O Flashback Data Archive do oracle 12c é um mecanismo de banco de dados que permite que você para armazenar periodicamente ou indefinidamente todas as versões de linha em uma tabela ao longo da sua vida útil. Você pode então escolher uma hora para ver os dados como existia em um ponto específico. Esteja ciente de que o Flashback Data Archive é um recurso licenciado. ...

Noções básicas de clusters de aplicativos reais do Oracle 12c - manequins

Noções básicas de clusters de aplicativos reais do Oracle 12c - manequins

Se você visitou os sites da Oracle nos últimos 12 anos , você viu o byline de marketing: "Inquebrável. "Essa linha de tag refere-se ao recurso Real Application Clusters (RAC). Claro, muitos elementos estão envolvidos, mas o RAC tem o destaque. O RAC é a solução de clustering de banco de dados Oracle. Em certo sentido, funciona na teoria de que ...

Noções básicas de Redo Log Files no Oracle 12c - dummies

Noções básicas de Redo Log Files no Oracle 12c - dummies

Redo os arquivos de log armazenam as informações do buffer de log no banco de dados Oracle 12c. Eles são escritos pelo Log Writer (LGWR). Mais uma vez, você não pode ler esses arquivos binários sem a ajuda do software de banco de dados. Normalmente, os arquivos de reto de log são nomeados com a extensão. LOG ou. RDO. Pode ser qualquer coisa que você queira, ...

Escolha dos editores

São orgasmos ok durante a gravidez? - Dummies

São orgasmos ok durante a gravidez? - Dummies

As mulheres grávidas não só têm permissão para fazer sexo, mas muitas vezes o desejam. Mas é bom aproveitar a relação sexual com o ponto do orgasmo? Afinal, os orgasmos são nada mais do que contrações - e as pessoas sugeriram que isso poderia desencadear mão-de-obra. Isso é apenas um mito. De fato, grávida ...

Alimentando a Multidão em uma Reunião Familiar - manequins

Alimentando a Multidão em uma Reunião Familiar - manequins

Cozinhando uma refeição para um grande grupo (reunião familiar ou de outra forma ) requer planejamento e resistência. Aqui está um guia útil para quantidades de alimentos e segurança alimentar, e conselhos sobre a organização de uma festa de potluck. Planejando para potlucks A forma mais comum de comestibles de grupo é uma festa de potluck - qual é a maneira mais barata e fácil de ...

Anatomia do Penis humano - dummies

Anatomia do Penis humano - dummies

Sabendo como as funções de um pénis podem fornecer uma visão útil do sexo e do corpo humano - se você quer entender o pénis e a anatomia masculina melhor ou aprender sobre isso pela primeira vez. Basicamente, um pênis é composto de três estruturas, que são feitas de um material esponjoso que pode preencher com sangue: ...

Escolha dos editores

Como lidar com outliers causados ​​por Forças externas - manequins

Como lidar com outliers causados ​​por Forças externas - manequins

Certifique-se de verificar atentamente os outliers antes eles influenciam sua análise preditiva. Os outliers podem distorcer a análise de dados e dados. Por exemplo, qualquer análise estatística feita com dados que deixa outliers no lugar acaba por desviar os meios e variâncias. Os outliers não controlados ou mal interpretados podem levar a conclusões falsas. Diga os seus dados que ...

Como criar um modelo de análise preditiva com regressão R - manequins

Como criar um modelo de análise preditiva com regressão R - manequins

Você deseja criar um preditivo modelo de análise que você pode avaliar usando resultados conhecidos. Para fazer isso, vamos dividir nosso conjunto de dados em dois conjuntos: um para treinar o modelo e outro para testar o modelo. Uma divisão 70/30 entre treinamento e testes de conjuntos de dados será suficiente. As próximas duas linhas de código ...

Como definir objetivos de negócios para um modelo de análise preditiva - dummies

Como definir objetivos de negócios para um modelo de análise preditiva - dummies

Um modelo de análise preditiva visa resolvendo um problema comercial ou realizando um resultado comercial desejado. Esses objetivos comerciais se tornam os objetivos do modelo. Conhecer aqueles garante o valor comercial do modelo que você constrói - o que não deve ser confundido com a precisão do modelo. Hipotéticamente, você pode construir um modelo preciso para ...