Processamento de Dados Massivos/Projeto e implementação de aplicações Big Data/Maximização de expectativas: diferenças entre revisões
[edição não verificada] | [edição não verificada] |
Conteúdo apagado Conteúdo adicionado
Linha 107:
A solução encontrada para distribuir o algoritmo entre vários nós é bastante direta: calcular a verossimilhança de cada conjunto de lançamentos em paralelo através do map e para cada moeda calcular a nova distribuição de probabilidades a partir da verossimilhança encontrada para moeda.
<pre>
Inicia-se com um conjunto de P(x)=cara para cada moeda, de forma randômica
Enquanto probabilidade de cada moeda continua mudando:
mapper(linha,conteudo):
[cara,coroa] = conteudo.split()
//calcula probabilidade de que cada lancamento pertenca a uma das moedas
for moeda in moedas:
emits(moeda, [num_coroas, num_caras])
reduce(moeda, jogadas[num_coroas, num_caras]):
numero_caras = 0
numero_coroas = 0
for jogada in jogadas:
numero_coroas += jogada[0]
numero_caras += jogada[1]
//emite novo likelihood da moeda
probabilidade_cara = numero_caras/(numero_caras+numero_coroas)
//emite a probabilidade de que a moeda dê cara
emits(moeda, probabilidade_cara)
</pre>
===Estratégias de Armazenamento===
|