Probability
This module considers a conditional probability distribution given a fuzzy proposition.
In other words, a fuzzy set of possible worlds. P is a probability distribution on W (the set of all possible worlds), and ~A is a fuzzy set on W. P(w|A) = integral of P(w|~A) dα from α 0 to 1.
- class fuzzy_sets.probability.Probability(value: Any, probability: float)
Bases:
object
A value for a random variable and its probability.
- Parameters:
value[Any] – A possible value for a random variable.
probability[float] – The probability the random variable is equal to that value. Between 0 and 1.
- post_init()
Raises a ValueError if the probability is not between 0 and 1.
- probability: float
- value: Any
- class fuzzy_sets.probability.ProbabilityDistribution(*args, **kwargs)
Bases:
set
[Probability
]An extension of the set class. Represents a discrete probability distribution.
- property probabilities: list[float]
Return a list of probabilities.
- sort_by_probability() list[Probability]
Return the set sorted by probability, uses value as a tiebreaker.
- property values: list[float]
Return a list of just possible values.
- fuzzy_sets.probability.conditional(probability: Probability, distribution: ProbabilityDistribution, condition: FuzzySet) Probability
Calculates the conditional probability given a prior distribution and a fuzzy condition.
- Parameters:
probability (Probability) – A value and likelihood pair
distribution (ProbabilityDistribution) – The prior distribution
condition (FuzzySet) – The fuzzy condition
- Returns:
The conditional probability given the fuzzy condition
- Return type:
- fuzzy_sets.probability.conditional_distribution(distribution: ProbabilityDistribution, condition: FuzzySet) ProbabilityDistribution
Calculates the conditional probability distribution given a prior distribution and a fuzzy condition.
Calls conditional() on each probability in the distribution.
- Parameters:
distribution (ProbabilityDistribution) – The prior distribution
condition (FuzzySet) – The fuzzy condition
- Returns:
The conditional probability distribution given the fuzzy condition
- Return type:
Examples
>>> fair_distribution = ProbabilityDistribution( { Probability(("H", "H"), 0.25), Probability(("H", "T"), 0.25), Probability(("T", "H"), 0.25), Probability(("T", "T"), 0.25), } ) >>> good_result_condition = FuzzySet( { FuzzySetMember(("H", "H"), 1.0), FuzzySetMember(("H", "T"), 0.5), FuzzySetMember(("T", "H"), 0.5), } ) >>> print(str(conditional_distribution(fair_distribution, good_result_condition))) P(('T', 'T')) = 0.000, P(('H', 'T')) = 0.167, P(('T', 'H')) = 0.167, P(('H', 'H')) = 0.667