Class SigniTrendChangeDetection

  • All Implemented Interfaces:
    Algorithm

    @Title("Signi-Trend: scalable detection of emerging topics in textual streams by hashed significance thresholds")
    @Reference(authors="Erich Schubert, Michael Weiler, Hans-Peter Kriegel",
               title="Signi-Trend: scalable detection of emerging topics in textual streams by hashed significance thresholds",
               booktitle="Proc. 20th ACM SIGKDD international conference on Knowledge discovery and data mining",
               url="https://doi.org/10.1145/2623330.2623740",
               bibkey="DBLP:conf/kdd/SchubertWK14")
    @Priority(200)
    public class SigniTrendChangeDetection
    extends java.lang.Object
    implements Algorithm
    Signi-Trend detection algorithm applies to a single time-series.

    This is not a complete implementation of the method, but a modified (two-sided) version of the significance score use in Signi-Trend for change detection. The hashing and scalability parts of Signi-Trend are not applicable here.

    This implementation currently does not use timestamps, and thus only works for fixed-interval measurements. It could be extended to allow dynamic data windows by adjusting the alpha parameter based on time deltas.

    Reference:

    Erich Schubert, Michael Weiler, Hans-Peter Kriegel
    Signi-Trend: scalable detection of emerging topics in textual streams by hashed significance thresholds
    Proc. 20th ACM SIGKDD international conference on Knowledge discovery and data mining

    TODO: add support for dynamic time, and optimize for sparse vectors.

    Since:
    0.7.5
    Author:
    Erich Schubert
    • Field Detail

      • alpha

        private double alpha
        Exponential aging parameter.
      • bias

        private double bias
        Bias for small values.
      • minsigma

        private double minsigma
        Minimum sigma to report.
    • Constructor Detail

      • SigniTrendChangeDetection

        public SigniTrendChangeDetection​(double halflife,
                                         double bias,
                                         double minsigma)
        Constructor
        Parameters:
        halflife - half-life for learning rate alpha
        bias - beta term
        minsigma - threshold for detecting a trend
    • 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 interface Algorithm
        Returns:
        Type restriction
      • run

        public ChangePoints run​(Relation<NumberVector> relation)
        Executes Signi-Trend for given relation
        Parameters:
        relation - relation to process
        Returns:
        list with all the detected trends for every time series