Package elki.outlier.lof
Class LoOP<O>
- java.lang.Object
-
- elki.outlier.lof.LoOP<O>
-
- Type Parameters:
O
- type of objects handled by this algorithm
- All Implemented Interfaces:
Algorithm
,OutlierAlgorithm
@Title("LoOP: Local Outlier Probabilities") @Description("Variant of the LOF algorithm normalized using statistical values.") @Reference(authors="Hans-Peter Kriegel, Peer Kr\u00f6ger, Erich Schubert, Arthur Zimek", title="LoOP: Local Outlier Probabilities", booktitle="Proc. 18th Int. Conf. Information and Knowledge Management (CIKM 2009)", url="https://doi.org/10.1145/1645953.1646195", bibkey="DBLP:conf/cikm/KriegelKSZ09") @Priority(200) public class LoOP<O> extends java.lang.Object implements OutlierAlgorithm
LoOP: Local Outlier ProbabilitiesDistance/density based algorithm similar to LOF to detect outliers, but with statistical methods to achieve better result stability.
Reference:
Hans-Peter Kriegel, Peer Kröger, Erich Schubert, Arthur Zimek:
LoOP: Local Outlier Probabilities
Proc. 18th Int. Conf. Information and Knowledge Management (CIKM 2009)Implementation notes:
- The lambda parameter was removed from the pdist term, because it cancels out.
- In ELKI 0.7.0, the
k
parameters have changed by 1 to make them similar to other methods and more intuitive.
- Since:
- 0.3
- Author:
- Erich Schubert
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from interface elki.Algorithm
Algorithm.Utils
-
-
Field Summary
Fields Modifier and Type Field Description protected Distance<? super O>
comparisonDistance
Distance function for comparison set.(package private) int
kcomp
Comparison neighborhood size.(package private) int
kreach
Reachability neighborhood size.(package private) double
lambda
Lambda parameter.private static Logging
LOG
The logger for this class.protected Distance<? super O>
reachabilityDistance
Distance function for reachability.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected void
computePDists(Relation<O> relation, KNNSearcher<DBIDRef> knn, WritableDoubleDataStore pdists)
Compute the probabilistic distances used by LoOP.protected double
computePLOFs(Relation<O> relation, KNNSearcher<DBIDRef> knn, WritableDoubleDataStore pdists, WritableDoubleDataStore plofs)
Compute the LOF values, using the pdist distances.TypeInformation[]
getInputTypeRestriction()
Get the input type restriction used for negotiating the data query.OutlierResult
run(Relation<O> relation)
Performs the LoOP algorithm on the given database.-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface elki.outlier.OutlierAlgorithm
autorun
-
-
-
-
Field Detail
-
LOG
private static final Logging LOG
The logger for this class.
-
kreach
int kreach
Reachability neighborhood size.
-
kcomp
int kcomp
Comparison neighborhood size.
-
lambda
double lambda
Lambda parameter.
-
reachabilityDistance
protected Distance<? super O> reachabilityDistance
Distance function for reachability.
-
-
Constructor Detail
-
LoOP
public LoOP(int kreach, int kcomp, Distance<? super O> reachabilityDistance, Distance<? super O> comparisonDistance, double lambda)
Constructor with parameters.- Parameters:
kreach
- k for reachabilitykcomp
- k for comparisonreachabilityDistance
- distance function for reachabilitycomparisonDistance
- distance function for comparisonlambda
- Lambda parameter
-
-
Method Detail
-
getInputTypeRestriction
public TypeInformation[] getInputTypeRestriction()
Description copied from interface:Algorithm
Get the input type restriction used for negotiating the data query.- Specified by:
getInputTypeRestriction
in interfaceAlgorithm
- Returns:
- Type restriction
-
run
public OutlierResult run(Relation<O> relation)
Performs the LoOP algorithm on the given database.- Parameters:
relation
- Relation to process- Returns:
- Outlier result
-
computePDists
protected void computePDists(Relation<O> relation, KNNSearcher<DBIDRef> knn, WritableDoubleDataStore pdists)
Compute the probabilistic distances used by LoOP.- Parameters:
relation
- Data relationknn
- kNN querypdists
- Storage for distances
-
computePLOFs
protected double computePLOFs(Relation<O> relation, KNNSearcher<DBIDRef> knn, WritableDoubleDataStore pdists, WritableDoubleDataStore plofs)
Compute the LOF values, using the pdist distances.- Parameters:
relation
- Data relationknn
- kNN querypdists
- Precomputed distancesplofs
- Storage for PLOFs.- Returns:
- Normalization factor.
-
-