O
- type of objects handled by this algorithmD
- type of distances used@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,D extends NumberDistance<D,?>> extends AbstractAlgorithm<OutlierResult> implements OutlierAlgorithm
Modifier and Type | Class and Description |
---|---|
static class |
LoOP.Parameterizer<O,D extends NumberDistance<D,?>>
Parameterization class.
|
Modifier and Type | Field and Description |
---|---|
static OptionID |
COMPARISON_DISTANCE_FUNCTION_ID
The distance function to determine the reachability distance between
database objects.
|
protected DistanceFunction<? super O,D> |
comparisonDistanceFunction
Preprocessor Step 2.
|
(package private) int |
kcomp
Holds the value of
KCOMP_ID . |
static OptionID |
KCOMP_ID
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 |
kreach
Holds the value of
KREACH_ID . |
static OptionID |
KREACH_ID
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_ID . |
static OptionID |
LAMBDA_ID
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.
|
private static Logging |
LOG
The logger for this class.
|
(package private) static boolean |
objectIsInKNN
Include object itself in kNN neighborhood.
|
static OptionID |
REACHABILITY_DISTANCE_FUNCTION_ID
The distance function to determine the reachability distance between
database objects.
|
protected DistanceFunction<? super O,D> |
reachabilityDistanceFunction
Preprocessor Step 1.
|
Constructor and Description |
---|
LoOP(int kreach,
int kcomp,
DistanceFunction<? super O,D> reachabilityDistanceFunction,
DistanceFunction<? super O,D> comparisonDistanceFunction,
double lambda)
Constructor with parameters.
|
Modifier and Type | Method and Description |
---|---|
TypeInformation[] |
getInputTypeRestriction()
Get the input type restriction used for negotiating the data query.
|
protected Pair<KNNQuery<O,D>,KNNQuery<O,D>> |
getKNNQueries(Database database,
Relation<O> relation,
StepProgress stepprog)
Get the kNN queries for the algorithm.
|
protected Logging |
getLogger()
Get the (STATIC) logger for this class.
|
OutlierResult |
run(Database database,
Relation<O> relation)
Performs the LoOP algorithm on the given database.
|
makeParameterDistanceFunction, run
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
run
private static final Logging LOG
public static final OptionID REACHABILITY_DISTANCE_FUNCTION_ID
public static final OptionID COMPARISON_DISTANCE_FUNCTION_ID
public static final OptionID KREACH_ID
public static final OptionID KCOMP_ID
public static final OptionID LAMBDA_ID
int kreach
KREACH_ID
.int kcomp
KCOMP_ID
.double lambda
LAMBDA_ID
.protected DistanceFunction<? super O,D extends NumberDistance<D,?>> reachabilityDistanceFunction
protected DistanceFunction<? super O,D extends NumberDistance<D,?>> comparisonDistanceFunction
static boolean objectIsInKNN
public LoOP(int kreach, int kcomp, DistanceFunction<? super O,D> reachabilityDistanceFunction, DistanceFunction<? super O,D> comparisonDistanceFunction, double lambda)
kreach
- k for reachabilitykcomp
- k for comparisonreachabilityDistanceFunction
- distance function for reachabilitycomparisonDistanceFunction
- distance function for comparisonlambda
- Lambda parameterprotected Pair<KNNQuery<O,D>,KNNQuery<O,D>> getKNNQueries(Database database, Relation<O> relation, StepProgress stepprog)
database
- Database to analyzerelation
- Relation to analyzestepprog
- Progress logger, may be null
public OutlierResult run(Database database, Relation<O> relation)
database
- Database to processrelation
- Relation to processpublic TypeInformation[] getInputTypeRestriction()
AbstractAlgorithm
getInputTypeRestriction
in interface Algorithm
getInputTypeRestriction
in class AbstractAlgorithm<OutlierResult>
protected Logging getLogger()
AbstractAlgorithm
getLogger
in class AbstractAlgorithm<OutlierResult>