Question

J'essaie de trouver une réponse à cela depuis des mois (à utiliser dans une application d'apprentissage automatique), il ne semble pas que ce devrait être un problème terriblement difficile, mais je suis ingénieur logiciel, et les mathématiques n'ont jamais été une de mes forces.

Voici le scénario:

J'ai une pièce (peut-être) pondérée inégale et je veux comprendre la probabilité qu'il arrive en tête. Je sais que les pièces de la même boîte que celle-ci provenaient de la probabilité moyenne de p, et je connais aussi l'écart type de ces probabilités (appelez-le s).

(Si d'autres propriétés sommaires des probabilités d'autres pièces à part leur moyenne et STDDEV seraient utiles, je peux probablement les obtenir aussi.)

Je jette la pièce n fois, et il monte la tête H fois.

L'approche naïve est que la probabilité est juste h / n - Mais si n est petit, il est peu probable qu'il soit précis.

Y a-t-il un moyen efficace sur le calcul (c'est-à-dire n'implique pas de chiffres très très grands ou très très très très petits) p et s en considération pour trouver une estimation de probabilité plus précise, même lorsque n est petite?

J'apprécierais que des réponses pouvaient utiliser le pseudocode plutôt qu'une notation mathématique car je trouve que la plupart des notations mathématiques sont impénétrables ;-)


Autres réponses:Il y a d'autres réponses, ce qui sont similaires, mais les réponses fournies ne sont pas satisfaisantes. Par exemple cette n'est pas efficace sur le plan de calcul car il implique rapidement des nombres beaucoup plus petits que ce qui peut être représenté même dans les flotteurs à double précision. Et cette L'un s'est avéré incorrect.

Était-ce utile?

La solution

Vous pouvez utiliser p comme un précédent sur votre probabilité estimée. C'est fondamentalement la même chose que le lissage du pseudocour. C'est-à-dire utiliser

(h + c * p) / (n + c)

comme votre estimation. Lorsque h et n sont grands, alors cela devient juste h / n. Lorsque h et n sont petits, c'est juste c * p / c = p. Le choix de c C'est à toi de voir. Vous pouvez le baser sur s Mais à la fin, vous devez décider à quel point la taille est trop petite.

Autres conseils

Malheureusement, vous ne pouvez pas faire d'apprentissage automatique sans connaître des mathématiques de base - c'est comme demander de l'aide à quelqu'un dans la programmation, mais ne pas vouloir connaître les "variables", les "sous-programmes" et tout ce qui est alors.

La meilleure façon de le faire s'appelle une intégration bayésienne, mais il existe une approximation plus simple appelée "maximum a postieri" (carte). C'est à peu près comme la pensée habituelle, sauf que vous pouvez mettre la distribution antérieure.

Des mots sophistiqués, mais vous pouvez demander, d'où vient la formule H / (H + T)? Bien sûr, c'est évident, mais il s'avère que c'est la réponse que vous obtenez lorsque vous n'avez "pas de précédent". Et la méthode ci-dessous est le prochain niveau de sophistication lorsque vous ajoutez un prieur. Aller à l'intégration bayésienne serait le prochain, mais c'est plus difficile et peut-être inutile.

Si je comprends bien, le problème est deux fois: vous tirez d'abord une pièce du sac de pièces. Cette pièce a une "tête de tête" appelée thêta, de sorte qu'elle donne une fraction thêta de tête des flips. Mais le thêta de cette pièce provient de la distribution principale que je suppose que je suppose que c'est gaussien avec P et écart-type S.

Ce que vous faites ensuite, c'est noter la probabilité totale non normalisée (appelée vraisemblance) de voir l'ensemble du shebang, toutes les données: (h têtes, t tails)

L = (theta) ^ h * (1-theta) ^ t * gaussien (thêta; p, s).

Gaussien (theta; p, s) = exp (- (theta-p) ^ 2 / (2 * s ^ 2)) / sqrt (2 * pi * s ^ 2)

C'est la signification de "tracer d'abord 1 valeur du thêta du gaussien", puis dessiner des têtes H et des queues de T d'une pièce en utilisant ce thêta.

Le principe de la carte indique que si vous ne connaissez pas Theta, trouvez la valeur qui maximise L compte tenu des données que vous connaissez. Vous le faites avec le calcul. L'astuce pour faciliter la tâche est que vous prenez d'abord les logarithmes. Définir ll = log (l). Partout où L est maximisée, alors ll sera aussi.

donc ll = hjournal (thêta) + tlog (1-theta) + - (theta-p) ^ 2 / (2 * s ^ 2)) - 1/2 * log (2 * pi * s ^ 2)

Par calcul pour rechercher des extrema, vous trouvez la valeur de thêta telle que dll / dtheta = 0. Puisque le dernier terme avec le journal n'a pas de thêta, vous pouvez l'ignorer.

dll / dtheta = 0 = (h / theta) + (p-theta) / s ^ 2 - (t / (1-theta)) = 0.

