de.lmu.ifi.dbs.elki.utilities.scaling.outlier
Class MixtureModelOutlierScalingFunction

java.lang.Object
  extended by de.lmu.ifi.dbs.elki.utilities.scaling.outlier.MixtureModelOutlierScalingFunction
All Implemented Interfaces:
InspectionUtilFrequentlyScanned, Parameterizable, OutlierScalingFunction, ScalingFunction

@Reference(authors="J. Gao, P.-N. Tan",
           title="Converting Output Scores from Outlier Detection Algorithms into Probability Estimates",
           booktitle="Proc. Sixth International Conference on Data Mining, 2006. ICDM\'06.",
           url="http://dx.doi.org/10.1109/ICDM.2006.43")
public class MixtureModelOutlierScalingFunction
extends Object
implements OutlierScalingFunction

Tries to fit a mixture model (exponential for inliers and gaussian for outliers) to the outlier score distribution.


Field Summary
protected  double alpha
          Mixing parameter alpha
private static double DELTA
          Convergence parameter
protected  double lambda
          Parameter lambda of the exponential distribution (inliers)
private static Logging logger
          The logger for this class.
protected  double mu
          Parameter mu of the gaussian distribution (outliers)
static double ONEBYSQRT2PI
          Precomputed static value
protected  double sigma
          Parameter sigma of the gaussian distribution (outliers)
 
Constructor Summary
MixtureModelOutlierScalingFunction()
           
 
Method Summary
protected static double calcP_i(double f, double mu, double sigma)
          Compute p_i (Gaussian distribution, outliers)
protected static double calcPosterior(double f, double alpha, double mu, double sigma, double lambda)
          Compute the a posterior probability for the given parameters.
protected static double calcQ_i(double f, double lambda)
          Compute q_i (Exponential distribution, inliers)
 double getMax()
          Get maximum resulting value.
 double getMin()
          Get minimum resulting value.
 double getScaled(double value)
          Transform a given value using the scaling function.
 void prepare(OutlierResult or)
          Prepare is called once for each data set, before getScaled() will be called.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

logger

private static final Logging logger
The logger for this class.


mu

protected double mu
Parameter mu of the gaussian distribution (outliers)


sigma

protected double sigma
Parameter sigma of the gaussian distribution (outliers)


lambda

protected double lambda
Parameter lambda of the exponential distribution (inliers)


alpha

protected double alpha
Mixing parameter alpha


ONEBYSQRT2PI

public static final double ONEBYSQRT2PI
Precomputed static value


DELTA

private static final double DELTA
Convergence parameter

See Also:
Constant Field Values
Constructor Detail

MixtureModelOutlierScalingFunction

public MixtureModelOutlierScalingFunction()
Method Detail

calcP_i

protected static double calcP_i(double f,
                                double mu,
                                double sigma)
Compute p_i (Gaussian distribution, outliers)

Parameters:
f - value
mu - Mu parameter
sigma - Sigma parameter
Returns:
probability

calcQ_i

protected static double calcQ_i(double f,
                                double lambda)
Compute q_i (Exponential distribution, inliers)

Parameters:
f - value
lambda - Lambda parameter
Returns:
probability

calcPosterior

protected static double calcPosterior(double f,
                                      double alpha,
                                      double mu,
                                      double sigma,
                                      double lambda)
Compute the a posterior probability for the given parameters.

Parameters:
f - value
alpha - Alpha (mixing) parameter
mu - Mu (for gaussian)
sigma - Sigma (for gaussian)
lambda - Lambda (for exponential)
Returns:
Probability

prepare

public void prepare(OutlierResult or)
Description copied from interface: OutlierScalingFunction
Prepare is called once for each data set, before getScaled() will be called. This function can be used to extract global parameters such as means, minimums or maximums from the Database, Result or Annotation.

Specified by:
prepare in interface OutlierScalingFunction
Parameters:
or - Outlier result to use

getMax

public double getMax()
Description copied from interface: ScalingFunction
Get maximum resulting value. May be Double.NaN or Double.POSITIVE_INFINITY.

Specified by:
getMax in interface ScalingFunction
Returns:
Maximum resulting value.

getMin

public double getMin()
Description copied from interface: ScalingFunction
Get minimum resulting value. May be Double.NaN or Double.NEGATIVE_INFINITY.

Specified by:
getMin in interface ScalingFunction
Returns:
Minimum resulting value.

getScaled

public double getScaled(double value)
Description copied from interface: ScalingFunction
Transform a given value using the scaling function.

Specified by:
getScaled in interface ScalingFunction
Parameters:
value - Original value
Returns:
Scaled value

Release 0.4.0 (2011-09-20_1324)