V
- Vector Type@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,?>> extends AbstractAlgorithm<OutlierResult> implements OutlierAlgorithm
Reference:
Eskin, Eleazar: Anomaly detection over noisy data using learned probability
distributions. In Proc. of the Seventeenth International Conference on
Machine Learning (ICML-2000).
Modifier and Type | Class and Description |
---|---|
static class |
GaussianUniformMixture.Parameterizer<V extends NumberVector<V,?>>
Parameterization class.
|
Modifier and Type | Field and Description |
---|---|
private double |
c
Holds the value of
C_ID . |
static OptionID |
C_ID
Parameter to specify the cutoff.
|
static OptionID |
L_ID
Parameter to specify the fraction of expected outliers.
|
private static Logging |
logger
The logger for this class.
|
private double |
logl
log(l) precomputed
|
private double |
logml
log(1-l) precomputed
|
private static double |
SINGULARITY_CHEAT
Small value to increment diagonally of a matrix in order to avoid
singularity before building the inverse.
|
Constructor and Description |
---|
GaussianUniformMixture(double l,
double c)
Constructor with parameters.
|
Modifier and Type | Method and Description |
---|---|
TypeInformation[] |
getInputTypeRestriction()
Get the input type restriction used for negotiating the data query.
|
protected Logging |
getLogger()
Get the (STATIC) logger for this class.
|
private double |
loglikelihoodAnomalous(DBIDs anomalousObjs)
Loglikelihood anomalous objects.
|
private double |
loglikelihoodNormal(DBIDs objids,
Relation<V> database)
Computes the loglikelihood of all normal objects.
|
OutlierResult |
run(Relation<V> relation) |
makeParameterDistanceFunction, run
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
run
private static final Logging logger
public static final OptionID L_ID
public static final OptionID C_ID
private static final double SINGULARITY_CHEAT
private double c
C_ID
.private double logl
private double logml
public GaussianUniformMixture(double l, double c)
l
- l valuec
- c valuepublic OutlierResult run(Relation<V> relation) throws IllegalStateException
IllegalStateException
private double loglikelihoodAnomalous(DBIDs anomalousObjs)
anomalousObjs
- private double loglikelihoodNormal(DBIDs objids, Relation<V> database)
objids
- Object IDs for 'normal' objects.database
- Databasepublic TypeInformation[] getInputTypeRestriction()
AbstractAlgorithm
getInputTypeRestriction
in interface Algorithm
getInputTypeRestriction
in class AbstractAlgorithm<OutlierResult>
protected Logging getLogger()
AbstractAlgorithm
getLogger
in class AbstractAlgorithm<OutlierResult>