#336 · Probability · Easy
⊣ Solve on deep-ml.comCompute the posterior probability using Bayes' Theorem. Given a prior probability P(H), likelihood P(E|H), and evidence P(E), calculate the posterior P(H|E) = P(E|H) * P(H) / P(E).
from typing import Dict, List
def bayes_theorem(
prior: float,
likelihood: float,
evidence: float
) -> float:
if evidence == 0:
raise ValueError("Evidence probability cannot be zero")
posterior = (likelihood * prior) / evidence
return round(posterior, 4)
def bayes_with_multiple_hypotheses(
priors: List[float],
likelihoods: List[float]
) -> List[float]:
# Compute evidence as sum of prior * likelihood for all hypotheses
evidence = sum(p * l for p, l in zip(priors, likelihoods))
if evidence == 0:
raise ValueError("Total evidence is zero")
posteriors = [(l * p) / evidence for p, l in zip(priors, likelihoods)]
return [round(p, 4) for p in posteriors]