@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.
|
distanceFunctionALGORITHM_IDDISTANCE_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.
|
getDistanceFunctionrunclone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitrunprivate 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()
AbstractAlgorithmgetInputTypeRestriction in interface AlgorithmgetInputTypeRestriction in class AbstractAlgorithm<OutlierResult>protected Logging getLogger()
AbstractAlgorithmgetLogger in class AbstractAlgorithm<OutlierResult>Copyright © 2019 ELKI Development Team. License information.