Package elki.outlier.distance
Class HilOut<O extends NumberVector>
- java.lang.Object
-
- elki.outlier.distance.HilOut<O>
-
- Type Parameters:
O- Object type
- All Implemented Interfaces:
Algorithm,OutlierAlgorithm
@Title("Fast Outlier Detection in High Dimensional Spaces") @Description("Algorithm to compute outliers using Hilbert space filling curves") @Reference(authors="F. Angiulli, C. Pizzuti", title="Fast Outlier Detection in High Dimensional Spaces", booktitle="Proc. European Conf. Principles of Knowledge Discovery and Data Mining (PKDD\'02)", url="https://doi.org/10.1007/3-540-45681-3_2", bibkey="DBLP:conf/pkdd/AngiulliP02") public class HilOut<O extends NumberVector> extends java.lang.Object implements OutlierAlgorithm
Fast Outlier Detection in High Dimensional SpacesOutlier Detection using Hilbert space filling curves
Reference:
F. Angiulli, C. Pizzuti
Fast Outlier Detection in High Dimensional Spaces
Proc. European Conf. Principles of Knowledge Discovery and Data Mining (PKDD'02)- Since:
- 0.5.0
- Author:
- Jonathan von Brünken, Erich Schubert
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description (package private) classHilOut.HilbertFeaturesClass organizing the data points along a hilbert curve.(package private) static classHilOut.HilFeatureHilbert representation of a single object.static classHilOut.ScoreTypeType of output: all scores (upper bounds) or top n only-
Nested classes/interfaces inherited from interface elki.Algorithm
Algorithm.Utils
-
-
Field Summary
Fields Modifier and Type Field Description private intcapital_nSet sizes, total and current iterationprivate intcapital_n_starSet sizes, total and current iterationprivate intdSet sizes, total and current iterationprivate Distance<? super O>distanceDistance function used.private DistanceQuery<O>distqDistance queryprivate inthHilbert precisionprivate intkNumber of nearest neighborsprivate static LoggingLOGThe logger for this class.private intnNumber of outliers to compute exactlyprivate intn_starSet sizes, total and current iterationprivate doubleomega_starOutlier thresholdprivate doubletLPNorm p parameterprivate java.lang.Enum<HilOut.ScoreType>tnReporting mode: exact (top n) only, or all
-
Constructor Summary
Constructors Constructor Description HilOut(LPNormDistance distance, int k, int n, int h, java.lang.Enum<HilOut.ScoreType> tn)Constructor.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description TypeInformation[]getInputTypeRestriction()Get the input type restriction used for negotiating the data query.private voidinnerScan(HilOut.HilbertFeatures hf, int i, int maxcount)innerScan function calculates new upper and lower bounds and inserts the points of the neighborhood the bounds are based on in the NN SetOutlierResultrun(Relation<O> relation)Run the HilOut algorithm.private voidscan(HilOut.HilbertFeatures hf, int k0)Scan function performs a squential scan over the data.private voidtrueOutliers(HilOut.HilbertFeatures h)trueOutliers function updates n_star-
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.
-
distance
private Distance<? super O extends NumberVector> distance
Distance function used.
-
k
private int k
Number of nearest neighbors
-
n
private int n
Number of outliers to compute exactly
-
h
private int h
Hilbert precision
-
t
private double t
LPNorm p parameter
-
tn
private java.lang.Enum<HilOut.ScoreType> tn
Reporting mode: exact (top n) only, or all
-
distq
private DistanceQuery<O extends NumberVector> distq
Distance query
-
capital_n
private int capital_n
Set sizes, total and current iteration
-
n_star
private int n_star
Set sizes, total and current iteration
-
capital_n_star
private int capital_n_star
Set sizes, total and current iteration
-
d
private int d
Set sizes, total and current iteration
-
omega_star
private double omega_star
Outlier threshold
-
-
Constructor Detail
-
HilOut
public HilOut(LPNormDistance distance, int k, int n, int h, java.lang.Enum<HilOut.ScoreType> tn)
Constructor.- Parameters:
k- Number of Next Neighborsn- Number of Outlierh- Number of Bits for precision to use - max 32tn- TopN or All Outlier Rank to return
-
-
Method Detail
-
getInputTypeRestriction
public TypeInformation[] getInputTypeRestriction()
Description copied from interface:AlgorithmGet the input type restriction used for negotiating the data query.- Specified by:
getInputTypeRestrictionin interfaceAlgorithm- Returns:
- Type restriction
-
run
public OutlierResult run(Relation<O> relation)
Run the HilOut algorithm.- Parameters:
relation- Data relation- Returns:
- Outlier result
-
scan
private void scan(HilOut.HilbertFeatures hf, int k0)
Scan function performs a squential scan over the data.- Parameters:
hf- the hilbert featuresk0-
-
innerScan
private void innerScan(HilOut.HilbertFeatures hf, int i, int maxcount)
innerScan function calculates new upper and lower bounds and inserts the points of the neighborhood the bounds are based on in the NN Set- Parameters:
i- position in pf of the feature for which the bounds should be calculatedmaxcount- maximal size of the neighborhood
-
trueOutliers
private void trueOutliers(HilOut.HilbertFeatures h)
trueOutliers function updates n_star- Parameters:
h- the HilberFeatures
-
-