Package elki.outlier.distance
Class HilOut<O extends elki.data.NumberVector>
- java.lang.Object
-
- elki.outlier.distance.HilOut<O>
-
- Type Parameters:
O- Object type
- All Implemented Interfaces:
elki.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 elki.data.NumberVector> extends java.lang.Object implements OutlierAlgorithmFast 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
-
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 elki.distance.Distance<? super O>distanceDistance function used.private elki.database.query.distance.DistanceQuery<O>distqDistance queryprivate inthHilbert precisionprivate intkNumber of nearest neighborsprivate static elki.logging.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(elki.distance.minkowski.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 elki.data.type.TypeInformation[]getInputTypeRestriction()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(elki.database.relation.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 elki.logging.Logging LOG
The logger for this class.
-
distance
private elki.distance.Distance<? super O extends elki.data.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 elki.database.query.distance.DistanceQuery<O extends elki.data.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(elki.distance.minkowski.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 elki.data.type.TypeInformation[] getInputTypeRestriction()
- Specified by:
getInputTypeRestrictionin interfaceelki.Algorithm
-
run
public OutlierResult run(elki.database.relation.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
-
-