@Reference(authors="E. M\u00fcller, M. Schiffer, T. Seidl", title="Adaptive outlierness for subspace outlier ranking", booktitle="Proc. 19th ACM Int. Conf. on Information and Knowledge Management", url="https://doi.org/10.1145/1871437.1871690", bibkey="DBLP:conf/cikm/MullerSS10") public class OUTRES extends AbstractAlgorithm<OutlierResult> implements OutlierAlgorithm
Note: this algorithm seems to have a O(n³d!) complexity with no obvious way to accelerate it with usual index structures for range queries: each object in each tested subspace will need to know the mean and standard deviation of the density of the neighbors, which in turn needs another range query; except if we precomputed the densities for each of O(d!) possible subsets of dimensions.
Reference:
E. Müller, M. Schiffer, T. Seidl
Adaptive outlierness for subspace outlier ranking
Proc. 19th ACM Int. Conf. on Information and Knowledge Management
Modifier and Type | Class and Description |
---|---|
protected static class |
OUTRES.KernelDensityEstimator
Kernel density estimation and utility class.
|
static class |
OUTRES.Parameterizer
Parameterization class.
|
Modifier and Type | Field and Description |
---|---|
private double |
eps
The epsilon (in 2d) parameter
|
private static double |
K_S_CRITICAL001
Constant for Kolmogorov-Smirnov at alpha=0.01 (table value)
|
private static Logging |
LOG
The logger for this class.
|
ALGORITHM_ID
Constructor and Description |
---|
OUTRES(double eps)
Constructor.
|
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 DoubleDBIDList |
initialRange(DBIDRef obj,
DBIDs cands,
PrimitiveDistanceFunction<? super NumberVector> df,
double eps,
OUTRES.KernelDensityEstimator kernel,
ModifiableDoubleDBIDList n)
Initial range query.
|
double |
outresScore(int s,
long[] subspace,
DBIDRef id,
OUTRES.KernelDensityEstimator kernel,
DBIDs cands)
Main loop of OUTRES.
|
protected boolean |
relevantSubspace(long[] subspace,
DoubleDBIDList neigh,
OUTRES.KernelDensityEstimator kernel)
Subspace relevance test.
|
OutlierResult |
run(Relation<? extends NumberVector> relation)
Main loop for OUTRES
|
private DoubleDBIDList |
subsetNeighborhoodQuery(DoubleDBIDList neighc,
DBIDRef dbid,
PrimitiveDistanceFunction<? super NumberVector> df,
double adjustedEps,
OUTRES.KernelDensityEstimator kernel,
ModifiableDoubleDBIDList n)
Refine neighbors within a subset.
|
run
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
run
private static final Logging LOG
private final double eps
private static final double K_S_CRITICAL001
public OutlierResult run(Relation<? extends NumberVector> relation)
relation
- Relation to processpublic double outresScore(int s, long[] subspace, DBIDRef id, OUTRES.KernelDensityEstimator kernel, DBIDs cands)
s
- start dimensionsubspace
- Current subspaceid
- Current object IDkernel
- Kernelcands
- neighbor candidatesprivate DoubleDBIDList initialRange(DBIDRef obj, DBIDs cands, PrimitiveDistanceFunction<? super NumberVector> df, double eps, OUTRES.KernelDensityEstimator kernel, ModifiableDoubleDBIDList n)
obj
- Objectcands
- Candidatesdf
- Distance functioneps
- Epsilon radiuskernel
- Kerneln
- Output bufferprivate DoubleDBIDList subsetNeighborhoodQuery(DoubleDBIDList neighc, DBIDRef dbid, PrimitiveDistanceFunction<? super NumberVector> df, double adjustedEps, OUTRES.KernelDensityEstimator kernel, ModifiableDoubleDBIDList n)
neighc
- Neighbor candidatesdbid
- Query objectdf
- distance functionadjustedEps
- Epsilon rangekernel
- Kerneln
- Output listprotected boolean relevantSubspace(long[] subspace, DoubleDBIDList neigh, OUTRES.KernelDensityEstimator kernel)
subspace
- Subspace to testneigh
- Neighbor listkernel
- Kernel density estimatorprotected Logging getLogger()
AbstractAlgorithm
getLogger
in class AbstractAlgorithm<OutlierResult>
public TypeInformation[] getInputTypeRestriction()
AbstractAlgorithm
getInputTypeRestriction
in interface Algorithm
getInputTypeRestriction
in class AbstractAlgorithm<OutlierResult>
Copyright © 2019 ELKI Development Team. License information.