weka.classifiers.functions.pace
Class NormalMixture

java.lang.Object
  extended byweka.classifiers.functions.pace.MixtureDistribution
      extended byweka.classifiers.functions.pace.NormalMixture

public class NormalMixture
extends MixtureDistribution

Class for manipulating normal mixture distributions.

REFERENCES

Wang, Y. (2000). "A new approach to fitting linear models in high dimensional spaces." PhD Thesis. Department of Computer Science, University of Waikato, New Zealand.

Wang, Y. and Witten, I. H. (2002). "Modeling for optimal probability prediction." Proceedings of ICML'2002. Sydney.

Version:
$Revision: 1.1 $
Author:
Yong Wang (yongwang@cs.waikato.ac.nz)

Field Summary
protected  double fittingIntervalLength
           
protected  double separatingThreshold
           
protected  double trimingThreshold
           
 
Fields inherited from class weka.classifiers.functions.pace.MixtureDistribution
mixingDistribution, NNMMethod, PMMethod
 
Constructor Summary
NormalMixture()
          Contructs an empty NormalMixture
 
Method Summary
 double empiricalBayesEstimate(double x)
          Returns the empirical Bayes estimate of a single value.
 DoubleVector empiricalBayesEstimate(DoubleVector x)
          Returns the empirical Bayes estimate of a vector.
 double f(double x)
          Computes the value of f(x) given the mixture.
 DoubleVector f(DoubleVector x)
          Computes the value of f(x) given the mixture, where x is a vector.
 PaceMatrix fittingIntervals(DoubleVector data)
          Contructs the set of fitting intervals for mixture estimation.
 double getSeparatingThreshold()
          Gets the separating threshold value.
 double getTrimingThreshold()
          Gets the triming thresholding value.
 double h(double x)
          Computes the value of h(x) given the mixture.
 DoubleVector h(DoubleVector x)
          Computes the value of h(x) given the mixture, where x is a vector.
 double hf(double x)
          Computes the value of h(x) / f(x) given the mixture.
static void main(java.lang.String[] args)
          Method to test this class
 DoubleVector nestedEstimate(DoubleVector x)
          Returns the optimal nested model estimate of a vector.
 PaceMatrix probabilityMatrix(DoubleVector s, PaceMatrix intervals)
          Contructs the probability matrix for mixture estimation, given a set of support points and a set of intervals.
 boolean separable(DoubleVector data, int i0, int i1, double x)
          Return true if a value can be considered for mixture estimatino separately from the data indexed between i0 and i1
 void setSeparatingThreshold(double t)
          Sets the separating threshold value
 void setTrimingThreshold(double t)
          Sets the triming thresholding value.
 DoubleVector subsetEstimate(DoubleVector x)
          Returns the estimate of optimal subset selection.
 DoubleVector supportPoints(DoubleVector data, int ne)
          Contructs the set of support points for mixture estimation.
 java.lang.String toString()
          Converts to a string
 void trim(DoubleVector x)
          Trims the small values of the estaimte
 
Methods inherited from class weka.classifiers.functions.pace.MixtureDistribution
empiricalProbability, fit, fit, fitForSingleCluster, getMixingDistribution, setMixingDistribution
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

separatingThreshold

protected double separatingThreshold

trimingThreshold

protected double trimingThreshold

fittingIntervalLength

protected double fittingIntervalLength
Constructor Detail

NormalMixture

public NormalMixture()
Contructs an empty NormalMixture

Method Detail

getSeparatingThreshold

public double getSeparatingThreshold()
Gets the separating threshold value. This value is used by the method separatable


setSeparatingThreshold

public void setSeparatingThreshold(double t)
Sets the separating threshold value

Parameters:
t - the threshold value

getTrimingThreshold

public double getTrimingThreshold()
Gets the triming thresholding value. This value is usef by the method trim.


setTrimingThreshold

public void setTrimingThreshold(double t)
Sets the triming thresholding value.


separable

public boolean separable(DoubleVector data,
                         int i0,
                         int i1,
                         double x)
Return true if a value can be considered for mixture estimatino separately from the data indexed between i0 and i1

Specified by:
separable in class MixtureDistribution
Parameters:
data - the data supposedly generated from the mixture
i0 - the index of the first element in the group
i1 - the index of the last element in the group
x - the value

supportPoints

public DoubleVector supportPoints(DoubleVector data,
                                  int ne)
Contructs the set of support points for mixture estimation.

Specified by:
supportPoints in class MixtureDistribution
Parameters:
data - the data supposedly generated from the mixture
ne - the number of extra data that are suppposedly discarded earlier and not passed into here

fittingIntervals

public PaceMatrix fittingIntervals(DoubleVector data)
Contructs the set of fitting intervals for mixture estimation.

Specified by:
fittingIntervals in class MixtureDistribution
Parameters:
data - the data supposedly generated from the mixture

probabilityMatrix

public PaceMatrix probabilityMatrix(DoubleVector s,
                                    PaceMatrix intervals)
Contructs the probability matrix for mixture estimation, given a set of support points and a set of intervals.

Specified by:
probabilityMatrix in class MixtureDistribution
Parameters:
s - the set of support points
intervals - the intervals

empiricalBayesEstimate

public double empiricalBayesEstimate(double x)
Returns the empirical Bayes estimate of a single value.

Parameters:
x - the value

empiricalBayesEstimate

public DoubleVector empiricalBayesEstimate(DoubleVector x)
Returns the empirical Bayes estimate of a vector.

Parameters:
x - the vector

nestedEstimate

public DoubleVector nestedEstimate(DoubleVector x)
Returns the optimal nested model estimate of a vector.

Parameters:
x - the vector

subsetEstimate

public DoubleVector subsetEstimate(DoubleVector x)
Returns the estimate of optimal subset selection.

Parameters:
x - the vector

trim

public void trim(DoubleVector x)
Trims the small values of the estaimte

Parameters:
x - the estimate vector

hf

public double hf(double x)
Computes the value of h(x) / f(x) given the mixture. The implementation avoided overflow.

Parameters:
x - the value

h

public double h(double x)
Computes the value of h(x) given the mixture.

Parameters:
x - the value

h

public DoubleVector h(DoubleVector x)
Computes the value of h(x) given the mixture, where x is a vector.

Parameters:
x - the vector

f

public double f(double x)
Computes the value of f(x) given the mixture.

Parameters:
x - the value

f

public DoubleVector f(DoubleVector x)
Computes the value of f(x) given the mixture, where x is a vector.

Parameters:
x - the vector

toString

public java.lang.String toString()
Converts to a string

Overrides:
toString in class MixtureDistribution

main

public static void main(java.lang.String[] args)
Method to test this class