Je travaille via Think Bayes (gratuit ici: http://www.greenteapress.com/thinkbayes/ ) et je fais de l'exercice 3.1. Voici un résumé du problème:
"Un chemin de fer numérote ses locomotives dans l'ordre 1..N. Un jour, vous voyez une locomotive avec le numéro 60. Estimez combien de locomotives le chemin de fer a."
Cette solution se trouve avec la fonction de vraisemblance et la priorité exponentielle comme ceci:
class Train(Suite):
def __init__(self, hypos, alpha=1.0):
# Create an exponential prior
Pmf.__init__(self)
for hypo in hypos:
self.Set(hypo, hypo**(-alpha))
self.Normalize()
def Likelihood(self, data, hypo):
if hypo < data:
return 0
else:
return (1.0/hypo)
Conceptuellement, cela veut dire que si nous voyons un nombre de trains supérieur à l'une de nos hypothèses (1 ... 1000), alors chaque hypothèse plus petite a une chance nulle d'être correcte. Les autres hypothèses ont une chance 1 / number_of_trains de nous montrer un train avec ce numéro.
Dans l'exercice sur lequel je travaille, l'auteur ajoute un petit plus. Cela suppose qu'il n'y a qu'une seule entreprise. Dans la vraie vie, cependant, vous auriez un mélange de grandes et petites entreprises et de plus grandes entreprises (les deux sont tout aussi probables). Cependant, cela signifierait que vous êtes plus susceptible de voir un train d'une plus grande entreprise car ils auraient plus de trains.
Maintenant, la question est de savoir comment refléter cela dans la fonction de vraisemblance?
Ce n'est pas Stack Overflow, donc je ne demande pas vraiment d'aide au codage, mais peut-être juste une aide sur la façon dont je pourrais penser ce problème en termes de fonction de vraisemblance.