Environment for
DeveLoping
KDD-Applications
Supported by Index-Structures

de.lmu.ifi.dbs.elki.algorithm.outlier
Class LoOP<O extends DatabaseObject>

java.lang.Object
  extended by de.lmu.ifi.dbs.elki.logging.AbstractLoggable
      extended by de.lmu.ifi.dbs.elki.algorithm.AbstractAlgorithm<O,MultiResult>
          extended by de.lmu.ifi.dbs.elki.algorithm.outlier.LoOP<O>
Type Parameters:
O - the type of DatabaseObjects handled by this Algorithm
All Implemented Interfaces:
Algorithm<O,MultiResult>, Parameterizable

@Title(value="LoOP: Local Outlier Probabilities")
@Description(value="Variant of the LOF algorithm normalized using statistical values.")
@Reference(authors="H.-P. Kriegel, P. Kr\u00f6ger, E. Schubert, A. Zimek",
           title="LoOP: Local Outlier Probabilities",
           booktitle="Proceedings of the 18th International Conference on Information and Knowledge Management (CIKM), Hong Kong, China, 2009",
           url="http://dx.doi.org/10.1145/1645953.1646195")
public class LoOP<O extends DatabaseObject>
extends AbstractAlgorithm<O,MultiResult>

LoOP: Local Outlier Probabilities Distance/density based algorithm similar to LOF to detect outliers, but with statistical methods to achieve better result stability.

Author:
Erich Schubert

Field Summary
static OptionID COMPARISON_DISTANCE_FUNCTION_ID
          OptionID for COMPARISON_DISTANCE_FUNCTION_PARAM
private  ObjectParameter<DistanceFunction<O,DoubleDistance>> COMPARISON_DISTANCE_FUNCTION_PARAM
          The distance function to determine the reachability distance between database objects.
(package private)  int kcomp
          Holds the value of KCOMP_PARAM.
static OptionID KCOMP_ID
          OptionID for KCOMP_PARAM
private  IntParameter KCOMP_PARAM
          Parameter to specify the number of nearest neighbors of an object to be considered for computing its LOOP_SCORE, must be an integer greater than 1.
(package private)  int kref
          Holds the value of KREF_PARAM.
static OptionID KREF_ID
          OptionID for KCOMP_PARAM
private  IntParameter KREF_PARAM
          Parameter to specify the number of nearest neighbors of an object to be considered for computing its LOOP_SCORE, must be an integer greater than 1.
(package private)  double lambda
          Hold the value of LAMBDA_PARAM.
static OptionID LAMBDA_ID
          OptionID for LAMBDA_PARAM
private  DoubleParameter LAMBDA_PARAM
          Parameter to specify the number of nearest neighbors of an object to be considered for computing its LOOP_SCORE, must be an integer greater than 1.
static AssociationID<Double> LOOP_SCORE
          The association id to associate the LOOP_SCORE of an object for the LOOP_SCORE algorithm.
(package private)  boolean objectIsInKNN
          Include object itself in kNN neighborhood.
static OptionID PREPROCESSOR_ID
          OptionID for PREPROCESSOR_PARAM
private  ClassParameter<MaterializeKNNPreprocessor<O,DoubleDistance>> PREPROCESSOR_PARAM
          The preprocessor used to materialize the kNN neighborhoods.
(package private)  MaterializeKNNPreprocessor<O,DoubleDistance> preprocessorcompare
          Preprocessor Step 1
(package private)  MaterializeKNNPreprocessor<O,DoubleDistance> preprocessorref
          Preprocessor Step 2
static OptionID REFERENCE_DISTANCE_FUNCTION_ID
          OptionID for REFERENCE_DISTANCE_FUNCTION_PARAM
private  ObjectParameter<DistanceFunction<O,DoubleDistance>> REFERENCE_DISTANCE_FUNCTION_PARAM
          The distance function to determine the reachability distance between database objects.
 
Fields inherited from class de.lmu.ifi.dbs.elki.logging.AbstractLoggable
debug, logger
 
Constructor Summary
LoOP(Parameterization config)
          Constructor, adhering to Parameterizable
 
Method Summary
protected  OutlierResult runInTime(Database<O> database)
          Performs the LoOP algorithm on the given database.
 