Si vous pouvez résoudre cette équation pour Theta, vous obtiendrez une réponse, l'estimation de la carte pour thêta étant donné le nombre de têtes H et le nombre de queues t.

Si vous voulez une approximation rapide, essayez de faire une étape de la méthode de Newton, où vous commencez par votre thêta proposée à l'estimation évidente (appelée maximum de vraisemblance) de thêta = h / (h + t).

Et d'où vient cette estimation «évidente»? Si vous faites les trucs ci-dessus mais ne mettez pas le gaussien avant: h / theta - t / (1-theta) = 0, vous trouverez thêta = h / (h + t).

Si vos probabilités antérieures sont vraiment petites, comme c'est souvent le cas, au lieu de près de 0,5, alors un primaire gaussien sur le thêta est probablement inapproprié, car il prédit un certain poids avec des probabilités négatives, clairement faux. Plus approprié est un précédent gaussien sur log-theta («distribution lognormale»). Branchez-le de la même manière et travaillez à travers le calcul.

Vous n'avez pas assez d'informations dans cette question.

Combien de pièces sont dans la boîte? S'il en est deux, alors dans certains scénarios (par exemple, une pièce est toujours des têtes, les autres que les queues) savent que P et S seraient utiles. S'il en est plus que quelques-uns, et surtout si seulement certaines des pièces ne sont que légèrement pondérées, ce n'est pas utile.

Qu'est-ce qu'un petit N? 2? 5? dix? 100? Quelle est la probabilité d'une pièce pondérée à monter les têtes / queue? 100/0, 60/40, 50.00001 / 49.99999? Comment la pondération est-elle distribuée? Est-ce que chaque pièce est une des 2 pondérations possibles? Suivent-ils une courbe de cloche? etc.

Cela se résume à cela: les différences entre une pièce pondérée / non pondérée, la distribution des pièces pondérées et les pièces numériques dans votre boîte décideront toutes ce que N doit être pour vous pour résoudre ce problème avec une grande confiance.

Le nom de ce que vous essayez de faire est un Procès de Bernoulli. Connaître le nom devrait être utile pour trouver de meilleures ressources.


Réponse au commentaire:

Si vous avez des différences en P aussi petites, vous devrez faire beaucoup d'essais et il n'y a pas de contournement.

En supposant une distribution uniforme du biais, P sera toujours de 0,5 et tout écart-type vous dira qu'au moins certaines des pièces ont un biais mineur.

Combien de lancers, encore une fois, seront déterminés dans ces circonstances par la pondération des pièces. Même avec 500 lancers, vous n'obtiendrez pas une forte confiance (environ 2/3) détectant une division de .51 / .49.

En général, ce que vous recherchez est Estimation de vraisemblance maximale. Le projet de démonstration de Wolfram a une illustration de Estimation de la probabilité d'une pièce Tête d'atterrissage, étant donné un échantillon de lancers.

Eh bien, je ne suis pas un homme de mathématiques, mais je pense que la simple approche bayésienne est intuitive et largement applicable pour y mettre un peu. D'autres ci-dessus l'ont déjà suggéré, mais peut-être que si vous êtes comme moi, vous préférez plus de verbosité. Dans ce jargon, vous avez un ensemble d'hypothèses mutuellement exclusives, H, et certaines données D, et vous souhaitez trouver les probabilités (postérieures) que chaque hypothèse HI est correcte compte tenu des données. Vraisemblablement, vous choisissez l'hypothèse qui avait la plus grande probabilité postérieure (la carte comme indiqué ci-dessus), si vous deviez en choisir un. Comme le note Matt ci-dessus, ce qui distingue l'approche bayésienne du seul maximum de vraisemblance (trouver le H qui maximise PR (D | H)), c'est que vous avez également des informations préalables concernant les hypothèses le plus probables, et vous souhaitez incorporer ces prieurs.

Vous avez donc de la probabilité de base pr (h | d) = pr (d | h) * pr (h) / pr (d). Vous pouvez estimer ces PR (h | d) numériquement en créant une série de probabilités discrètes Salut pour chaque hypothèse que vous souhaitez tester, par exemple [0,0,0,05, 0,1 ... 0,95, 1,0], puis déterminer votre PR antérieur (H ) Pour chaque HI - ci-dessus, il est supposé que vous avez une distribution normale des priors, et si cela est acceptable, vous pouvez utiliser la moyenne et STDEV pour obtenir chaque PR (Hi) - ou utiliser une autre distribution si vous préférez. Avec des pièces de monnaie, le PR (D | H) est bien sûr déterminé par le binomial en utilisant le nombre observé de succès avec N essais et le HI particulier étant testé. Le dénominateur PR (D) peut sembler intimidant, mais nous supposons que nous avons couvert toutes les bases de nos hypothèses, de sorte que Pr (d) est la sommation de Pr (D | Hi) Pr (H) sur tous H.

Très simple si vous y réfléchissez un peu, et peut-être pas le cas si vous y réfléchissez un peu plus.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top