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) class
HilOut.HilbertFeatures
Class organizing the data points along a hilbert curve.(package private) static class
HilOut.HilFeature
Hilbert representation of a single object.static class
HilOut.ScoreType
Type 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 int
capital_n
Set sizes, total and current iterationprivate int
capital_n_star
Set sizes, total and current iterationprivate int
d
Set sizes, total and current iterationprivate Distance<? super O>
distance
Distance function used.private DistanceQuery<O>
distq
Distance queryprivate int
h
Hilbert precisionprivate int
k
Number of nearest neighborsprivate static Logging
LOG
The logger for this class.private int
n
Number of outliers to compute exactlyprivate int
n_star
Set sizes, total and current iterationprivate double
omega_star
Outlier thresholdprivate double
t
LPNorm p parameterprivate java.lang.Enum<HilOut.ScoreType>
tn
Reporting 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 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 SetOutlierResult
run(Relation<O> relation)
Run the HilOut algorithm.private void
scan(HilOut.HilbertFeatures hf, int k0)
Scan function performs a squential scan over the data.private void
trueOutliers(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: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)
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
-
-