Safe Haskell | None |
---|---|
Language | Haskell98 |
- data Categorical p a
- categorical :: (Num p, Distribution (Categorical p) a) => [(p, a)] -> RVar a
- categoricalT :: (Num p, Distribution (Categorical p) a) => [(p, a)] -> RVarT m a
- weightedCategorical :: (Fractional p, Eq p, Distribution (Categorical p) a) => [(p, a)] -> RVar a
- weightedCategoricalT :: (Fractional p, Eq p, Distribution (Categorical p) a) => [(p, a)] -> RVarT m a
- fromList :: Num p => [(p, a)] -> Categorical p a
- toList :: Num p => Categorical p a -> [(p, a)]
- totalWeight :: Num p => Categorical p a -> p
- numEvents :: Categorical p a -> Int
- fromWeightedList :: (Fractional p, Eq p) => [(p, a)] -> Categorical p a
- fromObservations :: (Fractional p, Eq p, Ord a) => [a] -> Categorical p a
- mapCategoricalPs :: (Num p, Num q) => (p -> q) -> Categorical p e -> Categorical q e
- normalizeCategoricalPs :: (Fractional p, Eq p) => Categorical p e -> Categorical p e
- collectEvents :: (Ord e, Num p, Ord p) => Categorical p e -> Categorical p e
- collectEventsBy :: Num p => (e -> e -> Ordering) -> ([(p, e)] -> (p, e)) -> Categorical p e -> Categorical p e
Documentation
data Categorical p a Source
Categorical distribution; a list of events with corresponding probabilities. The sum of the probabilities must be 1, and no event should have a zero or negative probability (at least, at time of sampling; very clever users can do what they want with the numbers before sampling, just make sure that if you're one of those clever ones, you at least eliminate negative weights before sampling).
Fractional p => Monad (Categorical p) | |
Functor (Categorical p) | |
Fractional p => Applicative (Categorical p) | |
Foldable (Categorical p) | |
Traversable (Categorical p) | |
(Fractional p, Ord p, Distribution Uniform p) => Distribution (Categorical p) a | |
(Eq p, Eq a) => Eq (Categorical p a) | |
(Num p, Read p, Read a) => Read (Categorical p a) | |
(Num p, Show p, Show a) => Show (Categorical p a) |
categorical :: (Num p, Distribution (Categorical p) a) => [(p, a)] -> RVar a Source
Construct a Categorical
random variable from a list of probabilities
and categories, where the probabilities all sum to 1.
categoricalT :: (Num p, Distribution (Categorical p) a) => [(p, a)] -> RVarT m a Source
Construct a Categorical
random process from a list of probabilities
and categories, where the probabilities all sum to 1.
weightedCategorical :: (Fractional p, Eq p, Distribution (Categorical p) a) => [(p, a)] -> RVar a Source
Construct a Categorical
random variable from a list of probabilities
and categories, where the probabilities all sum to 1.
weightedCategoricalT :: (Fractional p, Eq p, Distribution (Categorical p) a) => [(p, a)] -> RVarT m a Source
Construct a Categorical
random process from a list of probabilities
and categories, where the probabilities all sum to 1.
fromList :: Num p => [(p, a)] -> Categorical p a Source
Construct a Categorical
distribution from a list of weighted categories.
toList :: Num p => Categorical p a -> [(p, a)] Source
totalWeight :: Num p => Categorical p a -> p Source
numEvents :: Categorical p a -> Int Source
fromWeightedList :: (Fractional p, Eq p) => [(p, a)] -> Categorical p a Source
Construct a Categorical
distribution from a list of weighted categories,
where the weights do not necessarily sum to 1.
fromObservations :: (Fractional p, Eq p, Ord a) => [a] -> Categorical p a Source
Construct a Categorical
distribution from a list of observed outcomes.
Equivalent events will be grouped and counted, and the probabilities of each
event in the returned distribution will be proportional to the number of
occurrences of that event.
mapCategoricalPs :: (Num p, Num q) => (p -> q) -> Categorical p e -> Categorical q e Source
Like fmap
, but for the probabilities of a categorical distribution.
normalizeCategoricalPs :: (Fractional p, Eq p) => Categorical p e -> Categorical p e Source
Adjust all the weights of a categorical distribution so that they sum to unity and remove all events whose probability is zero.
collectEvents :: (Ord e, Num p, Ord p) => Categorical p e -> Categorical p e Source
Simplify a categorical distribution by combining equivalent events (the new event will have a probability equal to the sum of all the originals).
collectEventsBy :: Num p => (e -> e -> Ordering) -> ([(p, e)] -> (p, e)) -> Categorical p e -> Categorical p e Source
Simplify a categorical distribution by combining equivalent events (the new event will have a weight equal to the sum of all the originals). The comparator function is used to identify events to combine. Once chosen, the events and their weights are combined by the provided probability and event aggregation function.