Class HySortOD

  • All Implemented Interfaces:
    Algorithm, OutlierAlgorithm

    @Title("HySortOD: Hypercube-Based Outlier Detection")
    @Description("Algorithm that uses an efficient hypercube-ordering-and-searching strategy for fast outlier detection.")
    @Reference(authors="Eug\u00eanio F. Cabral, and Robson L.F. Cordeiro",
               title="Fast and Scalable Outlier Detection with Sorted Hypercubes",
               booktitle="Proc. 29th ACM Int. Conf. on Information & Knowledge Management (CIKM\'20)",
               url="https://doi.org/10.1145/3340531.3412033")
    public class HySortOD
    extends java.lang.Object
    implements OutlierAlgorithm
    Hypercube-Based Outlier Detection.

    Algorithm that uses an efficient hypercube-ordering-and-searching strategy for fast outlier detection. Its main focus is the analysis of data with many instances and a low-to-moderate number of dimensions.

    Reference:

    EugĂȘnio F. Cabral and Robson L.F. Cordeiro
    Fast and Scalable Outlier Detection with Sorted Hypercubes
    Proc. 29th ACM Int. Conf. on Information and Knowledge Management (CIKM'20)

    Since:
    0.8.0
    Author:
    Cabral, EugĂȘnio F. (Original Code), Braulio V.S. Vinces (ELKIfication)
    • Field Detail

      • LOG

        private static final Logging LOG
        The logger for this class.
      • b

        private int b
        Number of bins.
      • l

        private final double l
        Hypercube's length.
    • Constructor Detail

      • HySortOD

        public HySortOD​(int b,
                        int minSplit)
        Constructor with parameters.
        Parameters:
        b - Number of bins
        minSplit - Threshold to balance the tree strategy
    • Method Detail

      • getSortedHypercubes

        private java.util.List<HySortOD.Hypercube> getSortedHypercubes​(Relation<? extends NumberVector> relation)
        Create and sort hypercubes considering their coordinates.
        Parameters:
        relation - Data to process
        Returns:
        Hypercubes sorted
      • score

        private double score​(int density)
        Compute score according to hypercube neighborhood density.
        Parameters:
        density - Hypercube density
        Returns:
        score
      • getInputTypeRestriction

        public TypeInformation[] getInputTypeRestriction()
        Description copied from interface: Algorithm
        Get the input type restriction used for negotiating the data query.
        Specified by:
        getInputTypeRestriction in interface Algorithm
        Returns:
        Type restriction