@Title(value="An Efficient Reference-based Approach to Outlier Detection in Large Datasets") @Description(value="Computes kNN distances approximately, using reference points with various reference point strategies.") @Reference(authors="Y. Pei, O. R. Zaiane, Y. Gao", title="An Efficient Reference-based Approach to Outlier Detection in Large Datasets", booktitle="Proc. 6th IEEE Int. Conf. on Data Mining (ICDM \'06)", url="https://doi.org/10.1109/ICDM.2006.17", bibkey="DBLP:conf/icdm/PeiZG06") @Alias(value="de.lmu.ifi.dbs.elki.algorithm.outlier.ReferenceBasedOutlierDetection") public class ReferenceBasedOutlierDetection extends AbstractNumberVectorDistanceBasedAlgorithm<NumberVector,OutlierResult> implements OutlierAlgorithm
kNN distances are approximated by the difference in distance from a reference point. For this approximation to be of high quality, triangle inequality is required; but the algorithm can also process non-metric distances.
Reference:
Y. Pei, O. R. Zaiane, Y. Gao
An Efficient Reference-Based Approach to Outlier Detection in Large
Datasets
Proc. IEEE Int. Conf. on Data Mining (ICDM'06)
Modifier and Type | Class and Description |
---|---|
static class |
ReferenceBasedOutlierDetection.Parameterizer
Parameterization class.
|
Modifier and Type | Field and Description |
---|---|
private int |
k
Holds the number of neighbors to use for density estimation.
|
private static Logging |
LOG
The logger for this class.
|
private ReferencePointsHeuristic |
refp
Stores the reference point strategy.
|
distanceFunction
ALGORITHM_ID
DISTANCE_FUNCTION_ID
Constructor and Description |
---|
ReferenceBasedOutlierDetection(int k,
NumberVectorDistanceFunction<? super NumberVector> distanceFunction,
ReferencePointsHeuristic refp)
Constructor with parameters.
|
Modifier and Type | Method and Description |
---|---|
protected double |
computeDensity(DoubleDBIDList referenceDists,
DoubleDBIDListIter iter,
int index)
Computes the density of an object.
|
protected DoubleDBIDList |
computeDistanceVector(NumberVector refPoint,
Relation<? extends NumberVector> database,
PrimitiveDistanceQuery<? super NumberVector> distFunc)
Computes for each object the distance to one reference point.
|
TypeInformation[] |
getInputTypeRestriction()
Get the input type restriction used for negotiating the data query.
|
protected Logging |
getLogger()
Get the (STATIC) logger for this class.
|
OutlierResult |
run(Database database,
Relation<? extends NumberVector> relation)
Run the algorithm on the given relation.
|
protected void |
updateDensities(WritableDoubleDataStore rbod_score,
DoubleDBIDList referenceDists)
Update the density estimates for each object.
|
getDistanceFunction
run
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
run
private static final Logging LOG
private int k
private ReferencePointsHeuristic refp
public ReferenceBasedOutlierDetection(int k, NumberVectorDistanceFunction<? super NumberVector> distanceFunction, ReferencePointsHeuristic refp)
k
- k ParameterdistanceFunction
- distance functionrefp
- Reference points heuristicpublic OutlierResult run(Database database, Relation<? extends NumberVector> relation)
database
- Databaserelation
- Relation to processprotected DoubleDBIDList computeDistanceVector(NumberVector refPoint, Relation<? extends NumberVector> database, PrimitiveDistanceQuery<? super NumberVector> distFunc)
refPoint
- Reference Point Feature Vectordatabase
- database to work ondistFunc
- Distance function to useprotected void updateDensities(WritableDoubleDataStore rbod_score, DoubleDBIDList referenceDists)
rbod_score
- Density storagereferenceDists
- Distances from current reference pointprotected double computeDensity(DoubleDBIDList referenceDists, DoubleDBIDListIter iter, int index)
referenceDists
- vector of the reference distancesiter
- Iterator to this list (will be reused)index
- index of the current objectpublic TypeInformation[] getInputTypeRestriction()
AbstractAlgorithm
getInputTypeRestriction
in interface Algorithm
getInputTypeRestriction
in class AbstractAlgorithm<OutlierResult>
protected Logging getLogger()
AbstractAlgorithm
getLogger
in class AbstractAlgorithm<OutlierResult>
Copyright © 2019 ELKI Development Team. License information.