de.lmu.ifi.dbs.elki.algorithm.outlier
Class DBOutlierDetection<O,D extends Distance<D>>

java.lang.Object
  extended by de.lmu.ifi.dbs.elki.algorithm.AbstractAlgorithm<R>
      extended by de.lmu.ifi.dbs.elki.algorithm.AbstractDistanceBasedAlgorithm<O,D,OutlierResult>
          extended by de.lmu.ifi.dbs.elki.algorithm.outlier.AbstractDBOutlier<O,D>
              extended by de.lmu.ifi.dbs.elki.algorithm.outlier.DBOutlierDetection<O,D>
Type Parameters:
O - the type of DatabaseObjects handled by this Algorithm
D - the type of Distance used by this Algorithm
All Implemented Interfaces:
Algorithm, OutlierAlgorithm, InspectionUtilFrequentlyScanned, Parameterizable

@Title(value="DBOD: Distance Based Outlier Detection")
@Description(value="If the D-neighborhood of an object contains only very few objects (less than (1-p) percent of the data) this object is flagged as an outlier")
@Reference(authors="E.M. Knorr, R. T. Ng",
           title="Algorithms for Mining Distance-Based Outliers in Large Datasets",
           booktitle="Procs Int. Conf. on Very Large Databases (VLDB\'98), New York, USA, 1998")
public class DBOutlierDetection<O,D extends Distance<D>>
extends AbstractDBOutlier<O,D>

Simple distanced based outlier detection algorithm. User has to specify two parameters An object is flagged as an outlier if at least a fraction p of all data objects has a distance above d from c

Reference: E.M. Knorr, R. T. Ng: Algorithms for Mining Distance-Based Outliers in Large Datasets, In: Procs Int. Conf. on Very Large Databases (VLDB'98), New York, USA, 1998. This paper presents several Distance Based Outlier Detection algorithms. Implemented here is a simple index based algorithm as presented in section 3.1.


Nested Class Summary
static class DBOutlierDetection.Parameterizer<O,D extends Distance<D>>
          Parameterization class.
 
Field Summary
private static Logging logger
          The logger for this class.
private  double p
          Holds the value of P_ID.
static OptionID P_ID
          Parameter to specify the minimum fraction of objects that must be outside the D- neighborhood of an outlier
 
Fields inherited from class de.lmu.ifi.dbs.elki.algorithm.outlier.AbstractDBOutlier
D_ID
 
Fields inherited from class de.lmu.ifi.dbs.elki.algorithm.AbstractDistanceBasedAlgorithm
DISTANCE_FUNCTION_ID
 
Constructor Summary
DBOutlierDetection(DistanceFunction<O,D> distanceFunction, D d, double p)
          Constructor with actual parameters.
 
Method Summary
protected  DataStore<Double> computeOutlierScores(Database database, DistanceQuery<O,D> distFunc, D neighborhoodSize)
          computes an outlier score for each object of the database.
protected  Logging getLogger()
          Get the (STATIC) logger for this class.
 
Methods inherited from class de.lmu.ifi.dbs.elki.algorithm.outlier.AbstractDBOutlier
getInputTypeRestriction, run
 
Methods inherited from class de.lmu.ifi.dbs.elki.algorithm.AbstractDistanceBasedAlgorithm
getDistanceFunction
 
Methods inherited from class de.lmu.ifi.dbs.elki.algorithm.AbstractAlgorithm
makeParameterDistanceFunction, run
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface de.lmu.ifi.dbs.elki.algorithm.outlier.OutlierAlgorithm
run
 

Field Detail

logger

private static final Logging logger
The logger for this class.


P_ID

public static final OptionID P_ID
Parameter to specify the minimum fraction of objects that must be outside the D- neighborhood of an outlier


p

private double p
Holds the value of P_ID.

Constructor Detail

DBOutlierDetection

public DBOutlierDetection(DistanceFunction<O,D> distanceFunction,
                          D d,
                          double p)
Constructor with actual parameters.

Parameters:
distanceFunction - distance function parameter
d - distance query radius
p - percentage parameter
Method Detail

computeOutlierScores

protected DataStore<Double> computeOutlierScores(Database database,
                                                 DistanceQuery<O,D> distFunc,
                                                 D neighborhoodSize)
Description copied from class: AbstractDBOutlier
computes an outlier score for each object of the database.

Specified by:
computeOutlierScores in class AbstractDBOutlier<O,D extends Distance<D>>

getLogger

protected Logging getLogger()
Description copied from class: AbstractAlgorithm
Get the (STATIC) logger for this class.

Specified by:
getLogger in class AbstractAlgorithm<OutlierResult>
Returns:
the static logger

Release 0.4.0 (2011-09-20_1324)