org.knowceans.util
Class Densities

java.lang.Object
  extended by org.knowceans.util.Densities

public class Densities
extends java.lang.Object

Densities calculates for different density functions the likelihood of a data item given the parameters

Author:
heinrich

Constructor Summary
Densities()
           
 
Method Summary
static double pdfBeta(double x, double a, double b)
          beta likelihood
static double pdfBinomial(int n, int N, double p)
          Binom(n | N, p) using linear binomial coefficient
static double pdfDirichlet(double[] xx, double alpha)
          Symmetric Dirichlet likelihood:
static double pdfDirichlet(double[] xx, double[] alpha)
          Dirichlet likelihood using logarithmic calculation
static double pdfDirichlet(double[] xx, double[] basemeasure, double precision)
          Dirichlet likelihood using logarithmic calculation
static double pdfDmm(double[] xx, double[] probs, double[][] parameters)
          Dirichlet mixture likelihood using Dirichlet parameters and assuming independence between components.
static double pdfDmm(double[] x, double[] probs, double[][] basemeasure, double[] precision)
          Dirichlet mixture likelihood using mean and precision
static double pdfGamma(double x, double a, double b)
          gamma likelihood p(x|a,b) = x^(a-1) * e^(-x/b) / (b^a * Gamma(a))
static double pdfGmm(double x, double[] probs, double[] mean, double[] sigma)
          GMM likelihood
static double pdfMultinomial(int[] nn, double[] pp)
          Mult(nn|pp) using logarithmic multinomial coefficient
static double pdfNorm(double x, double mu, double sigma)
          Normal likelihood
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

Densities

public Densities()
Method Detail

pdfNorm

public static double pdfNorm(double x,
                             double mu,
                             double sigma)
Normal likelihood

Parameters:
x -
mu -
sigma -
Returns:

pdfGmm

public static double pdfGmm(double x,
                            double[] probs,
                            double[] mean,
                            double[] sigma)
GMM likelihood

Parameters:
x -
k -
probs -
mean -
sigma -
Returns:

pdfDmm

public static double pdfDmm(double[] x,
                            double[] probs,
                            double[][] basemeasure,
                            double[] precision)
Dirichlet mixture likelihood using mean and precision

Parameters:
x -
probs -
basemeasure - -- multinomial parameter around which the distribution scatters, m = alpha / s
precision - -- s = sum alpha
Returns:

pdfDmm

public static double pdfDmm(double[] xx,
                            double[] probs,
                            double[][] parameters)
Dirichlet mixture likelihood using Dirichlet parameters and assuming independence between components.

Parameters:
x -
k -
probs -
mean -
precision -
Returns:

pdfGamma

public static double pdfGamma(double x,
                              double a,
                              double b)
gamma likelihood p(x|a,b) = x^(a-1) * e^(-x/b) / (b^a * Gamma(a))

Parameters:
x - value
a - (shape?)
b - (scale?)
Returns:

pdfBeta

public static double pdfBeta(double x,
                             double a,
                             double b)
beta likelihood

Parameters:
x - data item
a - pseudo counts for success
b - pseudo counts for failure
Returns:

pdfDirichlet

public static double pdfDirichlet(double[] xx,
                                  double[] alpha)
Dirichlet likelihood using logarithmic calculation

Dir(xx|alpha) =

Gamma(sum_i alpha[i])/(prod_i Gamma(alpha[i])) prod_i xx[i]^(alpha[i]-1)

Parameters:
xx - multivariate convex data item (sum=1)
alpha - Dirichlet parameter vector
Returns:

pdfDirichlet

public static double pdfDirichlet(double[] xx,
                                  double[] basemeasure,
                                  double precision)
Dirichlet likelihood using logarithmic calculation

Dir(xx|alpha) =

Gamma(sum_i alpha[i])/(prod_i Gamma(alpha[i])) prod_i xx[i]^(alpha[i]-1)

Parameters:
xx - multivariate convex data item (sum=1)
basemeasure - -- normalised coefficients (= mean)
precision - -- central moment ...
Returns:

pdfDirichlet

public static double pdfDirichlet(double[] xx,
                                  double alpha)
Symmetric Dirichlet likelihood:

Dir(xx|alpha) = Gamma(k * alpha)/Gamma(alpha)^k prod_i xx[i]^(alpha - 1)

Parameters:
xx - multivariate convex data item (sum=1)
alpha - symmetric parameter
Returns:

pdfMultinomial

public static double pdfMultinomial(int[] nn,
                                    double[] pp)
Mult(nn|pp) using logarithmic multinomial coefficient

Parameters:
nn - counts for each category
pp - convex probability vector for categories
Returns:

pdfBinomial

public static double pdfBinomial(int n,
                                 int N,
                                 double p)
Binom(n | N, p) using linear binomial coefficient

Parameters:
n -
N -
p -
Returns: