类 EnumeratedDistribution<T>

java.lang.Object
org.hipparchus.distribution.EnumeratedDistribution<T>
类型参数:
T - 样本空间中元素的类型。
所有已实现的接口:
Serializable

public class EnumeratedDistribution<T> extends Object implements Serializable
一个基于枚举的<值,概率>对列表的有限样本空间上的离散概率分布(维基百科)的通用实现。

输入概率必须都是非负的,但允许零值,它们的总和不必等于一。构造函数将对输入概率进行归一化,使它们总和为一。

<值,概率>对列表严格来说不必是一个函数,它可以包含空值。构造函数创建的概率质量函数将结合相等值的概率,并将空值视为相等。

例如,如果将对构造函数提供的对<"dog", 0.2>, <null, 0.1>, <"pig", 0.2>, <"dog", 0.1>, <null, 0.4>,则生成的概率质量函数将分配0.5的质量给null,0.3给"dog",0.2给null。

另请参阅:
  • 构造器详细资料

  • 方法详细资料

    • probability

      public double probability(T x)
      对于随机变量X,其值根据此分布进行分布,此方法返回P(X = x)。换句话说,此方法表示分布的概率质量函数(PMF)。

      请注意,如果x1x2满足x1.equals(x2),或者两者都为null,则probability(x1) = probability(x2)

      参数:
      x - 评估PMF的点
      返回:
      x处的概率质量函数的值
    • getPmf

      public List<Pair<T,Double>> getPmf()
      将概率质量函数作为(值,概率)对列表返回。

      请注意,如果在创建此EnumeratedDistribution时提供了重复和/或空值,则返回的列表将包含这些值。如果存在重复值,则返回的内容将不表示概率质量函数(即,由调用者负责合并重复的质量点)。

      返回:
      概率质量函数。
    • checkAndNormalize

      public static double[] checkAndNormalize(double[] weights)
      检查权重既不是null也不是空,并且仅包含非负、有限、非NaN值,如有必要,将其归一化为总和为1。
      参数:
      weights - 用作PMF值基础的输入数组
      返回:
      一个可能重新缩放的数组副本,总和为1且仅包含有效的概率值
      抛出:
      MathIllegalArgumentException - 如果权重为null或空,或包含负数、NaN或无穷大值,或仅为0