Package elki.outlier.lof
Class LOCI<O>
- java.lang.Object
-
- elki.outlier.lof.LOCI<O>
-
- Type Parameters:
O- Object type
- All Implemented Interfaces:
elki.Algorithm,OutlierAlgorithm
@Title("LOCI: Fast Outlier Detection Using the Local Correlation Integral") @Description("Algorithm to compute outliers based on the Local Correlation Integral") @Reference(authors="S. Papadimitriou, H. Kitagawa, P. B. Gibbons, C. Faloutsos", title="LOCI: Fast Outlier Detection Using the Local Correlation Integral", booktitle="Proc. 19th IEEE Int. Conf. on Data Engineering (ICDE \'03)", url="https://doi.org/10.1109/ICDE.2003.1260802", bibkey="DBLP:conf/icde/PapadimitriouKGF03") public class LOCI<O> extends java.lang.Object implements OutlierAlgorithmFast Outlier Detection Using the "Local Correlation Integral".Exact implementation only, not aLOCI. See
ALOCI.Outlier detection using multiple epsilon neighborhoods.
This implementation has O(n3 log n) runtime complexity!
Reference:
S. Papadimitriou, H. Kitagawa, P. B. Gibbons, C. Faloutsos:
LOCI: Fast Outlier Detection Using the Local Correlation Integral.
In: Proc. 19th IEEE Int. Conf. on Data Engineering (ICDE '03)- Since:
- 0.2
- Author:
- Erich Schubert
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description private static classLOCI.DoubleIntArrayListArray of double-int values.
-
Field Summary
Fields Modifier and Type Field Description private doublealphaScaling of averaging neighborhood.private elki.distance.Distance<? super O>distanceDistance function used.private static elki.logging.LoggingLOGThe logger for this class.private intnminMinimum neighborhood size.private doublermaxMaximum radius.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description elki.data.type.TypeInformation[]getInputTypeRestriction()protected voidprecomputeInterestingRadii(elki.database.ids.DBIDs ids, elki.database.query.range.RangeSearcher<elki.database.ids.DBIDRef> rangeQuery, elki.database.datastore.WritableDataStore<LOCI.DoubleIntArrayList> interestingDistances)Preprocessing step: determine the radii of interest for each point.OutlierResultrun(elki.database.relation.Relation<O> relation)Run the algorithm-
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 elki.logging.Logging LOG
The logger for this class.
-
distance
private elki.distance.Distance<? super O> distance
Distance function used.
-
rmax
private double rmax
Maximum radius.
-
nmin
private int nmin
Minimum neighborhood size.
-
alpha
private double alpha
Scaling of averaging neighborhood.
-
-
Constructor Detail
-
LOCI
public LOCI(elki.distance.Distance<? super O> distance, double rmax, int nmin, double alpha)
Constructor.- Parameters:
distance- Distance functionrmax- Maximum radiusnmin- Minimum neighborhood sizealpha- Alpha value
-
-
Method Detail
-
getInputTypeRestriction
public elki.data.type.TypeInformation[] getInputTypeRestriction()
- Specified by:
getInputTypeRestrictionin interfaceelki.Algorithm
-
run
public OutlierResult run(elki.database.relation.Relation<O> relation)
Run the algorithm- Parameters:
relation- Relation to process- Returns:
- Outlier result
-
precomputeInterestingRadii
protected void precomputeInterestingRadii(elki.database.ids.DBIDs ids, elki.database.query.range.RangeSearcher<elki.database.ids.DBIDRef> rangeQuery, elki.database.datastore.WritableDataStore<LOCI.DoubleIntArrayList> interestingDistances)Preprocessing step: determine the radii of interest for each point.- Parameters:
ids- IDs to processrangeQuery- Range queryinterestingDistances- Distances of interest
-
-