Class SqrtStandardDeviationScaling

  • All Implemented Interfaces:
    OutlierScaling, ScalingFunction

    @Reference(authors="Hans-Peter Kriegel, Peer Kr\u00f6ger, Erich Schubert, Arthur Zimek",
               title="Interpreting and Unifying Outlier Scores",
               booktitle="Proc. 11th SIAM International Conference on Data Mining (SDM 2011)",
               url="https://doi.org/10.1137/1.9781611972818.2",
               bibkey="DBLP:conf/sdm/KriegelKSZ11")
    public class SqrtStandardDeviationScaling
    extends java.lang.Object
    implements OutlierScaling
    Scaling that can map arbitrary values to a probability in the range of [0:1].

    Transformation is done using the formulas \[y = \sqrt{x - \min}\] \[s = \max\{0, \textrm{erf}(\lambda \frac{y-\mu}{\sigma\sqrt{2}})\}\]

    Where min and mean \(\mu\) can be fixed to a given value, and stddev \(\sigma\) is then computed against this mean.

    Reference:

    Hans-Peter Kriegel, Peer Kröger, Erich Schubert, Arthur Zimek
    Interpreting and Unifying Outlier Scores
    Proc. 11th SIAM International Conference on Data Mining (SDM 2011)

    Since:
    0.3
    Author:
    Erich Schubert
    • Field Summary

      Fields 
      Modifier and Type Field Description
      (package private) double factor
      Effective parameters.
      (package private) double mean
      Effective parameters.
      (package private) double min
      Effective parameters.
      (package private) double plambda
      Predefined lambda scaling factor.
      (package private) double pmean
      Pre-fixed minimum and mean.
      (package private) double pmin
      Pre-fixed minimum and mean.
    • Constructor Summary

      Constructors 
      Constructor Description
      SqrtStandardDeviationScaling​(double pmin, double pmean, double plambda)
      Constructor.
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      double getMax()
      Get maximum resulting value.
      double getMin()
      Get minimum resulting value.
      double getScaled​(double value)
      Transform a given value using the scaling function.
      <A> void prepare​(A array, NumberArrayAdapter<?,​A> adapter)
      Prepare is called once for each data set, before getScaled() will be called.
      void prepare​(OutlierResult or)
      Prepare is called once for each data set, before getScaled() will be called.
      • Methods inherited from class java.lang.Object

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

      • min

        double min
        Effective parameters.
      • mean

        double mean
        Effective parameters.
      • factor

        double factor
        Effective parameters.
      • pmin

        double pmin
        Pre-fixed minimum and mean.
      • pmean

        double pmean
        Pre-fixed minimum and mean.
      • plambda

        double plambda
        Predefined lambda scaling factor.
    • Constructor Detail

      • SqrtStandardDeviationScaling

        public SqrtStandardDeviationScaling​(double pmin,
                                            double pmean,
                                            double plambda)
        Constructor.
        Parameters:
        pmin - Predefined minimum
        pmean - Predefined mean
        plambda - Lambda parameter
    • Method Detail

      • getScaled

        public double getScaled​(double value)
        Description copied from interface: ScalingFunction
        Transform a given value using the scaling function.
        Specified by:
        getScaled in interface ScalingFunction
        Parameters:
        value - Original value
        Returns:
        Scaled value
      • prepare

        public void prepare​(OutlierResult or)
        Description copied from interface: OutlierScaling
        Prepare is called once for each data set, before getScaled() will be called. This function can be used to extract global parameters such as means, minimums or maximums from the outlier scores.
        Specified by:
        prepare in interface OutlierScaling
        Parameters:
        or - Outlier result to use
      • prepare

        public <A> void prepare​(A array,
                                NumberArrayAdapter<?,​A> adapter)
        Description copied from interface: OutlierScaling
        Prepare is called once for each data set, before getScaled() will be called. This function can be used to extract global parameters such as means, minimums or maximums from the score array. The method using a full OutlierResult is preferred, as it will allow access to the metadata.
        Specified by:
        prepare in interface OutlierScaling
        Parameters:
        array - Data to process
        adapter - Array adapter
      • getMin

        public double getMin()
        Description copied from interface: ScalingFunction
        Get minimum resulting value. May be Double.NaN or Double.NEGATIVE_INFINITY.
        Specified by:
        getMin in interface ScalingFunction
        Returns:
        Minimum resulting value.
      • getMax

        public double getMax()
        Description copied from interface: ScalingFunction
        Get maximum resulting value. May be Double.NaN or Double.POSITIVE_INFINITY.
        Specified by:
        getMax in interface ScalingFunction
        Returns:
        Maximum resulting value.