Class FastABOD<V extends elki.data.NumberVector>

  • Type Parameters:
    V - Vector type
    All Implemented Interfaces:
    elki.Algorithm, OutlierAlgorithm
    Direct Known Subclasses:
    LBABOD

    @Title("Approximate ABOD: Angle-Based Outlier Detection")
    @Description("Outlier detection using variance analysis on angles, especially for high dimensional data sets.")
    @Reference(authors="Hans-Peter Kriegel, Matthias Schubert, Arthur Zimek",
               title="Angle-Based Outlier Detection in High-dimensional Data",
               booktitle="Proc. 14th ACM SIGKDD Int. Conf. Knowledge Discovery and Data Mining (KDD\'08)",
               url="https://doi.org/10.1145/1401890.1401946",
               bibkey="DBLP:conf/kdd/KriegelSZ08")
    public class FastABOD<V extends elki.data.NumberVector>
    extends ABOD<V>
    Fast-ABOD (approximateABOF) version of Angle-Based Outlier Detection / Angle-Based Outlier Factor.

    Note: the minimum k is 3. The 2 nearest neighbors yields one 1 angle, which implies a constant 0 variance everywhere.

    Reference:

    Hans-Peter Kriegel, Matthias Schubert, Arthur Zimek
    Angle-Based Outlier Detection in High-dimensional Data
    Proc. 14th ACM SIGKDD Int. Conf. Knowledge Discovery and Data Mining (KDD'08)

    Since:
    0.6.0
    Author:
    Matthias Schubert (Original Code), Erich Schubert (ELKIfication)
    • Nested Class Summary

      Nested Classes 
      Modifier and Type Class Description
      static class  FastABOD.Par<V extends elki.data.NumberVector>
      Parameterization class.
      • Nested classes/interfaces inherited from interface elki.Algorithm

        elki.Algorithm.Utils
    • Field Summary

      Fields 
      Modifier and Type Field Description
      protected int k
      Number of nearest neighbors.
    • Constructor Summary

      Constructors 
      Constructor Description
      FastABOD​(elki.similarity.Similarity<? super V> kernelFunction, int k)
      Constructor for Angle-Based Outlier Detection (ABOD).
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      private void fastABOD​(elki.database.relation.Relation<V> relation, elki.database.ids.DBIDs ids, elki.database.datastore.WritableDoubleDataStore abodvalues, elki.math.DoubleMinMax minmaxabod)
      Full kernel-based version.
      elki.data.type.TypeInformation[] getInputTypeRestriction()  
      private boolean kNNABOD​(elki.database.relation.Relation<V> relation, elki.database.ids.DBIDs ids, elki.database.datastore.WritableDoubleDataStore abodvalues, elki.math.DoubleMinMax minmaxabod)
      Simpler kNN based, can use more indexing.
      OutlierResult run​(elki.database.relation.Relation<V> relation)
      Run Fast-ABOD on the data set.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Field Detail

      • k

        protected int k
        Number of nearest neighbors.
    • Constructor Detail

      • FastABOD

        public FastABOD​(elki.similarity.Similarity<? super V> kernelFunction,
                        int k)
        Constructor for Angle-Based Outlier Detection (ABOD).
        Parameters:
        kernelFunction - kernel function to use
        k - Number of nearest neighbors
    • Method Detail

      • run

        public OutlierResult run​(elki.database.relation.Relation<V> relation)
        Run Fast-ABOD on the data set.
        Overrides:
        run in class ABOD<V extends elki.data.NumberVector>
        Parameters:
        relation - Relation to process
        Returns:
        Outlier detection result
      • kNNABOD

        private boolean kNNABOD​(elki.database.relation.Relation<V> relation,
                                elki.database.ids.DBIDs ids,
                                elki.database.datastore.WritableDoubleDataStore abodvalues,
                                elki.math.DoubleMinMax minmaxabod)
        Simpler kNN based, can use more indexing.
        Parameters:
        relation - Data relation
        ids - IDs
        abodvalues - Score storage
        minmaxabod - Min/max storage
        Returns:
        true if kNN were available and usable.
      • fastABOD

        private void fastABOD​(elki.database.relation.Relation<V> relation,
                              elki.database.ids.DBIDs ids,
                              elki.database.datastore.WritableDoubleDataStore abodvalues,
                              elki.math.DoubleMinMax minmaxabod)
        Full kernel-based version.
        Parameters:
        relation - Data relation
        ids - IDs
        abodvalues - Score storage
        minmaxabod - Min/max storage
      • getInputTypeRestriction

        public elki.data.type.TypeInformation[] getInputTypeRestriction()
        Specified by:
        getInputTypeRestriction in interface elki.Algorithm
        Overrides:
        getInputTypeRestriction in class ABOD<V extends elki.data.NumberVector>