Methods inherited from class de.lmu.ifi.dbs.elki.algorithm.AbstractAlgorithm
isTime, isVerbose, run, setTime, setVerbose
 
Methods inherited from class de.lmu.ifi.dbs.elki.logging.AbstractLoggable
debugFine, debugFiner, debugFinest, exception, progress, verbose, warning
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

REFERENCE_DISTANCE_FUNCTION_ID

public static final OptionID REFERENCE_DISTANCE_FUNCTION_ID
OptionID for REFERENCE_DISTANCE_FUNCTION_PARAM


REFERENCE_DISTANCE_FUNCTION_PARAM

private final ObjectParameter<DistanceFunction<O extends DatabaseObject,DoubleDistance>> REFERENCE_DISTANCE_FUNCTION_PARAM
The distance function to determine the reachability distance between database objects.

Default value: EuclideanDistanceFunction

Key: -loop.referencedistfunction


COMPARISON_DISTANCE_FUNCTION_ID

public static final OptionID COMPARISON_DISTANCE_FUNCTION_ID
OptionID for COMPARISON_DISTANCE_FUNCTION_PARAM


COMPARISON_DISTANCE_FUNCTION_PARAM

private final ObjectParameter<DistanceFunction<O extends DatabaseObject,DoubleDistance>> COMPARISON_DISTANCE_FUNCTION_PARAM
The distance function to determine the reachability distance between database objects.

Default value: EuclideanDistanceFunction

Key: -loop.comparedistfunction


PREPROCESSOR_ID

public static final OptionID PREPROCESSOR_ID
OptionID for PREPROCESSOR_PARAM


PREPROCESSOR_PARAM

private final ClassParameter<MaterializeKNNPreprocessor<O extends DatabaseObject,DoubleDistance>> PREPROCESSOR_PARAM
The preprocessor used to materialize the kNN neighborhoods. Default value: MaterializeKNNPreprocessor

Key: -loop.preprocessor


LOOP_SCORE

public static final AssociationID<Double> LOOP_SCORE
The association id to associate the LOOP_SCORE of an object for the LOOP_SCORE algorithm.


KCOMP_ID

public static final OptionID KCOMP_ID
OptionID for KCOMP_PARAM


KCOMP_PARAM

private final IntParameter KCOMP_PARAM
Parameter to specify the number of nearest neighbors of an object to be considered for computing its LOOP_SCORE, must be an integer greater than 1.

Key: -loop.kcomp


KREF_ID

public static final OptionID KREF_ID
OptionID for KCOMP_PARAM


KREF_PARAM

private final IntParameter KREF_PARAM
Parameter to specify the number of nearest neighbors of an object to be considered for computing its LOOP_SCORE, must be an integer greater than 1.

Key: -loop.kref


LAMBDA_ID

public static final OptionID LAMBDA_ID
OptionID for LAMBDA_PARAM


LAMBDA_PARAM

private final DoubleParameter LAMBDA_PARAM
Parameter to specify the number of nearest neighbors of an object to be considered for computing its LOOP_SCORE, must be an integer greater than 1.

Key: -loop.lambda


kcomp

int kcomp
Holds the value of KCOMP_PARAM.


kref

int kref
Holds the value of KREF_PARAM.


lambda

double lambda
Hold the value of LAMBDA_PARAM.


preprocessorcompare

MaterializeKNNPreprocessor<O extends DatabaseObject,DoubleDistance> preprocessorcompare
Preprocessor Step 1


preprocessorref

MaterializeKNNPreprocessor<O extends DatabaseObject,DoubleDistance> preprocessorref
Preprocessor Step 2


objectIsInKNN

boolean objectIsInKNN
Include object itself in kNN neighborhood.

Constructor Detail

LoOP

public LoOP(Parameterization config)
Constructor, adhering to Parameterizable

Parameters:
config - Parameterization
Method Detail

runInTime

protected OutlierResult runInTime(Database<O> database)
                           throws IllegalStateException
Performs the LoOP algorithm on the given database.

Specified by:
runInTime in class AbstractAlgorithm<O extends DatabaseObject,MultiResult>
Parameters:
database - the database to run the algorithm on
Returns:
the Result computed by this algorithm
Throws:
IllegalStateException - if the algorithm has not been initialized properly (e.g. the setParameters(String[]) method has been failed to be called).

Release 0.3 (2010-03-31_1612)