类 ZipfDistribution

java.lang.Object
org.hipparchus.distribution.discrete.AbstractIntegerDistribution
org.hipparchus.distribution.discrete.ZipfDistribution
所有已实现的接口:
Serializable, IntegerDistribution

public class ZipfDistribution extends AbstractIntegerDistribution
Zipf分布的实现。

参数: 对于随机变量X,其值根据此分布进行分布,概率质量函数如下

   P(X = k) = H(N,s) * 1 / k^s    对于k = 1,2,...,N

H(N,s)是归一化常数,对应于s的N阶广义调和数。

  • N是元素的数量
  • s是指数
另请参阅:
  • 构造器详细资料

    • ZipfDistribution

      public ZipfDistribution(int numberOfElements, double exponent) throws MathIllegalArgumentException
      创建具有给定元素数量和指数的新Zipf分布。
      参数:
      numberOfElements - 元素数量。
      exponent - 指数。
      抛出:
      MathIllegalArgumentException - 如果numberOfElements ≤ 0exponent ≤ 0
  • 方法详细资料

    • getNumberOfElements

      public int getNumberOfElements()
      获取分布的元素数量(例如,语料库大小)。
      返回:
      元素数量
    • getExponent

      public double getExponent()
      获取表征分布的指数。
      返回:
      指数
    • probability

      public double probability(int x)
      对于随机变量X,其值根据此分布进行分布,此方法返回P(X = x)。换句话说,此方法表示分布的概率质量函数(PMF)。
      参数:
      x - 评估PMF的点
      返回:
      x处的概率质量函数的值
    • logProbability

      public double logProbability(int x)
      对于随机变量X,其值根据此分布进行分布,此方法返回log(P(X = x)),其中log是自然对数。换句话说,此方法表示分布的概率质量函数(PMF)的对数。请注意,由于浮点精度和下溢/上溢问题,对于某些分布,此方法可能比计算IntegerDistribution.probability(int)的对数更精确和更快。

      默认实现只是计算probability(x)的对数。

      指定者:
      logProbability 在接口中 IntegerDistribution
      覆盖:
      logProbability 在类中 AbstractIntegerDistribution
      参数:
      x - 评估PMF的点
      返回:
      x处的概率质量函数的对数
    • cumulativeProbability

      public double cumulativeProbability(int x)
      对于随机变量X,其值根据此分布进行分布,此方法返回P(X ≤ x)。换句话说,此方法表示此分布的(累积)分布函数(CDF)。
      参数:
      x - 评估CDF的点
      返回:
      随机变量具有此分布的值小于或等于x的概率
    • getNumericalMean

      public double getNumericalMean()
      使用此方法获取此分布的均值的数值。对于元素数量N和指数s,均值为Hs1 / Hs,其中
      • Hs1 = generalizedHarmonic(N, s - 1),
      • Hs = generalizedHarmonic(N, s)
      返回:
      均值或Double.NaN(如果未定义)
    • calculateNumericalMean

      protected double calculateNumericalMean()
      getNumericalMean()使用。
      返回:
      此分布的均值
    • getNumericalVariance

      public double getNumericalVariance()
      使用此方法获取此分布的方差的数值。对于元素数量N和指数s,均值为(Hs2 / Hs) - (Hs1^2 / Hs^2),其中
      • Hs2 = generalizedHarmonic(N, s - 2),
      • Hs1 = generalizedHarmonic(N, s - 1),
      • Hs = generalizedHarmonic(N, s)
      返回:
      方差(可能为Double.POSITIVE_INFINITYDouble.NaN,如果未定义)
    • calculateNumericalVariance

      protected double calculateNumericalVariance()
      返回:
      此分布的方差
    • getSupportLowerBound

      public int getSupportLowerBound()
      访问支持的下界。此方法必须返回与inverseCumulativeProbability(0)相同的值。换句话说,此方法必须返回

      inf {x in Z | P(X ≤ x) > 0}

      支持的下界始终为1,无论参数如何。
      返回:
      支持的下界(始终为1)
    • getSupportUpperBound

      public int getSupportUpperBound()
      访问支持的上界。此方法必须返回与inverseCumulativeProbability(1)相同的值。换句话说,此方法必须返回

      inf {x in R | P(X ≤ x) = 1}

      支持的上界为元素的数量。
      返回:
      支持的上界
    • isSupportConnected

      public boolean isSupportConnected()
      使用此方法获取有关支持是否连通的信息,即支持是否包括在支持的下界和上界之间的所有整数。此分布的支持是连通的。
      返回:
      true