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===