Demo entry 6110364

Polya Process

   

Submitted by David Silva on Sep 30, 2016 at 04:05
Language: Python. Code size: 1.3 kB.

# polya urn process 
# Source: https://thebaysianobserver.wordpress.com/gategory/machine-learning/page/2/
import random
import matplotlib.pyplot as plt

# Numero de rodadas do programa

nruns = niter = 200

# Numero inicial de tecnologia A ou B (branca ou preta)

whitenum = blacknum = 1

# Iteracao de zero ate numero de rodadas

for i in range(0,10):
	
	# Frac e a lista vazia onde serao armazenados os calculos para cada rodada
	frac = []
	
	# restabelece o numero de adocoes iniciais de branco e preto
	nwhite = whitenum
	nblack = blacknum
	
	# Iteracao onde e avaliada a escolha aleatoria em random.random() e a probabilidade 
	# de tecnologia branca (A) em relacao ao total.
	
	for j in range(0,niter):
		if random.random() < nwhite/float(nwhite + nblack):
			
			# Se a probabilidade de branca e maior que a probabilidade aleatoria e maior
			# acrescentamos mais uma adocao de branca
			
			nwhite = nwhite + 1
		else:
			
			# Senao, acrescentamos uma adocao da tecnolgia preta (B)
			
			nblack = nblack + 1
			
			# As duzentas vezes que o processo e realizado, armazenamos na matriz 'frac'
			
		frac.append(nwhite/float(nwhite + nblack))
		
		# Ordena-se que cada iteracao seja desenhada no grafico

	plt.plot(frac)
	print frac
	# Ordena-se que o grafico com as duzentas iteracoes seja mostrado.
	
plt.show()

This snippet took 0.00 seconds to highlight.

Back to the Entry List or Home.

Delete this entry (admin only).