Package elki.outlier.clustering
Class EMOutlier<V extends NumberVector>
- java.lang.Object
-
- elki.outlier.clustering.EMOutlier<V>
-
- Type Parameters:
V
- Vector type
- All Implemented Interfaces:
Algorithm
,OutlierAlgorithm
@Title("EM Outlier: Outlier Detection based on the generic EM clustering") @Description("The outlier score assigned is based on the highest cluster probability obtained from EM clustering.") public class EMOutlier<V extends NumberVector> extends java.lang.Object implements OutlierAlgorithm
Outlier detection algorithm using EM Clustering.If an object does not belong to any cluster it is supposed to be an outlier. We use the log likelihood sum that the object is explained by the clustering as anomaly score in this approach. If you use this implementation as reference, please cite the latest ELKI release.
- Since:
- 0.3
- Author:
- Erich Schubert
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
EMOutlier.Par<V extends NumberVector>
Parameterization class.-
Nested classes/interfaces inherited from interface elki.Algorithm
Algorithm.Utils
-
-
Field Summary
Fields Modifier and Type Field Description protected double
delta
Delta parameterprotected int
k
Number of clustersprivate static Logging
LOG
The logger for this class.protected int
maxiter
Maximum number of iterations to allowprotected EMClusterModelFactory<? super V,?>
mfactory
Factory for producing the initial cluster model.protected static double
MIN_LOGLIKELIHOOD
Minimum loglikelihood to avoid -infinity.protected int
miniter
Minimum number of iterations to doprotected double
prior
Prior to enable MAP estimation (use 0 for MLE)
-
Constructor Summary
Constructors Constructor Description EMOutlier(int k, double delta, EMClusterModelFactory<? super V,?> mfactory, int miniter, int maxiter, double prior)
Constructor.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description TypeInformation[]
getInputTypeRestriction()
Get the input type restriction used for negotiating the data query.OutlierResult
run(Relation<V> relation)
Runs the algorithm in the timed evaluation part.-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface elki.outlier.OutlierAlgorithm
autorun
-
-
-
-
Field Detail
-
LOG
private static final Logging LOG
The logger for this class.
-
k
protected int k
Number of clusters
-
delta
protected double delta
Delta parameter
-
mfactory
protected EMClusterModelFactory<? super V extends NumberVector,?> mfactory
Factory for producing the initial cluster model.
-
miniter
protected int miniter
Minimum number of iterations to do
-
maxiter
protected int maxiter
Maximum number of iterations to allow
-
prior
protected double prior
Prior to enable MAP estimation (use 0 for MLE)
-
MIN_LOGLIKELIHOOD
protected static final double MIN_LOGLIKELIHOOD
Minimum loglikelihood to avoid -infinity.- See Also:
- Constant Field Values
-
-
Constructor Detail
-
EMOutlier
public EMOutlier(int k, double delta, EMClusterModelFactory<? super V,?> mfactory, int miniter, int maxiter, double prior)
Constructor.- Parameters:
k
- k parameterdelta
- delta parametermfactory
- EM cluster model factoryminiter
- Minimum number of iterationsmaxiter
- Maximum number of iterationsprior
- MAP prior
-
-
Method Detail
-
getInputTypeRestriction
public TypeInformation[] getInputTypeRestriction()
Description copied from interface:Algorithm
Get the input type restriction used for negotiating the data query.- Specified by:
getInputTypeRestriction
in interfaceAlgorithm
- Returns:
- Type restriction
-
run
public OutlierResult run(Relation<V> relation)
Runs the algorithm in the timed evaluation part.- Parameters:
relation
- Relation to process- Returns:
- Outlier result
-
-