Environment for
DeveLoping
KDD-Applications
Supported by Index-Structures

de.lmu.ifi.dbs.elki.algorithm.outlier
Class GaussianUniformMixture<V extends NumberVector<V,Double>>

java.lang.Object
  extended by de.lmu.ifi.dbs.elki.logging.AbstractLoggable
      extended by de.lmu.ifi.dbs.elki.algorithm.AbstractAlgorithm<V,OutlierResult>
          extended by de.lmu.ifi.dbs.elki.algorithm.outlier.GaussianUniformMixture<V>
Type Parameters:
V - Vector Type
All Implemented Interfaces:
Algorithm<V,OutlierResult>, Parameterizable

@Title(value="Gaussian-Uniform Mixture Model Outlier Detection")
@Description(value="Fits a mixture model consisting of a Gaussian and a uniform distribution to the data.")
@Reference(prefix="Generalization using the likelihood gain as outlier score of",
           authors="Eskin, Eleazar",
           title="Anomaly detection over noisy data using learned probability distributions",
           booktitle="Proc. of the Seventeenth International Conference on Machine Learning (ICML-2000)")
public class GaussianUniformMixture<V extends NumberVector<V,Double>>
extends AbstractAlgorithm<V,OutlierResult>

Outlier detection algorithm using a mixture model approach. The data is modeled as a mixture of two distributions, a Gaussian distribution for ordinary data and a uniform distribution for outliers. At first all Objects are in the set of normal objects and the set of anomalous objects is empty. An iterative procedure then transfers objects from the ordinary set to the anomalous set if the transfer increases the overall likelihood of the data.

Reference:
Eskin, Eleazar: Anomaly detection over noisy data using learned probability distributions. In Proc. of the Seventeenth International Conference on Machine Learning (ICML-2000).

Author:
Lisa Reichert

Field Summary
private  double c
          Holds the value of C_PARAM.
static OptionID C_ID
          OptionID for C_PARAM
private  DoubleParameter C_PARAM
          Parameter to specify the cutoff, Key: -mmo.c
private  double l
          Holds the value of L_PARAM.
static OptionID L_ID
          OptionID for L_PARAM
private  DoubleParameter L_PARAM
          Parameter to specify the fraction of expected outliers, Key: -mmo.l
private  double logl
          log(l) precomputed
private  double logml
          log(1-l) precomputed
static AssociationID<Double> MMOD_OFLAG
          The association id to associate the MMOD_OFLAF of an object for the GaussianUniformMixture algorithm.
private static double SINGULARITY_CHEAT
          Small value to increment diagonally of a matrix in order to avoid singularity before building the inverse.
 
Fields inherited from class de.lmu.ifi.dbs.elki.logging.AbstractLoggable
debug, logger
 
Constructor Summary
GaussianUniformMixture(Parameterization config)
          Constructor, adhering to Parameterizable
 
Method Summary
private  double loglikelihoodAnomalous(Collection<Integer> anomalousObjs)
          Loglikelihood anomalous objects.
private  double loglikelihoodNormal(Collection<Integer> objids, Database<V> database)
          Computes the loglikelihood of all normal objects.
protected  OutlierResult runInTime(Database<V> database)
          The run method encapsulated in measure of runtime.
 
Methods inherited from class de.lmu.ifi.dbs.elki.algorithm.AbstractAlgorithm
isTime, isVerbose, run, setTime, setVerbose
 
Methods inherited from class de.lmu.ifi.dbs.elki.logging.AbstractLoggable
debugFine, debugFiner, debugFinest, exception, progress, verbose, warning
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

MMOD_OFLAG

public static final AssociationID<Double> MMOD_OFLAG
The association id to associate the MMOD_OFLAF of an object for the GaussianUniformMixture algorithm.


L_ID

public static final OptionID L_ID
OptionID for L_PARAM


C_ID

public static final OptionID C_ID
OptionID for C_PARAM


SINGULARITY_CHEAT

private static final double SINGULARITY_CHEAT
Small value to increment diagonally of a matrix in order to avoid singularity before building the inverse.

See Also:
Constant Field Values

L_PARAM

private final DoubleParameter L_PARAM
Parameter to specify the fraction of expected outliers,

Key: -mmo.l


l

private double l
Holds the value of L_PARAM.


C_PARAM

private final DoubleParameter C_PARAM
Parameter to specify the cutoff,

Key: -mmo.c


c

private double c
Holds the value of C_PARAM.


logl

private double logl
log(l) precomputed


logml

private double logml
log(1-l) precomputed

Constructor Detail

GaussianUniformMixture

public GaussianUniformMixture(Parameterization config)
Constructor, adhering to Parameterizable

Parameters:
config - Parameterization
Method Detail

runInTime

protected OutlierResult runInTime(Database<V> database)
                           throws IllegalStateException
Description copied from class: AbstractAlgorithm
The run method encapsulated in measure of runtime. An extending class needs not to take care of runtime itself.

Specified by:
runInTime in class AbstractAlgorithm<V extends NumberVector<V,Double>,OutlierResult>
Parameters:
database - the database to run the algorithm on
Returns:
the Result computed by this algorithm
Throws:
IllegalStateException - if the algorithm has not been initialized properly (e.g. the setParameters(String[]) method has been failed to be called).

loglikelihoodAnomalous

private double loglikelihoodAnomalous(Collection<Integer> anomalousObjs)
Loglikelihood anomalous objects. Uniform distribution

Parameters:
anomalousObjs -
Returns:
loglikelihood for anomalous objects

loglikelihoodNormal

private double loglikelihoodNormal(Collection<Integer> objids,
                                   Database<V> database)
Computes the loglikelihood of all normal objects. Gaussian model

Parameters:
objids - Object IDs for 'normal' objects.
database - Database
Returns:
loglikelihood for normal objects

Release 0.3 (2010-03-31_1612)